【问题标题】:R glm object and prediction using offsetsR glm 对象和使用偏移量进行预测
【发布时间】:2017-01-30 13:06:24
【问题描述】:

所以我使用 R 进行逻辑回归,但我使用的是偏移量。

  mylogit <- glm(Y ~  X1 + offset(0.2*X2) + offset(0.4*X3), data = test, family = "binomial")

输出仅显示一个系数、截距和其中一个预测变量 X1。

    Coefficients:
    (Intercept)               X1
      0.5250748         0.0157259

我的问题:我如何从这个模型的每个观察中获得原始预测? 更具体地说,如果我使用预测函数,它是否会包含所有特征及其系数,即使模型系数被列为仅包含截距和 X1?

  prob = predict(mylogit,test,type=c("response"))

我必须使用预测功能吗? “mylogit”对象是否包含我可以直接从中计算的任何内容? (是的,我查看了 glm 上的文档,仍然感到困惑)。

感谢您的患者。

【问题讨论】:

    标签: r logistic-regression


    【解决方案1】:

    我可以用glmoffset() 报告一些实验的结果。似乎(至少从这个实验中)您对predict 的调用不会给出将offset 考虑在内的结果。相反,为此目的似乎需要summary.glm。我首先对?glm 中的第一个示例进行了相当严重的修改(如果您确实提供了数据,这将更符合您的担忧,因为这样我们就可以更多地使用您需要“测试”的 newdata 参数.)

    counts <- c(18,17,15,20,10,20,25,13,12)
    outcome <- gl(3,1,9)
    treatment <- gl(3,3)
    print(d.AD <- data.frame(treatment, outcome, counts))
    glm.D93 <- glm(counts ~ outcome + treatment + offset(1:9), family = poisson())
    glm.D93d <- glm(counts ~ outcome + treatment , family = poisson())
    
    > predict(glm.D93d, type="response")
           1        2        3        4        5        6        7        8        9 
    21.00000 13.33333 15.66667 21.00000 13.33333 15.66667 21.00000 13.33333 15.66667 
    > predict(glm.D93, type="response")
           1        2        3        4        5        6        7        8        9 
    21.00000 13.33333 15.66667 21.00000 13.33333 15.66667 21.00000 13.33333 15.66667 
    

    据我所知,offset 仅在将估计系数与 NULL 估计(通常为 0)进行比较以进行统计推断时才明显。这是由summary.glm 完成的:

    > summary(glm.D93)$coef
                 Estimate Std. Error    z value      Pr(>|z|)
    (Intercept)  2.044522  0.1708987  11.963362  5.527764e-33
    outcome2    -1.454255  0.2021708  -7.193203  6.328878e-13
    outcome3    -2.292987  0.1927423 -11.896644  1.232021e-32
    treatment2  -3.000000  0.2000000 -15.000000  7.341915e-51
    treatment3  -6.000000  0.2000000 -30.000000 9.813361e-198
    > summary(glm.D93d)$coef
                     Estimate Std. Error       z value     Pr(>|z|)
    (Intercept)  3.044522e+00  0.1708987  1.781478e+01 5.426767e-71
    outcome2    -4.542553e-01  0.2021708 -2.246889e+00 2.464711e-02
    outcome3    -2.929871e-01  0.1927423 -1.520097e+00 1.284865e-01
    treatment2   1.337909e-15  0.2000000  6.689547e-15 1.000000e+00
    treatment3   1.421085e-15  0.2000000  7.105427e-15 1.000000e+00
    

    偏移量只会改变参考水平(在这个被破坏的例子中有相当奇怪的变化),而$linear.predictors$fitted 对数据的拟合不受影响。我没有在 glm 中看到影响这一点的评论,但 ?lm 中有评论:“由 offset 指定的偏移量不会包含在 predict.lm 的预测中,而由公式中的偏移项指定的偏移量将是。”我承认我从阅读?model.offset 获得的洞察力非常有限。

    【讨论】:

    • 感谢您的全面回复,我将对此进行审查并进行调查。我认为实际上该模型确实考虑了它们,因为当我手动执行此操作时,它会报告相同的答案。我会把我的代码放在一起并放在这里。谢谢!
    • 我并不认为这是“全面的”。在某些情况下,我一直是“偏移”的用户,但我承认我并不完全确定它是如何工作的。坦率地说,我对我的一些“实验”发现感到惊讶。
    • 这个答案真的回答了这个问题吗?我遇到了与 OP 类似的困难。
    • 哪个问题?有多相似? (我认为您可能需要构建一个minimal reproducible example 并发布一个新问题。)
    猜你喜欢
    • 2014-11-12
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多