我正在分析参与者对某些问题的二进制答案的数据集。我正在使用该glm
函数来测试如何Var * Base_con
影响Dec
. 拟合后,我试图比较“Var”因子如何影响每个“Base_con”因子水平内的结果。在这个小插曲之后,我尝试了以下(失败的)方法,我相信它可以被复制(如果它不起作用,请告诉我):
# load example dataset with relevant columns
require(RCurl)
my_csv = getURL("https://docs.google.com/spreadsheets/d/1sBVW7QbnfumeRmY1uEDdiDNJE7QfmCXH0wMmV2lZSH4/pub?gid=0&single=true&output=csv")
eg_data = read.csv(textConnection(my_csv))
# set columns as factors because they are numerically coded
eg_data$Base_con = as.factor(eg_data$Base_con)
eg_data$Var = as.factor(eg_data$Var)
eg_data$Dec = as.factor(eg_data$Dec)
# GLM fit
m1 = glm(Dec ~ Var * Base_con, data = eg_data, family = "binomial")
# strategy for Tukey multiple comparisons
require(multcomp)
tmp = expand.grid(Base_con = unique(eg_data$Base_con), Var = unique(eg_data$Var))
X = model.matrix(~Base_con : Var, data = tmp)
mc = glht(m1, linfct = X)
最后一个命令的输出是:
Error in glht.matrix(m1, linfct = X) :
‘ncol(linfct)’ is not equal to ‘length(coef(model))’
实际上,错误消息报告的两个元素的列数和长度是不同的:
> ncol(X)
[1] 7
> length(coef(m1))
[1] 6
到目前为止,这就是我所能取得的进展。有任何想法吗?谢谢大家。