Ядрова регресія

Матеріал з testwiki
Версія від 13:29, 22 грудня 2024, створена imported>Olexa Riznyk (уточнення, правопис, оформлення, вікіфікація)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

У статистиці ядрова регресія (Шаблон:Lang-en) — це Шаблон:Li методика оцінки умовного матсподівання випадкової величини. Завдання полягає в тому, щоб знайти нелінійну залежність між парою випадкових величин X і Y .

У будь-якій Шаблон:Li умовне сподівання змінної Y відносно змінної X можна записати:

E(YX)=m(X)

де m — невідомою функцією.

Ядрова регресія Надараї — Вотсона

Шаблон:Li та Шаблон:Li, обидва в 1964 році, запропонували оцінити m як локально зважене середнє, використовуючи ядро як вагову функцію[1][2][3]. Оцінка Надараї — Вотсона:

m^h(x)=i=1nKh(xxi)yii=1nKh(xxi)

де Kh(t)=1hK(th) — ядро з пропускною спроможністю h таке, що K() має порядок принаймні 1, тобто uK(u)du=0 .

Виведення

Запишемо визначення умовного математичного сподівання,

E(YX=x)=yf(yx)dy=yf(x,y)f(x)dy

ми оцінимо спільні розподіли f(x,y) і f(x) за допомогою ядрової оцінки густини з ядром K:

f^(x,y)=1ni=1nKh(xxi)Kh(yyi),
f^(x)=1ni=1nKh(xxi),

Отримуємо:

E^(YX=x)=yf^(x,y)f^(x)dy,=yi=1nKh(xxi)Kh(yyi)j=1nKh(xxj)dy,=i=1nKh(xxi)yKh(yyi)dyj=1nKh(xxj),=i=1nKh(xxi)yij=1nKh(xxj),

що і є оцінкою Надараї — Вотсона.

Ядрова оцінка Прістлі — Чао

m^PC(x)=h1i=2n(xixi1)K(xxih)yi

де h це пропускна спроможність (або ж параметр згладжування).

Ядрова оцінка Гассера — Мюллера

m^GM(x)=h1i=1n[si1siK(xuh)du]yi

де si=xi1+xi2.[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

Див. також

Список літератури

Шаблон:Reflist

Література

Посилання