二分类glm模型的预测概率对应因变量取值1还是0的概率?
问题1:当前输出的概率对应的类别
你当前得到的0.02、0.04这类预测概率是**status == 1(存活)的概率**。
R的glm函数做二项逻辑回归时,若响应变量为0/1数值型变量,默认拟合的是Y=1的发生概率,调用predict(type = "response")返回的就是该概率值。
问题2:该规则是否总是成立
这个规则不是全局通用的,分两种场景:
- 若响应变量为数值型0/1:规则固定,
type="response"永远返回Y=1的概率 - 若响应变量为因子类型:
glm默认将因子的第二个水平(即levels(响应变量)[2])作为目标事件,返回的是该水平的发生概率。如果你的因子水平顺序是c("1","0"),那么输出的反而是Y=0的概率,和数值型输入的结果相反。
问题3:能否直接指定预测的目标类别
predict()函数本身没有参数直接指定目标类别,你可以通过两种方式实现需求:
- 构建模型前调整响应变量的因子参照水平:用
relevel()函数将你不需要的类别设为参照水平,例如想预测Y=0的概率,可以执行train_data$status <- relevel(factor(train_data$status), ref = "1"),再拟合模型,后续predict返回的就是Y=0的概率 - 直接对预测结果做转换:如果已经得到了
Y=1的概率p,那么1-p就是Y=0的概率,无需重新拟合模型。
内容的提问来源于stack exchange,提问作者fifigoblin
相关产品推荐
相关产品推荐

