R lm 输出中的标准化残差

机器算法验证 r 残差 标准化 诊断 流明
2022-03-20 20:39:28

如果我将诊断图绘制为 R 回归,其中一些将“标准化残差”作为 y 轴,例如在此图中:

在此处输入图像描述

残差标准化了多少?也就是说,让我们假设在我的模型中,有 100 个预测值;因此有 100 个残差。

  1. 标准化残差定义为(已实现残差 - 所有 100 个已实现残差的平均值)/(所有 100 个已实现残差的标准差)?ei(eie¯)/se
  2. 由于每个残差的可能实现分布中的一个实现值,这个残差是否通过它自己的均值和方差进行归一化(与均值相反)以及与上述所有其他值 1 到 100 的差异)?eieieie¯iVar(ei)

我试图找到澄清这种区别的文件,但找不到任何毫无疑问的文件。

2个回答

如果您查看plot.lm(通过键入stats:::plot.lm)的代码,您会在其中看到这些片段(评论是我的;它们不是原始的):

r <- residuals(x)                                # <---  r contains residuals

...

if (any(show[2L:6L])) {
    s <- if (inherits(x, "rlm")) 
        x$s
    else if (isGlm) 
        sqrt(summary(x)$dispersion)   
    else sqrt(deviance(x)/df.residual(x))        #<---- value of s
    hii <- lm.influence(x, do.coef = FALSE)$hat  #<---- value of hii

...

    r.w <- if (is.null(w)) 
        r                                        #<-- r.w  for unweighted regression
    else sqrt(w) * r
    rs <- dropInf(r.w/(s * sqrt(1 - hii)), hii)  # <-- std. residual in plots

所以 - 如果你不使用权重 - 代码清楚地将其标准化残差定义为此处定义的内部学生化残差:

http://en.wikipedia.org/wiki/Studentized_residual#How_to_studentize

也就是说:

ε^iσ^1hii 

(其中,并且的列维度)。σ^2=1nmj=1nε^j2mX

标准化(或学生化)残差是残差除以其标准差。回归模型中残差的标准差可能会因点而异,因此通常通过标准差对其进行标准化以使比较更有意义。