R语言 用于面板回归模型(plm)的自动模型选择的逐步替代方法

wnavrhmk  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(150)

我运行一个面板回归(随机效应),我有几个回归候选人。

X.panel3.form = as.formula(c("value ~ ",paste(X.panel3.cols,collapse="+")))

> X.panel3.form
value ~ SMB + HML + MOM + IBX + EQWO + TERMBZ + BZCDS5Y + COEN + 
    COMP + COMI + COAG + DOL + VIX + SPX + TERMUS

字符串
然后我运行一个简单的面板回归模型

fit.plm = plm(X.panel3.form,data=panel,index = c("variable","Date"),  model="random")


这将是完整的模型,但我想自动选择具有较少回归变量的模型。类似于逐步过程。
事实上,AIC的逐步优化将是最好的参考,一些简单的东西只保留更相关的回归量。
关键是Step()函数不适用于R中的面板数据(我相信这是因为面板模型没有最大似然估计)
因此,当运行Step()StepAIC()(来自Mass包)时,
我得到了错误:

Error in UseMethod("extractAIC") : 
  no applicable method for 'extractAIC' applied to an object of class "c('plm', 'panelmodel')"


所以我的问题是在R中自动选择模型的替代方法是什么?在使用plm包时,面板数据集的简单实现是什么?

ibrsph3r

ibrsph3r1#

您可以尝试我在另一个question上找到的解决方案(完全归功于original solver):

logLik.plm <- function(object){
  out <- -plm::nobs(object) * log(2 * var(object$residuals) * pi)/2 - deviance(object)/(2 * var(object$residuals))
  
  attr(out,"df") <- nobs(object) - object$df.residual
  attr(out,"nobs") <- plm::nobs(summary(object))
  return(out)
}

字符串
他创造了一个要点here
添加此函数增加了计算plm对象的AIC和BIC的可能性

相关问题