我如何使用lsmeans在R中为多重比较编程校正,而不进行超出必要范围的校正

我如何使用lsmeans在R中为多重比较编程校正,而不进行超出必要范围的校正,r,statistics,R,Statistics,我想知道是否有一种方法可以使用lsmeans对多重比较进行校正,这样我就可以只对一定数量的比较进行校正?我已经找到了,但我认为这不能满足我的需要 基本上,解释我的数据的最佳模型是一个完整的模型,因此我研究了三个因素(年份、河流和性别)之间的相互作用(有四条河流和四个不同的年份)。我可以做以下工作(TL是总长度,是一个响应变量) TL_interact=lm(TL~YearRiverSex,data=Walleye\u alldata\u nu) 其次是lsmeans turtle=lsmeans

我想知道是否有一种方法可以使用lsmeans对多重比较进行校正,这样我就可以只对一定数量的比较进行校正?我已经找到了,但我认为这不能满足我的需要

基本上,解释我的数据的最佳模型是一个完整的模型,因此我研究了三个因素(年份、河流和性别)之间的相互作用(有四条河流和四个不同的年份)。我可以做以下工作(TL是总长度,是一个响应变量) TL_interact=lm(TL~YearRiverSex,data=Walleye\u alldata\u nu) 其次是lsmeans turtle=lsmeans(possum,specs=pairwise~PeriodRiverSex,adjust=“FDR”)

但这修正了496个比较。我感兴趣的实际比较数量是56。这些可以通过使用稍微修改的代码来实现

    TL_lsmeans1of2 = lsmeans(TL_interact, specs = pairwise~Year|Sex*River, adjust = "FDR")
然后使用summary,以便可以将此数据作为数据帧进行操作 TL_lsmeans1 of 2_df=汇总(TL_lsmeans1 of 2$对比)

此示例的输出示例如下所示

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
任何关于如何通过对56次比较进行适当修正来获得新的p值的想法都将不胜感激。而且,如果您认为我以不同的方式编写对比度更好(我在这篇文章中看到了使用0和1[,我也很乐意接受关于如何实现这一点的任何建议)

谢谢,,
Ella Bowles

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


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

p.adjust函数很容易实现,但我不知道如何使用它,尤其是指定56个比较。这只是一个例子n问题,因为我的输出lsmeans结果(两个单独的表)无法与rbind正确结合,因此我必须指定总共有56个比较,否则更正将基于错误的比较次数。您知道我如何指定比较次数吗?就我个人而言,我不知道如何在
lsmeans
调用中指定可能的成对对比度的特定子集。总之是的,如果您没有找到解决方法,您可以取消参数
adjust='none'
的校正设置,然后您可以轻松地获得
lsmeans
输出的
$contrasts
表,并将其放入这样的数据帧
contrast\u
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