我使用lme4包中的 lmer 来运行线性混合效果模型。我有3年的未处理(5)和处理地块(10)的温度数据。模特:
modela<-lmer(ave~yr*tr+(1|pl), REML=FALSE, data=mydata)
模型检查残差的正态性; qqnorm情节 我的数据:
'data.frame': 6966 obs. of 7 variables:
$ yr : Factor w/ 3 levels "yr1","yr2","yr3": 1 1 1 1 1 1 1 1 1 1 ...
$ pl : Factor w/ 15 levels "C02","C03","C05",..: 1 1 1 1 1 1 1 1 1 1 ...
$ tr : Factor w/ 2 levels "Cont","OTC": 1 1 1 1 1 1 1 1 1 1 ...
$ ave: num 14.8 16.1 11.6 10.3 11.6 ...
交互很重要,所以我使用了lsmeans:
lsmeans(modela, pairwise~yr*tr, adjust="tukey")
在对比中,我得到(仅摘录)
contrast estimate SE df t.ratio p.value
yr1,Cont - yr2,Cont -0.727102895 0.2731808 6947.24 -2.662 0.0832
yr1,OTC - yr2,OTC -0.990574030 0.2015650 6449.10 -4.914 <.0001
yr1,Cont - yr1,OTC -0.005312771 0.3889335 31.89 -0.014 1.0000
yr2,Cont - yr2,OTC -0.268783907 0.3929332 32.97 -0.684 0.9825
我的问题是关于某些对比的高dfs,以及相关但无意义的低p值。
这可能是由于:
- 我的数据集中存在NA(删除时有一些改进)
- 样本量相等(例如,一次治疗中的5次,另一种中的10次 - 但是,那些(yr1,Cont - yr1,OTC)似乎不是问题。
其他问题?
我搜索了stakoverflow问题,并进行了交叉验证。
感谢您的任何答案,想法,评论。
答案 0 :(得分:0)
在此示例中,治疗通过实验分配给图。将少量的图分配给治疗严重限制了可用于统计比较治疗的信息。 (如果每次治疗只有一个阴谋,甚至不可能比较治疗方法,因为你不能从治疗效果中理清治疗效果。)你有10个地块分配一次治疗,另一次治疗5次。就治疗的主要效果而言,你有(10-1)+(5-1)= 13 d.f.对于治疗的主要影响,如果你这样做
lsmeans(modela, pairwise ~ tr)
你会在晚上13点左右看到。 (这些统计数据可能会因为不平衡和缺失而减少)。当你比较年龄和治疗的组合时,你得到的d.f.大约是3倍。因为有3年。然而,在一些比较中,每一个组合的年份相同,并且在那些比较中,情节的变化大多抵消(这是一个情节内比较);在那些情况下,d.f。基本上来自模型的残差,有数千d.f.由于数据的不平衡,这些比较受到情节间变化的一点点污染,使得d.f.略小于剩余的d.f。
对于诸如treat1,year1与treat2,year3之类的交叉比较,您似乎并不特别感兴趣。我建议使用&#34; by&#34;减少测试比较次数的变量,因为当你全部测试时,多重性校正是不必要的保守。它会是这样的:
modela.lsm = lsmeans(modela, ~ tr * yr)
pairs(modela.lsm, by = "yr") # compare tr for each yr
pairs(modela.lsm, by = "tr") # compare yr for each tr
这些电话会将Tukey校正单独应用于每个&#34; by&#34;组。如果您想为每个家庭进行多重校正,请执行以下操作:
rbind(pairs(modela.lsm, by = "yr"))
rbind(pairs(modela.lsm, by = "tr"))
默认情况下,使用多变量t校正(此处Tukey不是正确的方法)。你甚至可以做
rbind(pairs(modela.lsm, by = "yr"), pairs(modela.lsm, by = "tr"))
将所有比较分组到一个系列中并应用多变量t调整。