Skip to Content

§2. Непараметрическая регрессия

Изучаемая в этом параграфе задача заключается в сглаживании данных {(xi,yi)}i=1n\{(x_i, y_i)\}_{i=1}^n при помощи некоторой непрерывной кривой y=m(x)y = m(x). Данные рассматриваются как реализация выборки, описываемой одной из двух моделей.

Смысл по-пацански: в гл. 21 мы заранее говорили: «зависимость — прямая» (или парабола) — и подгоняли коэффициенты. Здесь формулу не заказываем вообще. Пусть точки сами нарисуют кривую, а мы только аккуратно сгладим шум.

Модель со случайным планом эксперимента

Пары (Xi,Yi)(X_i, Y_i) считаются независимыми и одинаково распределёнными. Кривая регрессии определяется как (см. П7)

m(x)=M(Y∣X=x).m(x) = \mathsf M(Y \mid X = x).

Это определение корректно, если M∣Y∣<∞\mathsf M|Y| < \infty. Если у вектора (X,Y)(X, Y) существует плотность p(x,y)p(x, y), то

m(x)=∫y p(x,y) dy/p(x),m(x) = \int y\,p(x, y)\,dy \Big/ p(x),

где p(x)=∫p(x,y) dyp(x) = \int p(x, y)\,dy — маргинальная плотность случайной величины XX.

Например, пусть (X,Y)∼N(μ,Σ)(X, Y) \sim \mathcal N(\boldsymbol\mu, \boldsymbol\Sigma) (см. П9), где μ=(μ1,μ2)\boldsymbol\mu = (\mu_1, \mu_2), Σ=∥σij∥2×2\boldsymbol\Sigma = \|\sigma_{ij}\|_{2\times2}. Несложно подсчитать, что в этом случае

m(x)=μ2+σ12σ11(x−μ1),m(x) = \mu_2 + \frac{\sigma_{12}}{\sigma_{11}}(x - \mu_1),

т. е. кривая регрессии линейна.

По кирпичикам: условное распределение YY при X=xX = x в нормальном случае снова нормально, его среднее сдвигается от μ2\mu_2 пропорционально отклонению x−μ1x - \mu_1, а коэффициент — ковариация, делённая на дисперсию предиктора XX, т. е. σ12/σ11\sigma_{12}/\sigma_{11}. (У Лагутина в знаменателе напечатано σ22\sigma_{22} — это опечатка: дисперсия отклика тут ни при чём, ср. наклон прямой МНК b=σXY/σX2b = \sigma_{XY}/\sigma_X^2 из гл. 21.)

Смысл по-пацански: для нормального облака «кривая» регрессии — честная прямая. Всё нелинейное начинается, когда облако не нормальное, — вот для этого и нужна непараметрика.

Модель с фиксированным планом эксперимента

В случае управляемой неслучайной предикторной (предсказывающей) переменной XX применяется модель

Yi=m(xi)+εi,i=1,…,n,Y_i = m(x_i) + \varepsilon_i, \quad i = 1, \dots, n,

где xix_i — «узлы» (задаваемые значения XX, в которых производятся измерения отклика YY), εi\varepsilon_i — независимые и одинаково распределённые случайные ошибки, Mεi=0\mathsf M\varepsilon_i = 0, Dεi=σ2\mathsf D\varepsilon_i = \sigma^2.

Замечание 1. Если допустимы многократные наблюдения в фиксированной точке X=xX = x, то можно оценить m(x)m(x) с помощью среднего арифметического соответствующих YiY_i.

Однако часто этому препятствуют финансовые ограничения: слишком дорого проводить более одного измерения для каждого фиксированного уровня xx предиктора XX. Возможно также, что условия эксперимента нельзя воспроизвести из-за разрушения объекта (например, при изучении безопасности водителя при столкновении автомобилей) и т. п.

Локальное усреднение

Если есть уверенность, что mm — гладкая кривая, наблюдения XiX_i вблизи точки xx должны содержать информацию о значении mm в точке xx. Таким образом, представляется возможным использовать нечто вроде локального усреднения близких к xx данных для формирования оценки m(x)m(x).

