R:在面板数据模型中实现变量选择

时间:2016-04-25 03:21:53

标签: r debugging error-handling feature-selection plm

我正在使用包“plm”在R中使用17个变量进行面板数据分析 我必须消除这些变量,同时保留其中最重要的变量。我正在研究调整后的R平方,以获得最能解释我的因变量的变量集。由于我有17个变量,重复和再次观察,再次变得麻烦。以下是我的代码:

attach(pdf) 
pdata <-plm.data(pdf,index=c("country","day")) 
Y <- cbind(DEP_var) 
var_list <- pdf[c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q")]
between_models= list() 
R_Sqrt=c()
for(i in 1:17){
X<-cbind(var_list[,1:i])
between_models[i]=plm(Y~ X, data=pdata, model= "between")
R_Sqrt[i]=coef(between_models[i])["Adj. R-Squared"]
}
print(paste("Least  Adj. R-Squared is",which.max(R_Sqrt))
print(between_models[[which.max(R_Sqrt)]]) # print least  Adj. R-Squared model

我尝试使用上面的代码来增加Y中的变量数量并一次又一次地估算模型之间的直到Y具有最大变量数。然后查看调整后的R平方值列表,并选择具有最高调整R平方的模型的摘要。当我运行上面的代码时,它会出现以下错误:

Error in model.frame.default(terms(formula, lhs = lhs, rhs = rhs, data = data,  : invalid type (list) for variable 'X'

在上面的循环代码中,似乎变量X的类型存在问题。请建议如何修复它以使循环正常运行并给出调整最小的R-square模型作为结果。

0 个答案:

没有答案