lm模型中的学生化残差v / s标准化残差

机器算法验证 r 回归 残差 术语
2022-03-08 16:54:25

回归模型中的“学习残差”和“标准化残差”是否相同?我在 R 中建立了一个线性回归模型,并想绘制学生化残差与拟合值的关系图,但在 R 中没有找到自动执行此操作的方法。

假设我有一个模型

library(MASS)

lm.fit <- lm(Boston$medv~(Boston$lstat))

然后 usingplot(lm.fit)不提供任何学生化残差与拟合值的图,但它提供了标准化残差与拟合值的图。

我使用plot(lm.fit$fitted.values,studres(lm.fit)它会绘制所需的图表。所以只是想确认我是否走对了路,学生化残差和标准化残差不是一回事。如果它们不同,请提供一些指南来计算它们及其定义。我在网上搜索了一下,发现有点混乱。

1个回答

不,学生化残差和标准化残差是不同(但相关)的概念。

事实上,R 确实提供了内置函数rstandard(),并rstudent()作为影响力的一部分。同一个内置包提供了很多类似的杠杆作用、库克距离等rstudent()功能,本质上和 是一样的MASS::studres(),大家可以像这样自行检查:

> all.equal(MASS::studres(model), rstudent(model))
[1] TRUE

标准化残差是一种估计特定数据点误差的方法,它考虑了该点的杠杆/影响。这些有时被称为“内部学生化残差”。

ri=eis(ei)=eiMSE(1hii)

标准化残差背后的动机是,即使我们的模型假设具有固定方差的 iid 误差项的同方差性,分布,残差不能是 iid,因为残差之和总是正好为零。ϵiN(0,σ2)ei

任何给定数据点的学生化残差是根据模型计算出的,该模型适合所讨论的数据点之外的所有其他数据点。这些被称为“外部学生化残差”、“删除残差”或“折刀残差”。

这听起来在计算上很困难(听起来我们必须为每个点拟合一个新模型)但实际上有一种方法可以仅从原始模型计算它而无需重新拟合。如果标准化残差是,那么学生化残差是:riti

ti=ri(nk2nk1ri2)1/2,

学生化残差背后的动机来自于它们在异常值测试中的使用。如果我们怀疑一个点是异常值,那么根据定义,它不是从假设的模型中生成的。因此,将异常值包含在模型拟合中将是错误的 - 违反假设。学生化残差广泛用于实际异常值检测。

学生化残差还具有理想的属性,即对于每个数据点,残差的分布将是学生的 t 分布,假设满足原始回归模型的正态性假设。(标准化残差没有那么好的分布。)

最后,为了解决 R 库可能遵循与上述不同的命名法的任何担忧,R 文档明确声明它们在与上述完全相同的意义上使用“标准化”和“学生化”。

函数rstandardrstudent分别给出标准化残差和学生化残差。(这些将残差重新归一化以具有单位方差,分别使用误差方差的整体留一法测量。)