我正在运行面板回归(随机效应),并且我有几个候选回归量。
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 包时面板数据集的可能简单实现是什么?
您可以尝试我在另一个问题中找到的解决方案(完全归功于原始求解器):
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的可能性