使用Scipy比较均值:配对t检验差异方向的判断方法
配对t检验结果差异方向判断方法
一、现有结果直接判断
scipy的ttest_rel(a, b)默认以「a组数值 - b组数值」的差值为基础做检验,t统计量的符号和差值均值的符号完全一致。你得到的t统计量为正,直接说明:
患者组(df_positives)的平均舒张压显著高于对照组(df_controls),p<0.05,差异具有统计学意义。
二、更直观的验证方法
方法1:同步输出两组均值
直接计算两组非空值的均值和检验结果同时展示,一目了然:
from scipy.stats import ttest_rel # 提取待检验列并去除空值 pos_col = df_positives['Average_BP_Diast_Autom'].dropna() con_col = df_controls['Average_BP_Diast_Autom'].dropna() # 计算均值与检验结果 pos_mean = pos_col.mean() con_mean = con_col.mean() t_stat, p_val = ttest_rel(pos_col, con_col) # 输出结果 print(f"患者组平均舒张压:{pos_mean:.2f} mmHg") print(f"对照组平均舒张压:{con_mean:.2f} mmHg") print(f"配对t检验t值:{t_stat:.2f},p值:{p_val:.4f}")
方法2:单侧检验直接验证方向
如果提前有明确的方向假设(如假设患者组舒张压更高),可以直接做单侧检验,直接输出对应方向的显著性:
# 检验患者组是否显著高于对照组 t_stat, p_two_side = ttest_rel(pos_col, con_col) # 单侧检验p值计算:t为正说明a组更高,单侧p为双侧p的1/2 p_one_side = p_two_side / 2 if t_stat > 0 else 1 - (p_two_side / 2) print(f"患者组舒张压高于对照组的单侧检验p值:{p_one_side:.4f}")
内容的提问来源于stack exchange,提问作者AK_KA
相关产品推荐
相关产品推荐

