Як обчислити стандартизовані залишки в 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)

Додаткові ресурси

Що таке залишки?
Що таке стандартизовані залишки?
Вступ до множинної лінійної регресії

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *