以前,使用lsmeans来识别组间的显着差异,同时使用lme4模型控制其他因素时,我没有遇到任何问题。然而,通过以下数据集查看荧光,无论其他因子水平如何,lsmeans都会产生相同的p值
此示例中使用的数据子集可在此处找到: https://drive.google.com/file/d/0B3-esLisG8EbTzA3cjVpRGtjREU/view?usp=sharing
数据
响应:此处1/0存在/不存在。 (但也有平均像素强度和cbind precentage覆盖率)
固定因子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 yeilds类似的结果)
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 /类似包问题的帮助都将不胜感激。作为次要选项任何关于是否可以接受做泊松/二项式glm()的建议,然后使用t-test / mann-whitneys跟进事后测试
答案 0 :(得分:0)
您会注意到P值完全相同并且显然没有注意到估计的差异和标准误差都是相同的,这似乎很奇怪。大多数人首先看这些。 (如果你没有,我会高度推荐;我们应该谈论效果等,P值只是配件。)
无论如何,解释是您安装了添加模型 - 没有交互的模型。这样的模型规定,无论任何其他因素的水平如何,一个因素的影响都是完全相同的。而这正是你所看到的。
简而言之,这与lsmeans()
无关,而与您所安装的模型有关。