一种合适的方式是:
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 标准错误)同样有用。