Полиномиальный пошаговый выбор вперед - PullRequest
1 голос
/ 20 июня 2019

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

x1=sample(1:100,10,replace=T)
x2=sample(1:100,10,replace=T)
x3=sample(1:100,10,replace=T)
x4=sample(1:100,10,replace=T)
x5=sample(1:100,10,replace=T)
x=as.data.frame(cbind(x1,x2,x3,x4,x5))
y=as.data.frame(c(0,0,2,3,0,0,3,1,0,0))
xy=as.data.frame(cbind(x,y))
names(xy)[6]="y"
beststep=train(multinom(y~x1+x2+x3+x4+x5,data=xy), method="glmStepAIC", direction="forward", k=log(10))

Это приводит к следующей ошибке:

Error: Please use column names for `x

Все столбцы фрейма данных xy имеют имена.В чем здесь проблема и как ее решить?

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Говорит в функции multinom, что ответ является фактором.Хотя это может быть целое число для multinom, единственный пример, используемый с поездом, который я вижу здесь https://github.com/topepo/caret/blob/master/RegressionTests/Code/multinom.R,, рассматривает его как фактор в данных радужной оболочки.

Это работает для меня, это то, чтовам нужно?

xy$y <- as.factor(xy$y)
beststep=train(y~.,
               data=xy, 
               method="multinom",
               direction="forward", k=log(3562))

у вас есть x4 дважды в формуле модели.Можно использовать . при использовании всех регрессоров

0 голосов
/ 20 июня 2019

Путем изменения последней строки с

beststep=train(multinom(y~x1+x2+x3+x4+x4+x5,data=xy), method="glmStepAIC", direction="forward", k=log(3562))

на

beststep=train(y~x1+x2+x3+x4+x4+x5,data=xy, method="glmStepAIC", direction="forward", k=log(3562))

я получил результат без ошибок.Возможно, у вас есть конкретная причина для включения модели в (multinom), но функция train не принимает модель в качестве первого параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...