如何使用R中的lsmeans对多重比较进行校正,同时不进行必要的校正

问题描述 投票:0回答:1

我想知道是否有办法纠正使用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

r statistics
1个回答
0
投票

从严格的编程角度来看,您可以计算所有496对比度而不进行校正,然后仅选择您感兴趣的结果对结果进行子集化,最后使用FDR使用基本R中的p.adjust函数来校正p值。

无论如何,从统计学的角度来看,如果你在ANOVA框架内,你应该考虑事后测试的合法性,只是构成你重要互动的对比的一个子集。

© www.soinside.com 2019 - 2024. All rights reserved.