exponenta event banner

Уменьшение эффекта отклонения с помощью надежной регрессии

Можно уменьшить эффекты отклонения в моделях линейной регрессии, используя надежную линейную регрессию. В этом разделе определяется надежная регрессия, показано, как использовать ее для подгонки линейной модели, и сравниваются результаты со стандартной подгонкой. Вы можете использовать fitlm с 'RobustOpts' аргумент пары имя-значение для соответствия надежной регрессионной модели. Или вы можете использовать robustfit для простого вычисления параметров коэффициента надежной регрессии.

Зачем использовать надежную регрессию?

Надежная линейная регрессия менее чувствительна к отклонениям, чем стандартная линейная регрессия. Стандартная линейная регрессия использует обычную подгонку методом наименьших квадратов для вычисления параметров модели, которые связывают данные отклика с данными предиктора с одним или несколькими коэффициентами. (Дополнительные сведения см. в разделе Оценка многомерных регрессионных моделей.) В результате отклонения оказывают большое влияние на аппроксимацию, поскольку возведение в квадрат остатков увеличивает влияние этих крайних точек данных. Модели, использующие стандартную линейную регрессию, описанную в разделе Что такое линейная регрессионная модель?, основаны на определенных допущениях, таких как нормальное распределение ошибок в наблюдаемых откликах. Если распределение ошибок асимметрично или подвержено отклонениям, предположения модели становятся недействительными, а оценки параметров, доверительные интервалы и другая вычисленная статистика становятся ненадежными.

Надежная регрессия использует метод, называемый итеративно повторно взвешенными наименьшими квадратами, чтобы назначить вес каждой точке данных. Этот метод менее чувствителен к большим изменениям в небольших частях данных. В результате надежная линейная регрессия менее чувствительна к отклонениям, чем стандартная линейная регрессия.

Итеративно повторно взвешенные наименьшие квадраты

В взвешенных наименьших квадратах процесс подгонки включает вес в качестве дополнительного масштабного коэффициента, что улучшает подгонку. Веса определяют, насколько каждое значение отклика влияет на окончательные оценки параметров. Точка данных низкого качества (например, отклонение) должна оказывать меньшее влияние на посадку. Для вычисления весов wi можно использовать предопределенные весовые функции, такие как bisquare-функция Туки (см. аргумент пары имя-значение 'RobustOpts' в fitlm для дополнительных опций).

Итерационно повторно взвешенный алгоритм наименьших квадратов автоматически и итеративно вычисляет веса. При инициализации алгоритм присваивает равный вес каждой точке данных и оценивает коэффициенты модели с использованием обычных наименьших квадратов. При каждой итерации алгоритм вычисляет веса wi, давая меньший вес точкам, более удаленным от предсказаний модели в предыдущей итерации. Затем алгоритм вычисляет коэффициенты b модели с использованием взвешенных наименьших квадратов. Итерация останавливается, когда значения оценок коэффициентов сходятся в пределах заданного допуска. Этот алгоритм одновременно стремится найти кривую, которая соответствует массе данных, используя подход наименьших квадратов, и минимизировать эффекты отклонений.

Дополнительные сведения см. в разделе Шаги для итеративно повторно взвешенных наименьших квадратов.

Сравнение результатов стандартного и надежного соответствия методом наименьших квадратов

В этом примере показано, как использовать надежную регрессию с fitlm и сравнивает результаты надежной посадки со стандартной посадкой методом наименьших квадратов.

Загрузить moore данные. Данные предиктора находятся в первых пяти столбцах, а данные ответа - в шестом.

load moore
X = moore(:,1:5);
y = moore(:,6);

Подгонка линейной модели с наименьшими квадратами к данным.

mdl = fitlm(X,y)
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3 + x4 + x5

Estimated Coefficients:
                    Estimate          SE          tStat       pValue 
                   ___________    __________    _________    ________

    (Intercept)        -2.1561       0.91349      -2.3603      0.0333
    x1             -9.0116e-06    0.00051835    -0.017385     0.98637
    x2               0.0013159     0.0012635       1.0415     0.31531
    x3               0.0001278    7.6902e-05       1.6618     0.11876
    x4               0.0078989         0.014      0.56421     0.58154
    x5              0.00014165    7.3749e-05       1.9208    0.075365


Number of observations: 20, Error degrees of freedom: 14
Root Mean Squared Error: 0.262
R-squared: 0.811,  Adjusted R-Squared: 0.743
F-statistic vs. constant model: 12, p-value = 0.000118

