我采集了两个样本,每个样本由来自同一标准正态分布的100K个观测值组成,并检验了它们的均值相同的无效假设。我重复这个实验5K次,并将p值绘制在直方图中
根据我的直觉,这两个样本足够大,并且是从相同的分布(相同的平均值和标准差)中取样的。因此,我希望t检验会产生相对较高的p值(拒绝无效假设)。然而,p值似乎是均匀分布的
以下是我用来创建此绘图的代码(我使用的是numpy 1.19.2和scipy 1.4.1):
from scipy import stats
import numpy as np
ps = []
for i in range(5000):
gaussian_numbers = np.random.normal(0, 1, size=100000)
gaussian_numbers2 = np.random.normal(0, 1, size=100000)
t, p = stats.ttest_ind(gaussian_numbers, gaussian_numbers2, equal_var=True)
ps.append(p)
plt.hist(ps, 100)
正如你所看到的,我得到了在整个值范围[0,1]中p值的大致均匀分布
有人能告诉我我思想上的缺陷吗?你能复制这个吗
你的期望是不正确的。您的输入满足t检验的“零假设”:它们来自具有相同平均值的总体。通常,当执行假设检验(如t检验)且输入满足零假设时,distribution of the p-value在区间[0,1]上是一致的。因此,您的绘图是重复测试的预期结果
从同一分布中随机抽取两个样本,计算t统计量,以检验均值相同的无效假设
因为样本是随机的,所以没有理由将p值分布得更接近1。要理解这一点,请考虑置信区间
置信区间告诉您(1-alpha)*100%的时间,真实参数将位于观察到的区间内。同样,您的p值在0和0.05之间,大约占时间的5%
换言之:
返回:
相关问题 更多 >
编程相关推荐