开始使用免费开始使用

假设检验——均值差

我们想检验这样一个假设:A 与 B 所收到捐赠的平均值存在差异。之前,您已经学会了如何对数据进行一次置换。现在,我们将生成均值差的零假设分布,然后计算 p 值。

对于零假设分布,首先生成多个置换后的数据集,并在每种情况下记录均值之差。接着,使用原始数据集计算检验统计量,即两组均值之差。最后,通过计算在双侧假设下,均值差大于等于检验统计量绝对值的比例的 2 倍,来近似 p 值。若 p 值小于 0.05,则可认为结果具有统计显著性。

本练习是课程的一部分

Python 中的统计模拟

查看课程

练习说明

  • 生成 donations_Adonations_B 的多次置换,并将结果赋给 perm
  • samples 设为 permuted_A_datasetspermuted_B_datasets 的均值差。我们将 axis=1,以便为每个数据集分别计算均值,而不是整体均值。
  • test_stat 设为 donations_Adonations_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))
编辑并运行代码