【问题标题】:How do I fit a GLM using Binomial Distribution for this data in R?如何在 R 中为这些数据使用二项分布拟合 GLM?
【发布时间】:2017-09-05 04:58:54
【问题描述】:

我被要求使用二项分布拟合 GLM 来解决以下问题:

进行了一项调查,以评估在当地社区接种的新型犬咳嗽疫苗的有效性。出于营销目的,该疫苗在两周内以两次注射的顺序免费提供给那些希望带他们的狗使用它的人。有些狗接受了两次拍摄序列,有些只出现在第一次拍摄,而另一些则没有收到。在接下来的会议中,对 600 名当地狗主人的调查提供了下表所示的信息。

如何将数据导入 R 以获得正确的格式以适合二项式分布的 GLM?

任何帮助都会很棒!

【问题讨论】:

    标签: r


    【解决方案1】:

    一种合适的方式是:

    vaccine <- c(rep(c(0,1,2),c(12,4,8)),rep(c(0,1,2),c(175,61,340)))
    cough <- c(rep(1,12+4+8),rep(0,175+61+340))
    

    然后你可以这样做:

    linfit <- glm(cough~vaccine,family=binomial)
    summary(linfit)
    

    factorfit <- glm(cough~as.factor(vaccine),family=binomial)
    summary(factorfit)
    

    ordfactorfit <- glm(cough~ordered(vaccine),family=binomial)
    summary(ordfactorfit)
    

    或者其他一些可能性,这取决于您的特定假设。

    这不是唯一的方法(您可能不想使用非常大的数据集),但是以这种方式“取消制表”可以让一些事情变得简单。您可以轻松地重新计算 (table(data.frame(cough=cough,vaccine=vaccine)))。

    您可能还会发现有符号根贡献到卡方的有趣:

     t=table(data.frame(cough=cough,vaccine=vaccine))
     r=rowSums(t)
     c=colSums(t)
     ex=outer(r,c)/sum(t)
     print((t-ex)/sqrt(ex),d=3)
         vaccine
    cough      0      1      2
        0 -0.337 -0.177  0.324
        1  1.653  0.868 -1.587
    

    它们的解释有点类似于标准化残差。

    Nos 与疫苗的比例图(标有 $\pm$1 标准错误)同样有用。

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多