Устойчивая регрессия — уменьшает эффекты выброса

Что такое устойчивая регрессия?

Модели описали в том, Что такое Модель Линейной регрессии? основаны на определенных предположениях, таких как нормальное распределение ошибок в наблюдаемых ответах. Если распределение ошибок асимметрично или подвержено выбросам, образцовые предположения делаются недействительным, и оценки параметра, доверительные интервалы, и другие вычисленные статистические данные становятся ненадежными. Используйте fitlm с парой "имя-значение" RobustOpts, чтобы создать модель, которая не очень затронута выбросами. Устойчивый подходящий метод менее чувствителен, чем обычные наименьшие квадраты к большим изменениям в мелких деталях данных.

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

Устойчивая регрессия по сравнению со стандартной подгонкой наименьших квадратов

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

Шаг 1. Подготовка данных.

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

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

Шаг 2. Соответствуйте устойчивым и неустойчивым моделям.

Соответствуйте двум линейным моделям к данным, одному использующему устойчивому подбору кривой, один нет.

mdl = fitlm(X,y); % not robust
mdlr = fitlm(X,y,'RobustOpts','on');

Шаг 3. Исследуйте образцовые невязки.

Исследуйте невязки этих двух моделей.

subplot(1,2,1)
plotResiduals(mdl,'probability')
subplot(1,2,2)
plotResiduals(mdlr,'probability')

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

Шаг 4. Удалите выброс из стандартной модели.

Найдите индекс выброса. Исследуйте вес выброса в устойчивой подгонке.

[~,outlier] = max(mdlr.Residuals.Raw);
mdlr.Robust.Weights(outlier)
ans = 0.0246

Проверяйте средний вес.

median(mdlr.Robust.Weights)
ans = 0.9718

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

Смотрите также

| |

Похожие темы