【问题标题】:Conditional predicted probabilities using glm使用 glm 的条件预测概率
【发布时间】:2012-08-07 02:55:37
【问题描述】:

简单的问题,我想不通。我正在尝试从包括交互的模型中生成条件预测概率。例如,我希望能够将 x2==1 和 x3==0 时的预测概率与 x2==0 和 x3==1 时的预测概率进行比较。

我正在尝试这样做:

model <- glm(y~x1 + x2 * x3, family=binomial(link="logit"), data=data)
predprob1 <- predict(model, type="response", newdata=(x1=mean(x1) & x2==1 & x3==0))
predprob2 <- predict(model, type="response", newdata=(x1=mean(x1) & x2==0 & x3==1))
probdiff<-predprob1-predprob2

之后,我需要计算概率差异的 95CI。我相信这对你们 R 天才来说很简单。感谢您的帮助!

【问题讨论】:

  • 正如所提出的,这个问题承认没有可能的解决方案,因为具有默认高斯分布的 glm 不会产生概率估计。由于您没有在“newdata”参数中包含所有预测变量值(并且您的命名不正确),因此您可能会得到原始数据的估计值(或错误)。
  • 您好,我正在添加我认为应该有帮助的更正?我试图将 X1 设置为平均值,尽管该代码也可能是错误的。
  • 你仍然没有提供 newdata 一个数据框对象,即使你提供了正确的类,你也没有为 mean(x1) 的结果分配名称(即'x1')它需要。

标签: r


【解决方案1】:

也许(在没有工作示例的情况下未经测试):

model <- glm(y~x1 + x2 * x3, family=binomial(link="logit"), data=data)
predprob1 <- predict(model, type="response", 
                     newdata=with(data, data.frame(x1=mean(x1) & x2=1 & x3=0))
predprob2 <- predict(model, type="response", 
                     newdata=with(data, data.frame(x1=mean(x1) & x2=0 & x3=1))
probdiff <- predprob1-predprob2

另一个 R 错误是使用 '==' 进行赋值。它用于逻辑测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多