scipy.stats.binomtest随机测试中p值比例不符合预期的问题排查
二项检验p值结果偏离预期的疑问
我在验证scipy.stats.binomtest的正确性时设计了如下实验:
- 每个实验包含20次独立赌注,单次赌注成功概率为0.1
- 重复运行20000次该实验
- 统计其中p值<0.02的实验占比
按统计理论,原假设成立时,p值小于阈值α的实验占比应该接近α(此处α=0.02),但实际运行结果显示该占比接近0.011,和预期不符。请问这是scipy库的问题,还是我遗漏了某些统计细节?
测试代码
import random from datetime import datetime from tqdm import tqdm from scipy.stats import binomtest def single_experiment(p, n): return [random.random() < p for i in range(n)] def run(experiments, bet_success_rate): random.seed(datetime.now()) num_bets_in_exp = 20 pval_threshold = 0.02 noisy_exp = 0 for _ in tqdm(range(experiments)): exp = single_experiment(bet_success_rate, num_bets_in_exp) res = binomtest(sum(exp), num_bets_in_exp, p=bet_success_rate, alternative="greater") pval = res.pvalue if pval < pval_threshold: noisy_exp += 1 print(noisy_exp / experiments)
实验结果截图

内容的提问来源于stack exchange,提问作者Ran Moshe
相关产品推荐
相关产品推荐

