我想计算成对比较的关键差异。 (答案如下!)为此,我需要了解如何调整 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
正如@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