Есть ли способ проверить частоту переменных, используемых в нескольких моделях в R? - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь увидеть, какие переменные широко используются в пошаговой регрессии, создав 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 отдельных строк, указывающих переменные, используемые в каждой модели, и я не смог использовать табличную функцию, как требуется выше. Показанная ошибка была:

Ошибка в таблице (тест): все аргументы должны иметь одинаковую длину

Кто-нибудь может помочь?

...