我想知道是否有办法纠正使用lsmeans的多重比较,这将允许我只纠正一定数量的比较?我找到了[R lsmeans adjust multiple comparison,但我认为这不能满足我的需要。
基本上,解释我的数据的最佳模型是一个完整的模型,因此我正在研究三个因素(年,河和性)之间的相互作用(有四条河流和四年不同年份)。我可以执行以下操作(TL是总长度,并且是响应变量)TL_interact = lm(TL~YellowRiverSex,data = Walleye_alldata_nu),然后是lsmeans turtle = lsmeans(负鼠,specs = pairwise~StayetRiverSex,adjust =“FDR) “)
但这可以纠正496个比较。我感兴趣的实际比较数是56.这些可以通过使用略微改变的代码来实现
TL_lsmeans1of2 = lsmeans(TL_interact, specs = pairwise~Year|Sex*River, adjust = "FDR")
然后使用摘要,以便我可以将此数据作为数据帧TL_lsmeans1of2_df = summary(TL_lsmeans1of2 $对比)进行操作
这个输出的样本是
Sex = F, River = Chalifour:
contrast estimate SE df t.ratio p.value
Y2002/03 - Y2015 74.1746032 18.994645 1497 3.905 0.0006
Y2002/03 - Y2016 33.4750958 16.963837 1497 1.973 0.0730
Y2002/03 - Y2017 45.7222222 19.604254 1497 2.332 0.0396
Y2015 - Y2016 -40.6995074 14.468508 1497 -2.813 0.0149
Y2015 - Y2017 -28.4523810 17.489789 1497 -1.627 0.1248
Y2016 - Y2017 12.2471264 15.260011 1497 0.803 0.4224
Sex = M, River = Chalifour:
contrast estimate SE df t.ratio p.value
Y2002/03 - Y2015 49.4788034 6.054656 1497 8.172 <.0001
Y2002/03 - Y2016 36.4539394 5.893992 1497 6.185 <.0001
Y2002/03 - Y2017 55.7266667 6.352504 1497 8.772 <.0001
Y2015 - Y2016 -13.0248640 5.645109 1497 -2.307 0.0254
Y2015 - Y2017 6.2478632 6.122289 1497 1.021 0.3077
Y2016 - Y2017 19.2727273 5.963447 1497 3.232 0.0019
然后,为TL_lsmeans2of2 = lsmeans选择输出的某些行(TL_interact,specs = pairwise~Yar年* Sex | River,adjust =“FDR”)
我不会谈论这个第二个lsmeans输出b / c我的问题的相同解决方案将在那里应用。但是,使用我从第二个lsmeans语句中选择的行以及第一个lsmeans语句的结果,我进行了56次比较。
我尝试使用t.ratio和自由度使用pt命令调整p值,使用TL_lsmeans1of2_df $ p.val.adjusted = pt(TL_lsmeans1of2_df $ t.ratio,TL_lsmeans1of2_df $ df)
但结果只是古怪
Sex = F, River = Chalifour:
contrast estimate SE df t.ratio p.value p.val.adjusted
Y2002/03 - Y2015 74.1746032 18.994645 1497 3.905 0.0006 0.999950797
Y2002/03 - Y2016 33.4750958 16.963837 1497 1.973 0.0730 0.975678658
Y2002/03 - Y2017 45.7222222 19.604254 1497 2.332 0.0396 0.990090497
Y2015 - Y2016 -40.6995074 14.468508 1497 -2.813 0.0149 0.002486354
Y2015 - Y2017 -28.4523810 17.489789 1497 -1.627 0.1248 0.051995069
Y2016 - Y2017 12.2471264 15.260011 1497 0.803 0.4224 0.788822739
任何有关如何使用适当的校正进行56次比较的新p值的想法将不胜感激。并且,如果你认为我对不同的编码对比更好(我看到这篇文章使用0和1 [https://rcompanion.org/rcompanion/h_01.html],我也很乐意接受任何关于如何处理这个问题的建议。
谢谢Ella Bowles
从严格的编程角度来看,您可以计算所有496对比度而不进行校正,然后仅选择您感兴趣的结果对结果进行子集化,最后使用FDR使用基本R中的p.adjust
函数来校正p值。
无论如何,从统计学的角度来看,如果你在ANOVA框架内,你应该考虑事后测试的合法性,只是构成你重要互动的对比的一个子集。