— Р. Эйбанк

В основе процедуры оценивания кривой регрессии m(x)m(x) лежит идея локального усреднения. Оценка определяется как взвешенное среднее

m^(x)=∑i=1nwi(x)Yi/∑i=1nwi(x),(7)\hat m(x) = \sum_{i=1}^nw_i(x)Y_i \Big/ \sum_{i=1}^nw_i(x), \tag{7}

где веса wi(x)w_i(x) велики для XiX_i, близких к точке xx, и малы для остальных XiX_i.

Смысл по-пацански: хочешь узнать, сколько в среднем получают на твоей улице, — спрашивай соседей, а не весь город. Ближнего соседа слушай внимательно, дальнего — вполуха, а с другого конца города — вообще не слушай.

Замечание 2. В соответствии с примером 5 гл. 21 величина m^(x)\hat m(x) при каждом xx является оценкой взвешенных наименьших квадратов, так как она служит решением задачи минимизации функции

∑i=1nwi(x)(Yi−θ)2  →  min⁡θ,min⁡θ∑i=1nwi(x)(Yi−θ)2=∑i=1nwi(x)(Yi−m^(x))2.(8)\sum_{i=1}^nw_i(x)(Y_i - \theta)^2 \;\to\; \min_\theta, \qquad \min_\theta\sum_{i=1}^nw_i(x)(Y_i - \theta)^2 = \sum_{i=1}^nw_i(x)\bigl(Y_i - \hat m(x)\bigr)^2. \tag{8}

По кирпичикам: производная по θ\theta равна −2∑wi(Yi−θ)-2\sum w_i(Y_i - \theta); приравняв её нулю, получим θ=∑wiYi/∑wi\theta = \sum w_iY_i/\sum w_i — это и есть (7). То есть в каждой точке xx мы подгоняем константу взвешенным МНК.

Оценка Надарая — Ватсона

Один из наиболее простых способов определения весов wi(x)w_i(x) опирается на использование некоторого ядра q(y)q(y) (см. §1):

wi(x)=qh(x−Xi),где qh(y)=h−1q(y/h).(9)w_i(x) = q_h(x - X_i), \quad\text{где } q_h(y) = h^{-1}q(y/h). \tag{9}

Здесь h=hnh = h_n обозначает ширину «окна сглаживания». Для многомерной предикторной переменной Xi=(Xi1,…,Xim)\boldsymbol X_i = (X_{i1}, \dots, X_{im}) можно взять

wi(x1,…,xm)=∏j=1mqh(xj−Xij).w_i(x_1, \dots, x_m) = \prod_{j=1}^mq_h(x_j - X_{ij}).

Задавать веса можно и по-другому. Для одномерной предикторной переменной Гассер и Мюллер в 1979 г. предложили

w~i(x)=∫si−1siqh(x−y) dy,(10)\tilde w_i(x) = \int_{s_{i-1}}^{s_i}q_h(x - y)\,dy, \tag{10}

где X(1)≤X(2)≤⋯≤X(n)X_{(1)} \le X_{(2)} \le \dots \le X_{(n)} — упорядоченные по возрастанию XiX_i, а отрезки [si−1,si][s_{i-1}, s_i] разбивают прямую на nn кусков, по одному на каждое наблюдение: s0=−∞s_0 = -\infty, sn=+∞s_n = +\infty, а si=(X(i)+X(i+1))/2s_i = \bigl(X_{(i)} + X_{(i+1)}\bigr)/2 — середины между соседними узлами. Заметим, что ∑i=1nw~i(x)=1\sum_{i=1}^n\tilde w_i(x) = 1 (интегралы по кускам складываются в ∫qh=1\int q_h = 1), поэтому делить на сумму весов в (7) уже не нужно.

(У Лагутина пределы интегрирования записаны как X(i−1)X_{(i-1)} и X(i)X_{(i)} с суммой по ii до n+1n + 1 — так весов получается на один больше, чем наблюдений. Мы приводим стандартную форму Гассера — Мюллера с серединами; именно она реализована в gasserMuller из нашей библиотеки.)

