Как рассчитать стандартизованные остатки в R

Как рассчитать стандартизованные остатки в R

Остаток — это разница между наблюдаемым значением и прогнозируемым значением в регрессионной модели .

Он рассчитывается как:

Остаток = наблюдаемое значение – прогнозируемое значение

Если мы нанесем наблюдаемые значения и наложим подобранную линию регрессии, остатки для каждого наблюдения будут представлять собой расстояние по вертикали между наблюдением и линией регрессии:

Пример остатка в статистике

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

Он рассчитывается как:

r i = e i / s(e i ) = e i / RSE√ 1-h ii

куда:

  • e i : i -й остаток
  • RSE: остаточная стандартная ошибка модели.
  • h ii : рычаг i -го наблюдения

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

В этом руководстве представлен пошаговый пример расчета стандартизированных остатков в R.

Шаг 1: введите данные

Сначала мы создадим небольшой набор данных для работы в R:

#create data
data <- data.frame(x=c(8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30),
 y=c(41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57))

#view data
data

 x y
1 8 41
2 12 42
3 12 39
4 13 37
5 14 35
6 16 39
7 17 45
8 22 46
9 24 39
10 26 49
11 29 55
12 30 57

Шаг 2: Подгонка регрессионной модели

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

#fit model
model <- lm(y ~ x, data=data)

#view model summary
summary(model) 

Call:
lm(formula = y ~ x, data = data)

Residuals:
 Min 1Q Median 3Q Max 
-8.7578 -2.5161 0.0292 3.3457 5.3268 

Coefficients:
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 29.6309 3.6189 8.188 9.6e-06 \*\*\*
x 0.7553 0.1821 4.148 0.00199 \*\* 
---
Signif. codes: 0 ‘\*\*\*’ 0.001 ‘\*\*’ 0.01 ‘\*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.442 on 10 degrees of freedom
Multiple R-squared: 0.6324, Adjusted R-squared: 0.5956 
F-statistic: 17.2 on 1 and 10 DF, p-value: 0.001988

Шаг 3: Рассчитайте стандартизированные остатки

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

#calculate the standardized residuals
standard_res <- rstandard(model)

#view the standardized residuals
standard_res

 1 2 3 4 5 6 
 1.40517322 0.81017562 0.07491009 -0.59323342 -1.24820530 -0.64248883 
 7 8 9 10 11 12 
 0.59610905 -0.05876884 -2.11711982 -0.06655600 0.91057211 1.26973888

Мы можем добавить стандартизированные остатки обратно в исходный фрейм данных, если хотим:

#column bind standardized residuals back to original data frame
final_data <- cbind(data, standard_res)

#view data frame
 x y standard_res
1 8 41 1.40517322
2 12 42 0.81017562
3 12 39 0.07491009
4 13 37 -0.59323342
5 14 35 -1.24820530
6 16 39 -0.64248883
7 17 45 0.59610905
8 22 46 -0.05876884
9 24 39 -2.11711982
10 26 49 -0.06655600
11 29 55 0.91057211
12 30 57 1.26973888

Затем мы можем отсортировать каждое наблюдение от наибольшего к наименьшему в соответствии с его стандартизированным остатком, чтобы получить представление о том, какие наблюдения ближе всего к выбросам:

#sort standardized residuals descending
final_data[ order (-standard_res),]

 x y standard_res
1 8 41 1.40517322
12 30 57 1.26973888
11 29 55 0.91057211
2 12 42 0.81017562
7 17 45 0.59610905
3 12 39 0.07491009
8 22 46 -0.05876884
10 26 49 -0.06655600
4 13 37 -0.59323342
6 16 39 -0.64248883
5 14 35 -1.24820530
9 24 39 -2.11711982

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

Шаг 4: Визуализируйте стандартизированные остатки

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

#plot predictor variable vs. standardized residuals
plot(final_data$x, standard_res, ylab='Standardized Residuals', xlab='x') 

#add horizontal line at 0
abline(0, 0) 
Стандартизированные остатки в R

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

Что такое остатки?
Что такое стандартизированные остатки?
Введение в множественную линейную регрессию

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.