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


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

Он рассчитывается следующим образом:

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

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

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

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

Он рассчитывается следующим образом:

р я знак равно е я / s(е я ) знак равно е я / 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)

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

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

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

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