当使用“Tukey”作为调整方法时,emmeans 如何调整 p 值? (已解决)

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

我想计算成对比较的关键差异。 (答案如下!)为此,我需要了解如何调整 p 值,因为我希望激活 tukey 方法。 我能够重建 T 统计计算和未调整的 p 值。但同时使用人工智能和互联网,我无法想出一个调整后的 p 值的公式,该公式给了我与 emmeans 相同的结果。 (答案如下)

这是我想了解的示例案例:

              Estimate  2.5_ci  97.5_ci     SE       DF  ci_upper  ci_lower
algorithm                                                                  
PriorBand+BO     2.556   2.504    2.608  0.027  12000.0     2.504     2.608
BOHB             2.625   2.573    2.677  0.027  12000.0     2.573     2.677
RS+Prior         3.223   3.171    3.275  0.027  12000.0     3.171     3.275
PiBO             3.223   3.171    3.275  0.027  12000.0     3.171     3.275
BO               3.373   3.321    3.425  0.027  12000.0     3.321     3.425

       algorithm_1     algorithm_2  Estimate  2.5_ci  97.5_ci     SE       DF  T-stat  P-val  Sig
7   (PriorBand+BO)            BOHB    -0.069  -0.172    0.033  0.038  12000.0  -1.843  0.349     

所以 0.349 是我的“目标”。

t_stat 为 -1.8157894736842106,未调整的 p 值为 0.06942762000543438

AI 提出了这个公式,它根据学生化范围计算 q 值,并据此计算校正因子:

q=studentized_range.ppf(1 - 0.05, k=k,df=df)
factor=q/np.sqrt(k)
adjusted_p=p*factor

但是结果不符合我的目标:

q=3.8582424830229995
factor=1.725458493143401
adjusted_p=0.11979447659710946
r statistics p-value emmeans tukey
1个回答
0
投票

正如@Matt Haberland 提到的,这里也提出了类似的问题。 因此,要计算我的示例的 p 值,您可以使用

1 - ptukey(t_stat * sqrt(2), k, df)
(R 中)或

1 - scipy.stats.studentized_range.cdf(t_stat*np.sqrt(2), k=k, df=df)
(Python)

其中

t_stat=abs(mean_difference/SE)
,k=5是组数,df=12000。 并计算(该特定对的)临界差异 HSD:

HSD=scipy.stats.studentized_range.ppf(1-0.05, k=k,df=df)/np.sqrt(2)*SE

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