数据链接: https ://drive.google.com/open?id=1aMgwSPOZAEO3cICqLeQyqsDF_5WrhFXe
我在使用上面链接的数据对二项式 glm 进行事后分析时遇到问题。
实验:我正在查看给定 3 个解释变量的昆虫标记的可检测性(存在/不存在);应用方法(apptreat - 因子,2 级)、标记(因子,2 级)和曝光时间(exp - 数值,3 级)。响应变量(检测)记录为 1 表示存在,0 表示不存在。在多次运行模型以确定任何交互是否显着之后,我提出了以下模型。
模型:
id.glm2<-glm(detec~apptreat+marker+exp+apptreat*exp, family=binomial, data=indiv_detec2)
anova(id.glm2, test="Chisq")
输出:
Analysis of Deviance Table
Model: binomial, link: logit
Response: detec
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 906 1182.37
apptreat 1 238.847 905 943.52 < 2.2e-16 ***
marker 1 156.844 904 786.68 < 2.2e-16 ***
exp 1 138.098 903 648.58 < 2.2e-16 ***
apptreat:exp 1 9.414 902 639.17 0.002153 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我想做一个事后多重比较分析来比较每个变量内的差异,包括使用CRAN中的glht
函数的交互。multcomp
我可以通过有关存在交互的警告来比较主要影响(正如其他帖子所预期的那样)。为了对交互进行事后分析,我使用以下代码在交互数据中添加了一列,并将其作为主要效果包含在 glm 模型中
indiv_detec2$AE<-interaction(indiv_detec2$apptreat, indiv_detec2$exp)
id.glm2<-glm(detec~apptreat+marker+exp+AE, family=binomial, data=indiv_detec2)
anova(id.glm2, test="Chisq")
当我使用该glht
函数对交互变量 (AE) 进行事后分析时,会出现以下错误消息
glht(m1, linfct = mcp(AE = "Tukey"))
modelparm.default(model, ...) 中的错误:系数和协方差矩阵的维度不匹配
数据不平衡,但我看不出这将如何防止交互变量而不是其他变量的事后发生。我知道这个问题已经在其他帖子中提出,但我无法让这些帖子中提到的解决方案起作用。我假设这是我做错了/简单的错误,只是想不通。