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


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

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

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

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

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

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

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

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

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

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

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

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