Подгоните устойчивую линейную модель к данным с помощью 'RobustOps' аргумент пары имя-значение.

mdlr = fitlm(X,y,'RobustOpts','on')
mdlr = 
Linear regression model (robust fit):
    y ~ 1 + x1 + x2 + x3 + x4 + x5

Estimated Coefficients:
                    Estimate         SE         tStat       pValue 
                   __________    __________    ________    ________

    (Intercept)       -1.7516       0.86953     -2.0144    0.063595
    x1             1.7006e-05    0.00049341    0.034467     0.97299
    x2             0.00088843     0.0012027      0.7387     0.47229
    x3             0.00015729    7.3202e-05      2.1487    0.049639
    x4              0.0060468      0.013326     0.45375     0.65696
    x5             6.8807e-05    7.0201e-05     0.98015     0.34365


Number of observations: 20, Error degrees of freedom: 14
Root Mean Squared Error: 0.249
R-squared: 0.775,  Adjusted R-Squared: 0.694
F-statistic vs. constant model: 9.64, p-value = 0.000376

Визуально проверьте остатки двух моделей.

tiledlayout(1,2)
nexttile
plotResiduals(mdl,'probability')
title('Linear Fit')
nexttile
plotResiduals(mdlr,'probability')
title('Robust Fit')

Figure contains 2 axes. Axes 1 with title Linear Fit contains 2 objects of type line. Axes 2 with title Robust Fit contains 2 objects of type line.

Остатки от устойчивой посадки (правая половина графика) ближе к прямой, за исключением одного очевидного отклонения.

Найдите индекс отклонения.

outlier = find(isoutlier(mdlr.Residuals.Raw))
outlier = 1

Постройте график весов наблюдений в надежной посадке.

figure
b = bar(mdlr.Robust.Weights);
b.FaceColor = 'flat';
b.CData(outlier,:) = [.5 0 .5];
xticks(1:length(mdlr.Residuals.Raw))
xlabel('Observations')
ylabel('Weights')
title('Robust Fit Weights')

Figure contains an axes. The axes with title Robust Fit Weights contains an object of type bar.

Вес отклонения в прочной посадке (фиолетовый брусок) намного меньше веса других наблюдений.

Шаги для итеративно повторно взвешенных наименьших квадратов

Итерационно повторно взвешенный алгоритм наименьших квадратов следует этой процедуре:

  1. Начните с начальной оценки весов и подгоните модель по взвешенным наименьшим квадратам.

  2. Вычислите скорректированные остатки. Скорректированные остатки даны

    radj = ri1 − hi

    где ri - обычные остатки наименьших квадратов, а hi - значения рычагов наименьших квадратов. Использует возможность корректировки остаточных значений за счет уменьшения веса высокоэффективных точек данных, которые оказывают большое влияние на подгонку методом наименьших квадратов (см. Hat Matrix and Leverage).

  3. Стандартизация остатков. Стандартизированные скорректированные остатки даны

    u = radjKs = riKs1 − hi

    где K - постоянная настройки, а s - оценка стандартного отклонения члена ошибки, заданного s = MAD/0.6745.

    MAD - среднее абсолютное отклонение остатков от их медианы. Постоянная 0,6745 делает оценку несмещенной для нормального распределения. Если матрица данных предиктора X имеет p столбцов, программное обеспечение исключает наименьшие p абсолютных отклонений при вычислении медианы.

  4. Вычислите надежные веса wi как функцию u. Например, веса bisquare задаются как

    wi = {(1 ui2) 2,|ui|<10,|ui|≥1

  5. Оцените коэффициенты надежной регрессии b. Веса изменяют выражение для оценок параметров b следующим образом:

    b = β ^ = (XTWT) − 1XTWy

    где W - матрица диагонального веса, X - матрица данных предиктора, а y - вектор отклика.

  6. Оценка взвешенной ошибки наименьших квадратов

    e=∑1nwi (yi y ^ i) 2=∑1nwiri2

    где wi - веса, yi - наблюдаемые отклики, ŷi - подогнанные отклики, а ri - остатки.

  7. Итерация останавливается, если аппроксимация сходится или достигнуто максимальное количество итераций. В противном случае выполните следующую итерацию фитинга наименьших квадратов, вернувшись ко второму шагу.

См. также

| | |

Связанные темы