如何产生杠杆统计数据?

时间:2012-02-28 04:36:43

标签: r

我知道如何使用leveragePlot()生成绘图,但我无法找到一种方法来为每个观察产生杠杆统计数据,例如在megastat输出中。

1 个答案:

答案 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")