对于我的研究,我想进行多项式逻辑逐步前向选择(尽管有其缺点)。为此,我运行以下示例代码:
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的列均已命名。这里的问题是什么?如何解决?
答案 0 :(得分:0)
通过更改
的最后一行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
函数不接受模型作为第一个参数。
答案 1 :(得分:0)
在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
。如果使用所有回归变量,则可以使用.