R中逻辑模型的输出

机器算法验证 r 物流 广义线性模型
2022-03-14 12:32:12

我正在尝试解释以下类型的逻辑模型:

mdl <- glm(c(suc,fail) ~ fac1 + fac2, data=df, family=binomial)

predict(mdl)是每个数据点的预期成功几率的输出吗?是否有一种简单的方法可以将模型的每个因子水平的几率制表,而不是所有数据点?

1个回答

帮助页面

predict.glm

状态:“因此,对于默认二项式模型,默认预测是对数赔率(logit 标度上的概率),'type = "response"' 给出了预测概率”。因此,predict(mdl)返回 log(odds),并使用 "type = "response" 返回预测的概率。您可能会发现这个玩具示例很有启发性:

> y <- c(0,0,0,1,1,1,1,1,1,1)
> prop.table(table(y))
y
  0   1 
0.3 0.7 
> glm.y <- glm(y~1, family = "binomial")
> ## predicted log(odds)
> predict(glm.y)
        1         2         3         4         5         6         7         8 
0.8472979 0.8472979 0.8472979 0.8472979 0.8472979 0.8472979 0.8472979 0.8472979 
        9        10 
0.8472979 0.8472979 
> ## predicted probabilities (p = odds/(1+odds))
> exp(predict(glm.y))/(1+exp(predict(glm.y)))
  1   2   3   4   5   6   7   8   9  10 
0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 
> predict(glm.y, type = "response")
  1   2   3   4   5   6   7   8   9  10 
0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 0.7 

关于第二个问题,您可能想查看 John Fox 的效果包http://socserv.socsci.mcmaster.ca/jfox/Misc/effects/index.html另请参阅他的 JSS 文章“R 中用于广义线性模型的效果显示”(第 8-10 页)。