我认为您正在寻找帽子的价值。
Use hatvalues(fit)
。经验法则是检查任何比平均帽子值大 2-3 倍的观察值。我不知道有什么特定的函数或包可以在一个很好的数据框中提供此信息,但自己动手是相当简单的。这是一个例子:
fit <- lm(hp ~ cyl + mpg, data=mtcars) #a fake model
hatvalues(fit)
hv <- as.data.frame(hatvalues(fit))
mn <-mean(hatvalues(fit))
hv$warn <- ifelse(hv[, 'hatvalues(fit)']>3*mn, 'x3',
ifelse(hv[, 'hatvalues(fit)']>2*mn, 'x3', '-' ))
hv
对于更大的数据集,您可以使用subset
and/or order
仅查看帽子值的某些值范围:
subset(hv, warn=="x3")
subset(hv, warn%in%c("x2", "x3"))
hv[order(hv['hatvalues(fit)']), ]
我实际上在书中遇到了一个很好的绘图函数,它可以做到这一点R 的实际应用 http://www.manning.com/kabacoff/但由于这是一本受版权保护的书,我不会展示卡巴科夫的知识产权。但该图对于中等规模的数据集效果更好。
这是一个不错的帽子图,但您可能还想研究一下:
plot(hatvalues(fit), type = "h")