Смысл по-пацански: Гассер и Мюллер каждому наблюдению выдают свой «участок» на оси и взвешивают его по тому, какая часть ядра на этот участок легла. Где точки густо — участки маленькие, и вес каждой точки меньше; где редко — участок большой, вес больше. Честная делёжка.

В случае весов wi(x)w_i(x) из формулы (9) правая часть равенства (7) приобретает вид

m^(x)=∑i=1nqh(x−Xi)Yi/∑i=1nqh(x−Xi).(11)\hat m(x) = \sum_{i=1}^nq_h(x - X_i)Y_i \Big/ \sum_{i=1}^nq_h(x - X_i). \tag{11}

Выражение (11) определяет так называемую оценку Надарая — Ватсона (Nadaraya, 1964; Watson, 1964). С учётом формулы (3) §1

m^(x)=1n∑i=1nqh(x−Xi)Yi/p^n(x),\hat m(x) = \frac1n\sum_{i=1}^nq_h(x - X_i)Y_i \Big/ \hat p_n(x),

где p^n(x)\hat p_n(x) — ядерная оценка Розенблатта — Парзена маргинальной плотности p(x)p(x) переменной XX.

По кирпичикам: знаменатель в (11), делённый на nn, — это ровно оценка плотности из §1. Так что Надарая — Ватсон — это «оценка ∫y p(x,y) dy\int y\,p(x, y)\,dy, делённая на оценку p(x)p(x)», т. е. подстановка ядерных оценок в формулу для m(x)m(x) из модели со случайным планом.

Непараметрическая регрессия: оценка Надарая — Ватсона

4-30,01,0

Пример 2 (данные модельные): m(x) = 1 − x + exp(−200(x − ½)²) (пунктир) — прямая с узким «горбом» в ½, n = 50, xᵢ = i/50, шум N(0, σ²). Синяя — оценка с ядром «Квартическое», h = 0,09; в точке ½ она равна 1,17 (истина 1,5). При σ = 1, как в книге, «горб» в облаке точек не различить, а сглаживание его находит.

Состоятельность и риск

В следующей теореме приведены условия, обеспечивающие состоятельность оценки Надарая — Ватсона m^(x)\hat m(x).

Теорема 2. Пусть для модели со случайным планом эксперимента и одномерной предикторной переменной

  1. ∫∣q(y)∣ dy<∞\int|q(y)|\,dy < \infty,
  2. yq(y)→0yq(y) \to 0 при ∣y∣→∞|y| \to \infty,
  3. MY2<∞\mathsf MY^2 < \infty,
  4. n→∞n \to \infty, hn→0h_n \to 0, nhn→∞nh_n \to \infty.

Тогда m^(x)→Pm(x)\hat m(x) \xrightarrow{\mathsf P} m(x) в любой точке непрерывности функций m(x)m(x), p(x)p(x) и σ2(x)=D(Y∣X=x)\sigma^2(x) = \mathsf D(Y \mid X = x) такой, что p(x)>0p(x) > 0.

(Доказательство этой теоремы приведено в книге В. Хардле «Прикладная непараметрическая регрессия».)

По кирпичикам: условие hn→0h_n \to 0 убивает смещение (окно стягивается к точке xx), а nhn→∞nh_n \to \infty — дисперсию (в окно попадает всё больше точек: их примерно nhnp(x)nh_np(x)). Отсюда и требование p(x)>0p(x) > 0: где точек нет совсем, усреднять нечего.

Сформулированный результат показывает, что оценка m^(x)\hat m(x) из формулы (11) сходится по вероятности к m(x)m(x) — истинной кривой регрессии. Естественно поставить вопрос, какова скорость этой сходимости. Одной из возможных мер точности оценки является квадратичный риск R(x,h)=M[m^(x)−m(x)]2R(x, h) = \mathsf M[\hat m(x) - m(x)]^2.

