我试图通过在R中创建10个逐步模型来查看逐步回归中使用了哪些变量。我使用的完整数据集是库ISLR中的Credit。
我使用相同的完整数据集创建了子训练数据集。然后,我使用for循环成功创建了10个逐步模型,然后提取了每个模型中使用的系数的名称。
这是我创建10个模型的方式:
library(ISLR)
data(Credit)
for (i in 1:10) {
training_random[[i]]<-createDataPartition(y=Credit$Balance,p=0.7,list=F)
train_data[[i]]<-Credit[training_random[[i]],]
test_data[[i]]<-Credit[-training_random[[i]],]
ols_step_null[[i]]<-lm(Balance~1,data=train_data[[i]])
ols_step_full[[i]]<-lm(Balance~.,data=train_data[[i]])
ols_step[[i]] <- step(ols_step_null[[i]],
formula(ols_step_full[[i]]),
k=log(nrow(train_data[[i]])),
direction='both',trace=0)
}
作为示例,在输入以下代码后:
test<-c(names(ols_step[[6]]$coef),names(ols_step[[7]]$coef))
我真的有一个向量,列出了第6和第7逐步模型中使用的所有变量。我使用
成功计算了每个变量的使用频率table(test)
我希望通过写一个循环来扩展它:
test<-vector("list",10)
for (i in 1:10) {
test[[i]]<-names(ols_step[[i]]$coef)
}
结果弹出为10个单独的行,指示每个模型中使用的变量,而我未能按照上面的期望使用表函数。显示的错误是:
表(测试)中的错误:所有参数的长度必须相同
有人可以帮忙吗?