Як обчислити стандартизовані залишки в 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)) #viewdata data xy 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 ** --- Significant. 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 xy 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),]
xy 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)
Додаткові ресурси
Що таке залишки?
Що таке стандартизовані залишки?
Вступ до множинної лінійної регресії