关于两样本比较的一些问题

机器算法验证 t检验 wilcoxon-mann-whitney 检验
2022-03-22 02:21:14

我正在使用 python 的 scipy.stats 库对我拥有的一些数据集(成对获取)应用一些统计测试,测试它们是否都来自同一个未知分布。

我没有太多的统计学背景,所以请原谅我以下问题。我正在查看文档,我有一些疑问。

  • scipy.stats.mannwhitneyu:它返回一个“假设渐近正态分布的单边 p 值”为什么假设是正态分布这个测试不应该适用于任何基础分布吗?
  • scipy.stats.ttest_ind此测试假设总体具有相同的方差。在我的情况下,我可以计算样本方差,所以一旦我这样做了,我应该只在它不相差某个阈值(哪一个?)时才应用测试?有趣的是,这只是统计测试,仅拒绝了我的一些假设,而其他大多数假设拒绝了其中的 80%。
  • 事实上,我想测试一个数据集的分布是否明显大于所有其他数据集的分布。我应该在这里使用单面测试还是双面测试?这听起来可能很愚蠢,但在单边测试的情况下,我如何测试一个分布明显大于而不是明显更小的分布?我在 scipy 文档中找不到任何关于此的内容。交换参数会产生相同的结果。
1个回答

我将以相同的顺序用我自己的子弹回答你的子弹:

  • 我认为这句话是指测试统计量的大样本(渐近)分布,而不是数据。正如您在此处看到的,当样本量很大时,Mann-Whitney U 检验统计量具有近似正态分布。

  • 为了假设方差相等,您可以考虑对方差是否相等进行某种诊断检查。除非假设检验拒绝该假设,否则通常在等方差假设下进行操作 - Levene 检验,它测试方差相等的零假设 - 通常用于此并且具有良好的特性,即它对数据的非正态性具有鲁棒性。当方差真正相等时,您将通过不假设相等的方差而牺牲统计能力,因此最好尽可能这样做。但是,您应该注意,如果您的样本量较小,您可能无法检测方差的不均匀性,因此如果样本方差彼此非常不同,您应该考虑不假设方差相等,即使您未能拒绝在 Levene 的测试中为 null。

  • 如果“我想测试一个数据集的分布是否明显更大”是指一个平均值大于另一个平均值,那么这将是一个片面的测试。如果您正在测试表单的替代假设μ1>μ2,然后您将查看观察到的检验统计量右侧而不是左侧的区域,这就是它与“小于”单面检验的区别所在。当然,如果您互换两个样本的角色并将假设切换为“小于”假设,您将得到相同的结果,因为一切都不太颠倒。如果你在做一个双面测试,交换两个样本的角色应该会给你完全相同的结果p-价值。