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

问题描述 投票:0回答:1

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

 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 包时面板数据集的可能简单实现是什么?

r model dataset panel regression
1个回答
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)
}

他创造了一个要点在这里

添加此函数增加了计算

plm
对象的AIC和BIC的可能性

© www.soinside.com 2019 - 2024. All rights reserved.