假设检验——均值差
我们想检验这样一个假设:A 与 B 所收到捐赠的平均值存在差异。之前,您已经学会了如何对数据进行一次置换。现在,我们将生成均值差的零假设分布,然后计算 p 值。
对于零假设分布,首先生成多个置换后的数据集,并在每种情况下记录均值之差。接着,使用原始数据集计算检验统计量,即两组均值之差。最后,通过计算在双侧假设下,均值差大于等于检验统计量绝对值的比例的 2 倍,来近似 p 值。若 p 值小于 0.05,则可认为结果具有统计显著性。
本练习是课程的一部分
Python 中的统计模拟
练习说明
- 生成
donations_A与donations_B的多次置换,并将结果赋给perm。 - 将
samples设为permuted_A_datasets与permuted_B_datasets的均值差。我们将axis=1,以便为每个数据集分别计算均值,而不是整体均值。 - 将
test_stat设为donations_A与donations_B的均值之差。 - 计算 p 值
p_val,其为samples中大于等于test_stat绝对值的比例的 2 倍。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]
# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)
# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))