Теорема 3 (Гассер и Мюллер, 1984). Рассмотрим модель с фиксированным планом эксперимента для одномерной предикторной переменной XX. (Для случайного плана скорость сходимости та же, но с другими константами.) Без ограничения общности можно считать, что «узлы» xi∈[0,1]x_i \in [0, 1]. Предположим, что

  1. используется ядро q(y)q(y) с α=∫q2(y) dy<∞\alpha = \int q^2(y)\,dy < \infty и β=∫y2q(y) dy<∞\beta = \int y^2q(y)\,dy < \infty;
  2. q(y)q(y) имеет носитель (−1,1)(-1, 1), причём q(−1)=q(1)=0q(-1) = q(1) = 0;
  3. веса w~i(x)\tilde w_i(x) задаются формулой (10);
  4. m(x)m(x) дважды непрерывно дифференцируема;
  5. max⁡1≤i≤n+1(x(i)−x(i−1))=O(1/n)\max_{1\le i\le n+1}(x_{(i)} - x_{(i-1)}) = O(1/n)   (x(0)=0,  x(n+1)=1)\;(x_{(0)} = 0,\; x_{(n+1)} = 1);
  6. Dεi=σ2\mathsf D\varepsilon_i = \sigma^2, i=1,…,ni = 1, \dots, n;
  7. n→∞n \to \infty, hn→0h_n \to 0, nhn→∞nh_n \to \infty.

Тогда

R(x,hn)=[14β2[m′′(x)]2hn4+ασ2/(nhn)](1+o(1)).R(x, h_n) = \Bigl[\tfrac14\beta^2\bigl[m''(x)\bigr]^2h_n^4 + \alpha\sigma^2/(nh_n)\Bigr](1 + o(1)).

Видим, что так же, как и в формуле (5) §1, квадратичный риск состоит из двух частей: квадрата смещения и дисперсии, где смещение (как функция от hnh_n) возрастает, а дисперсия — убывает. В. Хардле пишет: «Это качественное соображение раскрывает сущность задачи сглаживания: баланс между дисперсией и квадратом смещения».

Смысл по-пацански: та же песня, что и с плотностью. Смещение растёт как h4h^4 и сильнее там, где кривая круче изгибается (m′′m'' большая): широкое окно «срезает» горбы. Дисперсия падает как 1/(nh)1/(nh). Оптимум снова h∼n−1/5h \sim n^{-1/5}, ошибка ∼n−2/5\sim n^{-2/5}.

Проверка

Квадрат смещения оценки Гассера — Мюллера пропорционален h4h^4. Чему равно отношение самого смещения (не квадрата) после уменьшения окна hh вдвое к смещению до этого? Введи десятичную дробь.

Пример 2. Обнаружение локального максимума кривой регрессии

На рис. 4 у Лагутина представлены моделированные данные. Использовалась модель с фиксированным планом эксперимента: n=50n = 50, xi=i/nx_i = i/n, i=1,…,ni = 1, \dots, n. Точки порождены «зашумлением» с помощью взятой из таблицы T1 реализации εi∼N(0,1)\varepsilon_i \sim \mathcal N(0, 1) кривой регрессии

m(x)=1−x+exp⁡{−200(x−1/2)2}m(x) = 1 - x + \exp\{-200(x - 1/2)^2\}

(т. е. на линейную функцию y=1−xy = 1 - x накладывается нормальный «горб» с центром в 1/21/2 и шириной примерно равной 2σ=1/102\sigma = 1/10).

Из-за большой интенсивности «шума» локальный максимум m(x)m(x) практически не различим. Однако он хорошо заметен на графике оценки m^(x)\hat m(x) из (11), для которой использовалось гладкое квартическое ядро q(y)=(15/16)(1−y2)2I{∣y∣≤1}q(y) = (15/16)(1 - y^2)^2I_{\{|y|\le1\}} и был определён методом пропуска (см. ниже) оптимальный размер «окна сглаживания» h=0,09h = 0{,}09.

