2

我有 10 个具有二元和多类因子的数据集,我使用逻辑回归和 R“glm”来预测类概率 class,prediction(formula,data,type="response")。我怎样才能得到预测的类,就像其他模型给出的那样?例如:

df=data.frame(y=c(1,0,0,1),x1=c(1,2,3,4),x2=c(12,13,43,3))
df$y=as.factor(df$y)
testdf=data.frame(y=c(1,1,0,0),x1=c(11,16,65,8),x2=c(3,2,5,0))
testdf$y=as.factor(testdf$y)
model_glm=glm(y~.,data=df,family="binomial")
pred_glm=predict(model_glm,newdata=testdf,type="response")

这将给出概率预测:

> pred_glm
           1            2            3            4 
2.220446e-16 2.220446e-16 2.220446e-16 2.220446e-16
  • 但是,无论是 0 还是 1,我都需要类别预测。或者两列中的概率预测:一列用于 1 类,另一列用于 0 类?
  • 当我有多个班级时如何使用它?
4

1 回答 1

0

不久前,我在处理数据时遇到了一些问题。为了预测,您必须首先创建逻辑回归

lgr= glm(y ~ x1 + x2 +x3...x10, data=df1)

然后你可以从那里预测或玩弄你的模型:

新预测:注意df1 和 df2 必须是相同的长度(所以如果需要添加 NA)

predicts= predict(lgr, newdata= "df2")

然后查看它并将其用于演示等。我会把它写到 csv

write.csv(predicts, "K:/filelocation/filename.csv")

编辑 如果尝试根据预测进行分类,则需要进行特异性和敏感性计算。请参阅:https ://stats.stackexchange.com/questions/25389/obtaining-predicted-values-y-1-or-0-from-a-logistic-regression-model-fit/25398#25398?newreg=2f9713d7d60f427d9e123208c39f69f8

于 2015-12-03T15:15:18.830 回答