使用插入符训练的二项式 GLM

Dea*_*ean 5 r glm r-caret

我想在某个数据集上拟合二项式 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) 不正确”

top*_*epo 5

caret不支持二项式结果的分组数据。您可以将数据扩展为作为二进制 (Bernoulli) 数据的因子变量。此外,如果你这样做,你不需要family=binomial()在调用中使用train.

最大限度

  • 谢谢您的答复。我使用了一个数值向量和权重来让它工作:`trainfit2&lt;-train(form=Top10/9~.,data=MissUSA[,-7], family= binomial(),method="glm", trControl=trainControl (method = "none"),weights=rep(9,51))` (2认同)