По кирпичикам: exp⁡{−200(x−1/2)2}=exp⁡{−(x−1/2)2/(2σ2)}\exp\{-200(x - 1/2)^2\} = \exp\{-(x - 1/2)^2/(2\sigma^2)\} при 2σ2=1/2002\sigma^2 = 1/200, т. е. σ=0,05\sigma = 0{,}05, 2σ=0,12\sigma = 0{,}1. Высота горба — 1, а стандартное отклонение шума — тоже 1. Горб «утоплен» в шуме по самую макушку.

Смысл по-пацански: на глаз в облаке точек горба не видно — шум того же роста, что и горб. А сглаживание вытаскивает его наружу: соседи усредняются, шум гасится, горб остаётся.

Таблицы T1 у нас под рукой нет, поэтому в виджете — своя реализация шума (зерно 185 подобрано так, чтобы метод пропуска, как и у Лагутина, дал h=0,09h = 0{,}09). Жми «Новая выборка» — и увидишь, что на другой реализации горб может проступать хуже, а оптимальное окно — уехать.

Оценка производной

Методы ядерного сглаживания могут быть также применены и для оценивания производных кривой регрессии. Так, первую производную m′(x)m'(x) можно оценить, используя веса

wi∗(x)=q′(zi)∑j=1nq(zj)−q(zi)∑j=1nq′(zj),где zi=(x−Xi)/h,w_i^*(x) = q'(z_i)\sum_{j=1}^nq(z_j) - q(z_i)\sum_{j=1}^nq'(z_j), \quad\text{где } z_i = (x - X_i)/h,

получаемые дифференцированием правой части равенства (11) по xx.

По кирпичикам: (11) — дробь A/BA/B с A=∑q(zi)YiA = \sum q(z_i)Y_i, B=∑q(zj)B = \sum q(z_j); производная по xx равна (A′B−AB′)/B2(A'B - AB')/B^2, и dzi/dx=1/hdz_i/dx = 1/h. Собираем: m^′(x)=∑iwi∗(x)Yi/(h B2)\hat m'(x) = \sum_iw_i^*(x)Y_i \big/ \bigl(h\,B^2\bigr). Ядро для этого нужно дифференцируемое — квартическое подходит, у Епанечникова излом на краях.

Пример 3. Зависимость скорости роста от возраста

