如何准确计算标准化残差

机器算法验证 回归 擅长 残差
2022-04-03 13:35:40

我正在为某些东西制作模型,目前我更喜欢只在 Excel 中工作。我一直在 JMP、Minitab 和 Statistica 中仔细检查线性模型的结果,并且(或多或少)得到了相同的答案。

奇怪的一件事是我的标准化残差,我得到的答案与 Excel 的回归例程有很大不同,我知道这与我计算它们的方式有关:

我们人口的标准偏差相对于输出而变化,因此我们根据相对标准偏差工作。我们假设 %RSD 为 5%(基于之前的大量工作,我们也有理由假设正常)。由此我通过说来标准化残差,其中 x = 观察值和 u = 预测值,所以 xu = 残差。(xu)uRSD

请注意简单的 z 分数。问题是 Excel 给我的标准化残差值与我的有很大不同。这并不奇怪,因为我使用的是不同的标准偏差。但他们的价值观似乎与数据的真实性无关。一项观察结果可能相差 50%(大约 6 个标准差),而我给出的标准化残差只有 2 或 3。uRSD=s

无论如何,我很难准确地找出残差在线性回归中是如何标准化的。任何帮助,将不胜感激

2个回答

Excel 中的统计工具一直是黑盒子。除了做一些取证逆向工程之外,别无他法。通过在 Excel 2013 中执行简单回归,涉及数据,并在对话框中请求“标准化残差”,我得到的输出表明x=(1,2,3,4,5,6,7,8,9)y=(2,1,4,3,6,5,9,8,7)

  • “标准错误”是1.3723

  • 观察值。9

  • 残差ri(0.5333,1.35,,0.35,1.533)

  • 对应的“标准残差”是(0.4154,1.0516,,0.2726,1.1944)

由于“标准化”值通常是数字除以其标准误差的一些估计值,因此我将这些“标准残差”与残差和“标准误差”进行了比较。的平方和除以(数据数量)或(数据数量减去变量数量,在这种情况下为两个:一个用于截距,第二个用于斜坡),我把所有的东西都摆平了。 很明显,Excel 将“标准残差”计算为rinnp

ri1n1i=1nri2.

这个公式准确地再现了 Excel 的输出——甚至没有一点浮点舍入误差。

分母是由 Excel 的STDEV函数计算的。对于均值的残差,它是对其方差的无偏估计。然而,对于回归中的残差,它没有标准的含义或价值。是垃圾!但是现在你知道如何计算它了......

在 R 中:

    modeGlob <- lm(rnorm(100)~ abs(rnorm(100))) #Your model.

    hii <- hatvalues(modeGlob) # hat matrix.

    rst <- modeGlob$residuals / (summary(modeGlob)$sigma * sqrt(1-hii)) # manually calculate standardized residuals.

    identical(rstandard(modeGlob) , rst) # check, this must be TRUE.

    plot(rstandard(modeGlob) , rst) # check it graphically.