我知道如何使用leveragePlot()生成绘图,但我无法找到一种方法来为每个观察产生杠杆统计数据,例如在megastat输出中。
答案 0 :(得分:25)
我认为你正在寻找帽子价值。
使用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
和/或order
来查看帽值的某些值范围:
subset(hv, warn=="x3")
subset(hv, warn%in%c("x2", "x3"))
hv[order(hv['hatvalues(fit)']), ]
我实际上遇到了一个很好的情节功能,在书R in Action中这样做但是因为这是一本受版权保护的书,所以我不会展示Kabacoff的知识产权。但是对于中等大小的数据集,该情节会更好。
虽然你可能也想调查一下这是一个不错的帽子情节:
plot(hatvalues(fit), type = "h")