Как выполнить робастную регрессию в r (шаг за шагом)


Робастная регрессия — это метод, который мы можем использовать в качестве альтернативы обычной регрессии наименьших квадратов, когда в наборе данных, с которым мы работаем, есть выбросы или влиятельные наблюдения .

Чтобы выполнить надежную регрессию в R, мы можем использовать функцию rlm() из пакета MASS , которая использует следующий синтаксис:

В следующем пошаговом примере показано, как выполнить робастную регрессию в R для заданного набора данных.

Шаг 1. Создайте данные

Во-первых, давайте создадим поддельный набор данных для работы:

 #create data
df <- data. frame (x1=c(1, 3, 3, 4, 4, 6, 6, 8, 9, 3,
                      11, 16, 16, 18, 19, 20, 23, 23, 24, 25),
                 x2=c(7, 7, 4, 29, 13, 34, 17, 19, 20, 12,
                      25, 26, 26, 26, 27, 29, 30, 31, 31, 32),
                  y=c(17, 170, 19, 194, 24, 2, 25, 29, 30, 32,
                      44, 60, 61, 63, 63, 64, 61, 67, 59, 70))

#view first six rows of data
head(df)

  x1 x2 y
1 1 7 17
2 3 7 170
3 3 4 19
4 4 29 194
5 4 13 24
6 6 34 2

Шаг 2. Выполните регрессию обычных наименьших квадратов

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

На практике мы часто рассматриваем любой стандартизированный остаток, абсолютное значение которого превышает 3, как выброс.

 #fit ordinary least squares regression model
ols <- lm(y~x1+x2, data=df)

#create plot of y-values vs. standardized residuals
plot(df$y, rstandard(ols), ylab=' Standardized Residuals ', xlab=' y ') 
abline(h= 0 ) 

На графике мы видим, что есть два наблюдения со стандартизированными остатками около 3.

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

Шаг 3. Выполните робастную регрессию

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

 library (MASS)

#fit robust regression model
robust <- rlm(y~x1+x2, data=df)

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

Остаточная стандартная ошибка (RSE) — это способ измерения стандартного отклонения остатков в регрессионной модели. Чем ниже значение CSR, тем лучше модель соответствует данным.

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

 #find residual standard error of ols model
summary(ols)$sigma

[1] 49.41848

#find residual standard error of ols model
summary(robust)$sigma

[1] 9.369349

Мы видим, что RSE модели устойчивой регрессии намного ниже, чем у обычной модели регрессии наименьших квадратов, что говорит нам о том, что модель устойчивой регрессии обеспечивает лучшее соответствие данным.

Дополнительные ресурсы

Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как выполнить полиномиальную регрессию в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *