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

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

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

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

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

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

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

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

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

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

куда:

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

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

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

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

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

import pandas as pd

#create dataset
df = pd.DataFrame({'x': [8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30],
 'y': [41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57]})

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

Далее мы подгоним простую модель линейной регрессии :

import statsmodels.api as sm

#define response variable
y = df['y']

#define explanatory variable
x = df['x']

#add constant to predictor variables
x = sm.add_constant (x)

#fit linear regression model
model = sm. OLS (y, x). fit ()

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

Далее мы рассчитаем стандартизированные остатки модели:

#create instance of influence
influence = model. get_influence ()

#obtain standardized residuals
standardized_residuals = influence. resid_studentized_internal

#display standardized residuals
print(standardized_residuals)

[ 1.40517322 0.81017562 0.07491009 -0.59323342 -1.2482053 -0.64248883
 0.59610905 -0.05876884 -2.11711982 -0.066556 0.91057211 1.26973888]

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

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

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

import matplotlib.pyplot as plt

plt.scatter (df.x, standardized_residuals)
plt.xlabel('x')
plt.ylabel('Standardized Residuals')
plt.axhline (y=0, color='black', linestyle='--', linewidth=1)
plt.show() 
График стандартизированных остатков в Python

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

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

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