我想在某个数据集上拟合二项式 GLM。使用 glm(...,family=binomial) 一切正常,但我想用 caret train() 函数来做。不幸的是,我遇到了一个无法摆脱的意外错误。
library("marginalmodelplots")
library("caret")
MissUSA <- MissAmerica08[,c(2,4,6,7,8,10)]
formula <- cbind(Top10, 9-Top10)~.
glmfit <- glm(formula=formula, data=MissUSA, family=binomial())
trainfit <-train(form=formula,data=MissUSA,trControl=trainControl(method = "none"), method="glm", family=binomial())
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
“错误:nrow(x) == length(y) 不正确”
caret不支持二项式结果的分组数据。您可以将数据扩展为作为二进制 (Bernoulli) 数据的因子变量。此外,如果你这样做,你不需要family=binomial()在调用中使用train.
最大限度