R 面板回归模型 (plm) 自动模型选择的逐步替代方案

Ale*_*olf 6 regression model r panel dataset

我正在运行面板回归(随机效应),并且我有几个候选回归量。

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

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

fit.plm = plm(X.panel3.form,data=panel,index = c("variable","Date"),  model="random")
Run Code Online (Sandbox Code Playgroud)

这将是完整的模型,但我想自动选择回归量较少的模型。类似于逐步过程。

事实上,AIC 的逐步优化和优化将是最好的参考,简单的事情就是只保留更相关的回归量。

关键是该Step()函数不适用于 R 中的面板数据(我相信这是因为面板模型没有最大似然估计)

所以当运行时Step()StepAIC()(来自 Mass 包)

我收到错误:

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

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

小智 0

您可以尝试我在另一个问题中找到的解决方案(完全归功于原始求解器):

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

他在这里创造了一个要点

plm添加此函数增加了计算对象的 AIC 和 BIC 的可能性