如何在 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. 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中计算标准化残差

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注