plot.lm()如何确定残差与拟合图的异常值?

3x8*_*9g2 8 plot regression r linear-regression lm

plot.lm()如何确定残差与拟合图的哪些点是异常值(即标记的内容)?我在文档中找到的唯一一件事是:

细节

sub.caption-默认情况下,函数调用 - 在每个绘图上显示为副标题(在x轴标题下),当绘图位于不同页面上时,或者当有多个绘图时作为外边距中的副标题(如果有)每页.

'Scale-Location'图也称为'Spread-Location'或'S-L'图,它采用绝对残差的平方根来减小偏度(sqrt(| E |))比| | E | 对于高斯零均值E).

'S-L',QQ和剩余杠杆图使用具有相同方差的标准化残差(在假设下).它们以R [i] /(s*sqrt(1-h.ii))给出,其中h.ii是帽子矩阵的对角线条目,影响()$ hat(另见帽子),以及残差 - 杠杆图使用R [i]的标准化Pearson残差(residuals.glm(type ="pearson")).

Residual-Leverage图显示Cook的距离等于Cook.levels的值(默认为0.5和1),并省略带有警告的杠杆的情况.如果杠杆率是恒定的(通常是在平衡的aov情况下的情况),则该图使用因子水平组合而不是x轴的杠杆作用.(因子水平按平均拟合值排序.)

在Cook的距离与杠杆/(1-leverage)图中,幅度相等的标准化残差的轮廓是通过原点的线.轮廓线标有大小.

但它没有说明如何生成残差与拟合图以及如何选择要标记的点.

更新:Zheyuan Li的回答表明,残差与拟合图标点的方式实际上只是通过查看残差最大的3个点.确实如此.它可以通过以下"极端"示例来证明.

x = c(1,2,3,4,5,6)
y = c(2,4,6,8,10,12)
foo = data.frame(x,y)
model = lm(y ~ x, data = foo)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

李哲源*_*李哲源 13

他们找到了最大的3个绝对标准化残差.考虑这个例子:

fit <- lm(dist ~ speed, cars)
plot(fit, which = 1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r <- rstandard(fit)  ## get standardised residuals
order(abs(r), decreasing = TRUE)[1:3]
# [1] 49 23 35
Run Code Online (Sandbox Code Playgroud)