На рис. 5 у Лагутина представлены ядерные оценки кривых средней скорости VV (в см/год) роста HH (т. е. V=H′V = H') в зависимости от возраста TT (в годах) для мальчиков и для девочек.

У девочек наблюдается локальный максимум скорости роста около 12 лет. У мальчиков аналогичный пик ещё более выражен, но происходит примерно на 2 года позже.

Применение метода непараметрической регрессии позволило обнаружить и у мальчиков, и у девочек дополнительный локальный максимум VV, так называемый средний скачок роста, в возрасте около 8 лет. Другие подходы, основанные на априорной фиксации параметрических моделей, приводят к значительным трудностям в обнаружении этого второго пика.

Смысл по-пацански: заранее загнал рост в красивую формулу с одним пиком — второй пик формула и не покажет, она его просто не умеет. Ядро ничего заранее не знает — поэтому и видит то, что есть.

Метод пропуска (кросс-проверка)

Так же, как и при оценивании плотности, решающую роль играет не вид функции q(y)q(y), а правильный выбор ширины «окна сглаживания» hh. Часто в этом помогает метод пропуска, или кросс-проверка.

Минимизируется по hh функция

S(h)=∑i=1n[Yi−m^i(Xi)]2,S(h) = \sum_{i=1}^n\bigl[Y_i - \hat m_i(X_i)\bigr]^2,

где m^i(Xi)=∑j≠iwj(Xi)Yj/∑j≠iwj(Xi)\hat m_i(X_i) = \sum_{j\ne i}w_j(X_i)Y_j \big/ \sum_{j\ne i}w_j(X_i) представляет собой оценку для m(Xi)m(X_i) по выборке, в которой ii-е наблюдение пропущено. Здесь S(h)S(h) — сумма квадратов ошибок предсказания YiY_i (невязок) на основе выборки без (Xi,Yi)(X_i, Y_i).

По кирпичикам: зачем выкидывать саму точку? Если её оставить, то при h→0h \to 0 оценка в XiX_i равна самому YiY_i, невязки обнуляются, и «оптимальным» окажется нулевое окно — чистая подгонка под шум. Пропуск заставляет предсказывать точку по соседям, как будто её мы ещё не видели.

Смысл по-пацански: экзамен честный, только если билет не видел заранее. Каждую точку прячем, угадываем по остальным, считаем промахи. Какое окно меньше всех мажет — то и берём.

Для данных из примера 2 у Лагутина был подсчитан ряд значений S(h)S(h):

hh0,050,100,150,200,250,300,350,400,450,50
S(h)S(h)51,046,647,347,647,547,247,748,348,749,1

Заметим, что S(h)S(h) имеет два локальных минимума: при h≈0,1h \approx 0{,}1 и h≈0,3h \approx 0{,}3. Уточним оптимальное значение hh, проводя вычисления по сетке с меньшим шагом:

hh0,050,060,070,080,090,100,110,120,130,140,15
S(h)S(h)51,048,747,446,746,446,646,746,746,847,147,3

Таким образом, с точностью до 0,01 функция S(h)S(h) имеет глобальный минимум при h=0,09h = 0{,}09.

По кирпичикам: два минимума — не случайность. Малое окно (≈0,1\approx 0{,}1) — это ширина горба, при нём горб «виден». Большое (≈0,3\approx 0{,}3) горб уже размазывает, зато хорошо ловит линейный тренд 1−x1 - x. Сумма S(h)S(h) у обоих близка, поэтому и нужна мелкая сетка. Заметим также, что S(h)/n≈46,4/50≈0,93S(h)/n \approx 46{,}4/50 \approx 0{,}93 — близко к σ2=1\sigma^2 = 1, как и должно быть: предсказать сам шум не может никто.

Метод пропуска (кросс-проверка)

0,10,20,30,40,5h = 0,094-30,01,0

S(h) = Σ[Yᵢ − m̂₋ᵢ(Xᵢ)]² — сумма квадратов ошибок предсказания каждой точки по остальным. Минимум при h = 0,09; снизу — оценка с этим окном. В книге (на её данных) S(h) имеет два локальных минимума, около 0,1 и 0,3, а глобальный — при h = 0,09. На наших модельных данных (по умолчанию) картина похожая; нажми «Новые данные» — при таком сильном шуме оптимальное окно заметно «гуляет» от выборки к выборке.

Посчитай сам — вот кросс-проверка Надарая — Ватсона на модельных данных примера 2 (свой генератор шума, поэтому числа не совпадут с таблицей Лагутина один в один; зерно 67 даёт оптимум h=0,10h = 0{,}10 и S(h∗)/n≈1,01S(h^*)/n \approx 1{,}01 — попробуй другие зёрна, и окно поплывёт):

Загрузка редактора…

Окно по ближайшим соседям

Альтернативным методом, применяемым в случае, когда X1,…,XnX_1, \dots, X_n располагаются очень неравномерно («где пусто, а где густо»), является модификация ядерной оценки, у которой hh зависит от xx. В качестве такого h(x)h(x) часто берут расстояние от точки xx до её kk-го (в смысле близости к xx) соседа XiX_i. Значение параметра kk (1≤k≤n1 \le k \le n) задаётся исследователем.

По кирпичикам: при постоянном окне в густой области в окно влезает много точек (дисперсия мала, можно было бы и сузить), а в пустой — мало или ни одной (оценка скачет или вообще не определена: 0/00/0 в (11)). Окно «до kk-го соседа» в любой точке содержит ровно kk наблюдений — дисперсия везде примерно одинакова.

Смысл по-пацански: в толпе спрашиваешь пятерых ближайших — они в шаге от тебя. В степи пятеро ближайших — за километр. Не фиксируй расстояние, фиксируй число людей, которых опрашиваешь.

Переменное окно: k ближайших соседей

2-20,01,0

«Где пусто, а где густо»: 60 точек сгущаются у левого края, справа их мало. Пунктир — истинная кривая sin 2πx. Синяя — постоянное окно h: одно и то же h не подходит всюду. Там, где точек много, его можно было бы сузить, а справа, где точек мало, оценка дёргается или обрывается, если в окно не попала ни одна точка. Зелёная — окно до k-го соседа: само подстраивается под густоту точек.

Устойчивое сглаживание и LOWESS

В заключение главы обсудим проблему уменьшения влияния выделяющихся наблюдений («выбросов») на ядерные оценки кривой регрессии. К сожалению, локальное усреднение, осуществляемое этими оценками, имеет неограниченную возможность реагировать на «выбросы».

Например, график оценки m^(x)\hat m(x) в правой половине рис. 4 у Лагутина особенно извилист из-за необходимости компенсировать квадраты остатков в точках с большими значениями ошибок εi\varepsilon_i (таких, как ε35=1,73\varepsilon_{35} = 1{,}73 и ε39=−2,36\varepsilon_{39} = -2{,}36).

Смысл по-пацански: взвешенное среднее — это всё ещё среднее. Один горлопан в окне перекрикивает всех соседей, и кривая к нему тянется. Как и в гл. 21 с МНК: квадраты невязок наказывают выбросы так сильно, что оценка ради них прогибается.

Повышение устойчивости сглаживания может быть достигнуто за счёт уменьшения весов наблюдений с большими невязками. Кливленд (Cleveland W. S., 1979) предложил следующий простой алгоритм, реализующий эту идею. Процедура начинается с вычисления пробной оценки, итеративно пересчитываются веса и несколько раз производится повторное сглаживание.

Алгоритм LOWESS (модификация для mm-мерных предикторных переменных Xi=(Xi1,…,Xim)\boldsymbol X_i = (X_{i1}, \dots, X_{im}))

(В оригинале LOcally WEighted Scatter plot Smoothing — локально взвешенное сглаживание диаграммы рассеяния.)

  1. Задаётся kk (1≤k≤n1 \le k \le n). Для каждого Xi\boldsymbol X_i вычисляется расстояние h(Xi)h(\boldsymbol X_i) до kk-го соседа в Rm\mathbb R^m и по формуле (9) определяется соответствующий вес wi(Xi)w_i(\boldsymbol X_i). Веса всех наблюдений запоминаются в массиве.
  2. В окрестности каждой точки Xi\boldsymbol X_i строится локальная линейная аппроксимация поверхности регрессии m(X)m(\boldsymbol X) на основе взвешенного метода наименьших квадратов (см. §5 гл. 21) путём минимизации по θ=(θ1,…,θm)\boldsymbol\theta = (\theta_1, \dots, \theta_m) функции
∑i=1nwi(Xi)(Yi−θ1Xi1−⋯−θmXim)2.\sum_{i=1}^nw_i(\boldsymbol X_i)\bigl(Y_i - \theta_1X_{i1} - \dots - \theta_mX_{im}\bigr)^2.
  1. Используя оценки невязок ε^i\hat\varepsilon_i, вычисляется выборочная медиана σ^=MED{∣ε^i∣, i=1,…,n}\hat\sigma = \mathrm{MED}\{|\hat\varepsilon_i|,\ i = 1, \dots, n\} (оценка масштаба) и определяются коэффициенты устойчивости ci=q(ε^i/(6σ^))c_i = q\bigl(\hat\varepsilon_i/(6\hat\sigma)\bigr), где q(y)=(15/16)(1−y2)2I{∣y∣≤1}q(y) = (15/16)(1 - y^2)^2I_{\{|y|\le1\}} — квартическое ядро.
  2. Строится локальная линейная аппроксимация, как в пункте 2, но с весами ciwi(Xi)c_iw_i(\boldsymbol X_i).
  3. Пункты 3 и 4 повторяются до стабилизации величин cic_i.

По кирпичикам:

  • Шаг 2 вместо константы подгоняет прямую. Локальная прямая лучше локальной константы у краёв данных: у края все соседи лежат с одной стороны, и среднее «съезжает» внутрь, а прямая продолжает наклон.
  • Шаг 3 — медиана, а не среднее. Масштаб невязок оценивается устойчиво: выбросы не раздувают σ^\hat\sigma.
  • Порог 6σ^6\hat\sigma. Медиана ∣ε^∣|\hat\varepsilon| для нормального шума ≈0,67σ\approx 0{,}67\sigma, так что 6σ^≈4σ6\hat\sigma \approx 4\sigma. Точка с невязкой больше ≈4σ\approx 4\sigma получает ci=0c_i = 0 — выкинута совсем; с невязкой около 2σ2\sigma — вес примерно 0,60{,}6 от нормального (в нашей реализации cic_i ещё делится на q(0)=15/16q(0) = 15/16, чтобы «нормальная» точка имела вес 1).
  • Шаг 4 — тот же взвешенный МНК, но выбросам веса срезаны.

Смысл по-пацански: сперва сгладил как получится. Потом посмотрел, кто от кривой дальше всех, — и понизил тому голос. Сгладил заново. Ещё раз проверил. Через пару кругов горлопаны молчат, а кривая идёт по нормальным пацанам.

Пример 4. LOWESS на зашумлённой прямой

У Лагутина (по Хардле) показано применение алгоритма LOWESS к моделированным данным. Точки генерировались в соответствии с моделью Yi=(1/50)xi+εiY_i = (1/50)x_i + \varepsilon_i (n=50n = 50), xi=ix_i = i, εi∼N(0,1)\varepsilon_i \sim \mathcal N(0, 1). Кривой регрессии является прямая с малым коэффициентом наклона, причём дисперсия ошибок Dεi\mathsf D\varepsilon_i настолько велика, что систематический прирост YY при увеличении XX (так называемый тренд) почти не заметен из-за интенсивного «шума».

Для k=25k = 25, m=2m = 2 и Xi=(1,xi)\boldsymbol X_i = (1, x_i) (т. е. локальная прямая со свободным членом) на рис. 6 у Лагутина представлен также результат сглаживания после двух итераций алгоритма. Построенная оценка уверенно игнорирует «выбросы», расположенные вблизи границ рисунка, и довольно точно воспроизводит теоретический линейный тренд.

По кирпичикам: за всю выборку YY вырастает в среднем лишь на 50/50=150/50 = 1 — ровно одно стандартное отклонение шума. Тренд в одну сигму на всём диапазоне глазом почти не ловится.

В виджете — своя модельная выборка (с четырьмя подсаженными выбросами у краёв): сравни простую локальную прямую и LOWESS после 1–3 итераций.

Алгоритм LOWESS: устойчивое сглаживание

6-50,051,0

Пример 4 (модельно): Yᵢ = xᵢ/50 + εᵢ, xᵢ = 1…50, εᵢ ~ N(0, 1), плюс «выбросы» у краёв (красные). Пунктир — истинный тренд, серая — МНК-прямая (её выбросы тянут на себя). Красная тонкая — локальная линейная подгонка без робастификации, синяя — LOWESS после 2 итераций: веса cᵢ = q(ε̂ᵢ/(6σ̂)) гасят точки с большими невязками. Средняя ошибка относительно тренда: 0,434 без робастификации и 0,267 после.

Сам алгоритм в 40 строк — без numpy, для m=2m = 2 (локальная прямая):

Загрузка редактора…

Смысл по-пацански: итерация 0 — обычная локальная прямая, у краёв её утаскивают выбросы. После робастификации выбросы получают веса, близкие к нулю, и кривая ложится на тренд.

Проверь себя

Тест

Чем является оценка Надарая — Ватсона в каждой точке x?

Тест

Почему в методе пропуска при вычислении невязки в точке X_i саму точку (X_i, Y_i) исключают?

Тест

Что делают коэффициенты устойчивости c_i = q(ε̂_i/(6σ̂)) в алгоритме LOWESS?

Тест

В примере 2 функция S(h) имеет два локальных минимума — около 0,1 и 0,3. Почему?
Обновлено