以前我在使用 lsmeans 识别组之间的显着差异同时使用 lme4 模型控制其他因素时没有任何问题。但是,使用以下数据集查看荧光 lsmeans 会产生相同的 p 值,而不管其他因子水平如何
此示例中使用的数据子集可在此处找到: https ://drive.google.com/file/d/0B3-esLisG8EbTzA3cjVpRGtjREU/view?usp=sharing
数据
响应:此处为 1/0 存在/不存在。(还有平均像素强度和 cbind 百分比覆盖)
固定因素 1:热处理 - 2 级
固定因素 2:竞争待遇 - 2 级
固定因素 3:时间处理 - 2 个级别
随机因素:无
模型创建
library(lme4)
model<-glm(presence ~ heat.treatment + competition.treatment + time.post.mating.hrs, binomial(link= "logit"), data=gfptest)
最初包含交互项,但根据 AIC 测试,它们的存在并不显着。使用 drop1 对固定因子去除热进行显着性检验很重要
drop1(model, test= "Chi")
# presence ~ heat.treatment + competition.treatment + time.post.mating.hrs
# Df Deviance AIC LRT Pr(>Chi)
#<none> 30.589 38.589
#heat.treatment 1 39.114 45.114 8.5251 0.003503 **
#competition.treatment 1 30.876 36.876 0.2868 0.592297
#time.post.mating.hrs 1 32.410 38.410 1.8206 0.177237
我想测试控制和热处理之间的差异,同时控制竞争处理和时间处理,例如。在 0.5 小时的时间点和没有竞争的对照和加热之间的存在显着不同,在 24 小时的时间点和没有竞争的控制和加热之间的存在显着不同,等等。我尝试了 lsmeans 函数(multcomp 产生类似的结果)
lsmeans(model, pairwise~heat.treatment+competition.treatment+time.post.mating.hrs, adjust="tukey")
更明确地
model <- lsmeans(model, "heat.treatment", by = "competition.treatment", at = list( time.post.mating.hrs = "0.5"))
modelsum<- summary(model, infer= c(TRUE,TRUE), level= .90, adjust= "bon", by="competition.treatment")
modelsum
对(型号)
但是,两者在每个组组合中都给出相同的 p 值;在查看箱线图和对数据等级进行成对 mann-whitney-U 测试时似乎不准确的东西
$contrasts
contrast estimate SE df z.ratio p.value
control,single,0.5 - heat,single,0.5 18.3718560 2224.3464134 NA 0.008 1.0000
control,competition,0.5 - heat,competition,0.5 18.3718560 2224.3464134 NA 0.008 1.0000
control,single,24 - heat,single,24 18.3718560 2224.3464134 NA 0.008 1.0000
control,competition,24 - heat,competition,24 18.3718560 2224.3464134 NA 0.008 1.0000
我尝试探索数据框以消除相同 p 值的原因。将因子数量减少到两个并使用不同的响应变量/误差分布时,问题仍然很明显。
解决 lsmean/similar 包问题的任何帮助将不胜感激。作为次要选项,关于是否可以接受泊松/二项式 glm()s 的任何建议,然后使用 t-test/mann-whitneys 进行事后测试