رگرسیون هسته چیست؟
در علم آمار، رگرسیون هسته (Kernel Regression) یک تکنیک غیرپارامتریک برای تخمین امید شرطی یک متغیر تصادفی است. هدف اصلی این روش، یافتن رابطه غیرخطی میان جفت متغیرهای تصادفی X و Y میباشد.
در هر رگرسیون غیرپارامتریک، امید شرطی یک متغیر نسبت به متغیر دیگر را میتوان به فرم زیر نوشت:
E[Y|X] = m(X)
که در آن، m تابعی ناشناخته است.
رگرسیون هسته نادارایا-واتسون
نادارایا و واتسون در سال ۱۹۶۴، بهطور مستقل پیشنهاد دادند که m را بهعنوان یک میانگین وزنی محلی تخمین بزنند. در این روش، از یک تابع هسته بهعنوان تابع وزندهی استفاده میشود. تخمینگر نادارایا-واتسون به شکل زیر تعریف میشود:
m̂(x) = Σ K((x - Xi)/h) Yi / Σ K((x - Xi)/h)
که در آن K یک تابع هسته با پهنای باند h است؛ بهطوریکه K حداقل از مرتبه ۱ باشد (یعنی انتگرال آن برابر با یک باشد).
استخراج تخمینگر
با استفاده از تخمین چگالی هسته برای توزیع مشترک f(x,y) و توزیع حاشیهای f(x) با یک تابع هسته K، به تخمینگر نادارایا-واتسون میرسیم. این استخراج نشان میدهد که چگونه مفهوم چگالی هسته پایهای برای محاسبه امید شرطی فراهم میکند.
سایر تخمینگرهای هسته
- تخمینگر پریستلی-چائو: در این روش، از پهنای باند (یا پارامتر هموارسازی) برای تنظیم دقت تخمین استفاده میشود.
- تخمینگر گاسر-مولر: این تخمینگر نیز با رویکردی متفاوت در وزندهی و هموارسازی، روابط غیرخطی را مدلسازی میکند.
مثال کاربردی
این مثال بر اساس دادههای مقطعی دستمزد در کانادا تهیه شده است. دادهها شامل یک نمونه تصادفی از سرشماری سال ۱۹۷۱ کانادا برای مردان با تحصیلات مشابه (پایه دوازدهم) است و در مجموع ۲۰۵ مشاهده دارد.
نمودار مربوطه، تابع رگرسیون تخمینزدهشده با استفاده از یک هسته گوسی مرتبه دوم را به همراه مرزهای تغییرپذیری مجانبی نمایش میدهد.
پیادهسازی در زبان R
دستورات زیر در زبان برنامهنویسی R، از تابع npreg() برای اعمال هموارسازی بهینه و رسم نمودار استفاده میکنند:
install.packages("np")
library(np)
data(cps71)
attach(cps71)
m <- npreg(logwage~age)
plot(m, plot.errors.method="asymptotic",
plot.errors.style="band",
ylim=c(11, 15.2))
points(age, logwage, cex=.25)
detach(cps71)
پیشینه مرتبط
به گفته دیوید سالزبورگ، الگوریتمهای بهکاررفته در رگرسیون هسته، بهطور مستقل در سیستمهای فازی نیز توسعه یافتهاند: «سیستمهای فازی و رگرسیونهای مبتنی بر چگالی هسته، با ارائه الگوریتمهای کاملاً مشابه، بهطور کامل مستقل از یکدیگر توسعه یافتهاند.»
پیادهسازیهای آماری
- GNU Octave: بسته برنامهنویسی ریاضی
- Julia: کتابخانه KernelEstimator.jl
- MATLAB: جعبهابزار رایگان با پیادهسازی رگرسیون هسته و تخمین چگالی هسته
- Python: کلاس KernelReg در زیربسته statsmodels.nonparametric و بسته kernel_regression بهعنوان الحاقیه scikit-learn
- R: تابع npreg در بسته np
- Stata: دستورات npregress و kernreg2