使用statsmodels的ttost_paired进行配对样本等效性测试为何不显著?
配对样本等效性测试代码排查建议
核心参数与逻辑检查
等效区间的数值转换
你设定的是均值差异±10%,但ttost_paired的low和high参数需要传入绝对差值范围,而非百分比。比如若group1的均值为100,等效区间应设为low=-10、high=10,而非直接传入-0.1和0.1——如果误传百分比,等效区间会被压缩到极小范围,哪怕样本差异小也可能落在区间外,导致p值偏高。输入数据验证
确认传入的group1和group2是长度完全一致的一维配对数组,无缺失值或异常值。配对样本的对应关系不能错乱,否则差值计算会完全失真。检验假设匹配
ttost_paired的原假设确实是「均值差异在等效区间外」,备择假设为「均值差异在等效区间内」,和你的需求一致,这部分逻辑无问题。
代码对照示例
假设你的代码结构如下,可逐一核对:
import numpy as np import statsmodels.stats.weightstats as ws # 模拟配对样本(差异极小) group1 = np.random.normal(100, 5, 100) group2 = group1 + np.random.normal(0, 0.5, 100) # 基于group1均值计算±10%的绝对等效区间 mean_g1 = np.mean(group1) low = -0.1 * mean_g1 high = 0.1 * mean_g1 # 执行测试 t1, p1, t2, p2, combined_p = ws.ttost_paired(group1, group2, low, high) print(f"组合p值: {combined_p}")
额外排查方向
- 样本量不足:若样本量太小,即使真实差异在等效区间内,检验功效也会不足,无法得到显著p值。可通过功效分析验证所需样本量。
- 差值分布偏离正态:配对t检验依赖差值近似正态分布,若差值分布严重偏态,可能影响结果准确性,可先绘制差值的直方图或Q-Q图验证。
内容的提问来源于stack exchange,提问作者Philipp
相关产品推荐
相关产品推荐

