我被要求使用二项分布拟合GLM以解决以下问题:
进行了一项调查,以评估在当地社区实施的新型犬咳嗽疫苗的有效性。出于营销目的,疫苗是在两周内免费提供给那些希望带狗利用的人。有些狗接受了两次射击,一些只出现在第一次射击,有些则没有。在随后的会议中对600名当地狗主人进行的调查提供了下表中显示的信息。
如何将数据输入R以获得适合二项式符号的GLM的正确格式?
任何帮助都会很棒!
答案 0 :(得分:3)
一种合适的方式是:
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))
)。
您可能还会发现签名的root-contribution-to-chi-square有趣:
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
这些解释有点类似于标准化残差。
No
s对抗疫苗的比例(标有$ \ pm $ 1标准误差)同样有用。