作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何从 lm_robust
对象(包 estimatr
)获取 AIC
?我使用 lm_robust
是因为我想使用稳健的估计器来计算 SE
。与 lm
函数不同,当您运行汇总函数并在 lm_robust
上运行 AIC
函数时,不会提供 AIC
> 对象产生错误。下面是我尝试运行的模型类型的玩具示例。
library(estimatr)
fake_data<-data.frame(outcome=rnorm(100,3.65,1),
pred1=rnorm(100,15,7),
pred2=as.factor(sample(1:5, 100, replace = T)))
mod1<-lm_robust(outcome~pred1+pred2,data=fake_data)
AIC(mod1)
错误消息如下所示:
> AIC(mod1)
Error in UseMethod("logLik") :
no applicable method for 'logLik' applied to an object of class "lm_robust"
最佳答案
如果必须用lm_robust
来做,你可以选择自己计算,如下,
AIC
的公式,
AIC = 2*k + n [Ln( 2(pi) RSS/n ) + 1]
# n : Number of observation
# k : All variables including all distinct factors and constant
# RSS : Residual Sum of Square
如果我们将其应用于您的情况的 R
,
# Note that, I take k=7 since you have, 5 factors + 1 continuous and 1 constant
AIC_calculated <- 2*7 + 100* (log( 2*pi* (1-mod1$r.squared)*mod1$tss/100 ) + 1)
[1] 332.2865
与 lm
和 glm
输出相同。
mod2<-lm(outcome~pred1+pred2,data=fake_data)
> AIC(mod2)
[1] 332.2865
最后,当然,您可以将此计算放入一个函数中,只需在其中提供 lm_robust
模型即可随时调用,而无需设置 N
和任何给定数据的 k
参数,例如,
myAIC <- function(data) {
2*(data$k+1) + data$N * (log(2*pi* (1-data$r.squared)*data$tss/data$N ) + 1)
}
> myAIC(mod1)
[1] 332.2865
注意:由于在数据帧中运行 sample()
函数时存在种子差异,因此您的计算机中显示的结果可能会有所不同。
关于r - 如何从 lm_robust 对象获取 AIC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57696549/
我正在逐年运行带有聚集标准误差的回归。这用 Stata 很容易做到,但我必须用 R 来完成,所以我使用 lm_robust() 运行它。来自 estimatr 的函数包裹。问题是我现在必须得到一些变量
如何从 lm_robust 对象(包 estimatr)获取 AIC?我使用 lm_robust 是因为我想使用稳健的估计器来计算 SE。与 lm 函数不同,当您运行汇总函数并在 lm_robust
我是一名优秀的程序员,十分优秀!