如何产生杠杆统计数据?

Tra*_*vis 17 r

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

Tyl*_*ker 27

我想你正在寻找帽子的价值观.

使用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
Run Code Online (Sandbox Code Playgroud)

对于较大的数据集,您可以使用subset和/或order仅查看帽值的某些值范围:

subset(hv, warn=="x3")
subset(hv, warn%in%c("x2", "x3"))
hv[order(hv['hatvalues(fit)']), ]
Run Code Online (Sandbox Code Playgroud)

我实际上遇到了一个很好的情节功能,它在R in Action一书中做到了这一点,但由于这是一本受版权保护的书,我不会展示Kabacoff的知识产权.但是对于中型数据集,该情节会更好.

这是一个不错的帽子情节虽然你可能也想调查:

plot(hatvalues(fit), type = "h")
Run Code Online (Sandbox Code Playgroud)