我得到的数据看起来像这样:一组27个对象在3个时间点具有一个二分变量y1。 y1的概率在3个时间点之间不同(分别为100%,85%和40%)。
我想证明它们之间的差异是每个时间点之间(t1-t2,t1-t3和t2-t3之间)的显着差异。为此,我要遵循此other question
的建议,使用Langrange乘数(或R的“得分”或“ Rao”)进行逻辑回归数据模拟
library(dplyr)
library(multcomp)
funda = 25
y_sub1 = rbinom(funda, 1, 0.85)
y_sub2 = rbinom(funda, 1, 0.4)
y1 = c(rep(1,funda), y_sub1, y_sub2)
y1[2*funda + 3] = NA
time = c(rep("t1", funda), rep("t2", funda), rep("t3", funda))
ID_init = c()
for (i in 1:funda){
ID_init = c(ID_init, paste0("ID", i))
}
ID = rep(ID_init, 3)
df = data.frame(y1, time, ID)
逻辑回归:
mod_glm = glm(y1 ~ time, data = df, family = "binomial")
mod_glm = anova(mod_glm, test = "Rao")
mod_glm
mod_glm = glht(mod_glm, linfct = mcp(time = "Tukey")) %>% summary()
mod_glm
但是我收到此错误消息:
Error in factor_contrasts(model) : no 'model.matrix' method for 'model' found!