我试图用一组变量来预测一个三水平因子。该组为 A、B 和 C。
m<-glm(as.factor(Group)~Sex+BloodType+Pressure,data=Hel,family = "binomial")
newdata <- data.frame(Sex="M",BloodType="A+", Pressure=80)
predict(m,newdata)
返回:
1
0.7133324
我希望它能回馈给我:
A B C
20.00 40.00 40.000
我该怎么做?谢谢。
最佳答案
有两个问题需要解决:
首先,glm
只能进行具有两级结果的逻辑回归。如果您提供的结果变量具有两个以上级别,则会将除第一个(引用)级别之外的所有级别合并到第二个级别中。要进行多项式回归,您需要使用不同的函数(有多个包可以进行多项式回归,例如,MASS
包中的 polr
, >multinom
来自 nnet
包(参见 @Stupidwolf 的回答),vglm
来自 VGAM
包;另请参见 mlogit
和 gmnl
包)。
其次,predict(m1, newdata)
提供对数赔率范围的预测。要获得概率范围的预测,您需要执行 predict(m1, newdata, type="response")
。需要设置类似的选项(尽管参数和/或参数选项的名称可能不同)才能获得多项模型概率尺度的预测。
关于r - 预测 3 个水平的因子并返回每个因子的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383436/