Ядрова регресія
У статистиці ядрова регресія (Шаблон:Lang-en) — це Шаблон:Li методика оцінки умовного матсподівання випадкової величини. Завдання полягає в тому, щоб знайти нелінійну залежність між парою випадкових величин X і Y .
У будь-якій Шаблон:Li умовне сподівання змінної відносно змінної можна записати:
де — невідомою функцією.
Ядрова регресія Надараї — Вотсона
Шаблон:Li та Шаблон:Li, обидва в 1964 році, запропонували оцінити як локально зважене середнє, використовуючи ядро як вагову функцію[1][2][3]. Оцінка Надараї — Вотсона:
де — ядро з пропускною спроможністю таке, що має порядок принаймні 1, тобто .
Виведення
Запишемо визначення умовного математичного сподівання,
ми оцінимо спільні розподіли і за допомогою ядрової оцінки густини з ядром K:
Отримуємо:
що і є оцінкою Надараї — Вотсона.
Ядрова оцінка Прістлі — Чао
де це пропускна спроможність (або ж параметр згладжування).
Ядрова оцінка Гассера — Мюллера
де [4]
Приклад

Цей приклад базується на канадських перехресних даних про заробітну плату, які складаються з випадкової вибірки, взятої із записів Канадського перепису громадського вжитку 1971 року для осіб чоловічої статі із загальною освітою (13 клас). Всього 205 спостереженьШаблон:Джерело.
На рисунку праворуч показано оцінену функцію регресії з використанням ядра Гауса другого порядку разом із межами асимптотичної мінливості.
Приклад з кодом
Наведені нижче команди мови програмування R використовують функцію npreg() для реалізації оптимального згладжування та створення рисунка, наведеного вище. Ці команди можна вводити в командному рядку просто скопіювавши.
install.packages("np")
library(np) # non parametric library
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)
Пов'язані
За словами Шаблон:Li, алгоритми, що використовуються в ядровій регресії, були незалежно розроблені та використані в нечітких системах: «З майже однаковим комп'ютерним алгоритмом нечіткі системи та ядрові регресії на основі густини, здається, були розроблені абсолютно незалежно одна від одної.»[5]
Імплементація в статистичних пакетах
- Пакет математичних програм GNU Octave
- Julia: KernelEstimator.jl
- MATLAB: на цих сторінках доступний безкоштовний набір інструментів MATLAB із реалізацією ядрової регресії, ядрової оцінки густини, ядрової оцінки функції небезпеки та багатьох інших (цей набір інструментів є частиною книги [6]).
- Python: клас
KernelRegдля змішаних типів даних у підпакетіstatsmodels.nonparametric(включає інші класи, пов'язані з густиною ядра), пакет kernel_regression як розширення scikit-learn (неефективний з точки зору пам'яті, корисний лише для невеликих наборів даних) - R: функція
npregпакета np може виконувати ядрову регресію.[7] - Stata: npregress, kernreg2
Див. також
Список літератури
Література
Посилання
- Scale-adaptive kernel regression (для Matlab).
- Tutorial of Kernel regression using spreadsheet (для Microsoft Excel).
- An online kernel regression demonstration Requires .NET 3.0 or later.
- Kernel regression with automatic bandwidth selection (в Python)