Проблемы с записью в таблицу из-за циклической ступенчатой ​​регрессии - PullRequest
3 голосов
/ 24 октября 2011

У меня есть 95 потенциальных переменных-предикторов, я бы хотел уменьшить это число до тех переменных, которые обладают большей предсказательной силой. Пока что я планировал написать код для:

  • внутри цикла выберите 6 случайных предикторов и выполните для них пошаговую регрессию (направление = оба).
  • этот цикл будет продолжаться в течение 100 000 итераций, чтобы обеспечить ввод каждой возможной комбинации.
  • Значимость предиктора (из сводной команды) будет основана на значениях p. Там, где значимые значения <0,05 кодируются как «1», а> 0,05 - «0» для 6 предикторов (или менее), через которые они проходят. Имя предиктора сохраняется в выходной таблице цикла.

Я не могу создать одну выходную таблицу с 95 столбцами и записать в каждую отдельную строку, используя 6 столбцов, сгенерированных для каждой итерации цикла.

Так есть ли способ добавить в массив, созданный с помощью:

results <- array(NA,c(100000,95)) 

с именами столбцов, назначенными:

colnames(results)<-c(<inputdata>)

Ответы [ 2 ]

6 голосов
/ 24 октября 2011

Вместо случайного выбора переменных, почему бы не использовать метод усадки и выбора переменных, например регрессия лассо или наименьшего угла .Оба автоматически выберут переменные, которые наиболее коррелируют с результатом.

Для этого есть зрелый пакет R .

2 голосов
/ 29 октября 2011

Экс и Бен Болкер сделали хорошие предложения.Я бы также порекомендовал glmnet и взглянул на настройки dfmax и pmax, которые позволяют ограничить количество активных переменных в модели и общее количество переменных, рассматриваемых в определенной последовательности.модели.

По сути, ступенчатая регрессия, одна переменная за раз, немного устарела (о, когда я был молодым итератором, делал свои первые итерации, я все время делал ступенчатую регрессию), но это хорошоперейти к другой методологии полностью.Есть случаи, когда это все еще разумно, но они немногочисленны и довольно специализированы.Однако следует избегать моделирования всех подмножеств: оно просто не масштабируется, и практически ничего не получается от всех этих вычислительных усилий.

...