Я пытаюсь увидеть, какие переменные широко используются в пошаговой регрессии, создав 10 ступенчатых моделей в R. Полный набор данных, который я использовал, был Кредит в библиотеке ISLR.
Я создал наборы данных дополнительного обучения, используя тот же полный набор данных. Затем я успешно создал 10 пошаговых моделей, используя цикл for, затем извлек имена коэффициентов, используемых в каждой модели.
Вот как я создал 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 отдельных строк, указывающих переменные, используемые в каждой модели, и я не смог использовать табличную функцию, как требуется выше. Показанная ошибка была:
Ошибка в таблице (тест): все аргументы должны иметь одинаковую длину
Кто-нибудь может помочь?