【发布时间】:2012-02-28 04:36:42
【问题描述】:
我知道如何使用杠杆图()生成图,但我找不到一种方法来为每个观察结果生成杠杆率统计数据,就像在 megastat 输出中一样。
【问题讨论】:
标签: r
我知道如何使用杠杆图()生成图,但我找不到一种方法来为每个观察结果生成杠杆率统计数据,就像在 megastat 输出中一样。
【问题讨论】:
标签: r
我认为您正在寻找帽子值。
使用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")
【讨论】: