正态性检验和直方图之间的不一致

机器算法验证 正态假设 直方图 kolmogorov-smirnov 测试 小样本 克鲁斯卡尔-沃利斯测试
2022-03-25 18:01:04

我的数据包含来自 3 种不同细胞类型(X、Y 和 Z)的压实度测量值。我的目标是了解这些测量值之间是否存在“显着”差异,因此我测试了:

  1. 我的样本是否正态分布

    • 使用夏皮罗-威尔克检验
    • 使用 Jarque-Bera 检验
    • 绘制 qqnorm 图
    • 绘制直方图
  2. 样本是否来自同一个分布

    • 使用两样本 Kolmogorov-Smirnov 检验(K-S 检验)并比较 X 与 Y、X 与 Z 和 Y 与 Z
    • 使用 Kruskal-Wallis 比较 X、Y 和 Z

我的数据由 X 的 232 个测量值、Y 的 284 个测量值和 Z 的 124 个测量值组成。R 中的 Shapiro-Wilk 和 Jarque-Bera 测试总是给我 p<0.05,我接受它不是正态分布的。然而,当我绘制直方图时,我得到了一个类似正态的分布。

http://i49.tinypic.com/x5a91.jpg

qqnorm 图看起来也没有那么倾斜,但也许这只是我在解释 qqnorm 图方面的经验不足(这是我第一次制作它们)。

http://i49.tinypic.com/2nqqohl.jpg

http://i47.tinypic.com/207c4.png

http://i48.tinypic.com/o01ptv.png

由于所谓的非正态分布,我使用 KS 检验和 Kruskal-Wallis 比较了我的数据,这总是给我的结果是,与 X 和 Y 相比,我的总体 Z 来自不同的分布。但是,我不知道是否这是真的,因为 R 总是报告我的两个样本 Kolmogorov-Smirnov 测试:

Warning message:
In ks.test(dataX, dataY) : cannot compute correct p-values with ties

Warning message:
In ks.test(dataX, dataZ) : cannot compute correct p-values with ties

Warning message:
In ks.test(dataY, dataZ) : cannot compute correct p-values with ties

可能是因为样本的大小不同。

我想知道您对此有何看法,以及我是否应该考虑使用更多的参数测试而不是我使用过的非参数测试,或者无论数据的正态性如何,我使用的测试是否有效. 此外,我的测量结果似乎彼此之间几乎没有什么不同,例如:

---Summary stats for WT cells
Min.    1st Qu. Median  Mean    3rd Qu. Max. 
0.1450  0.3720  0.5000  0.5598  0.7102  1.9290 

---Summary stats for Df cells
Min.    1st Qu. Median  Mean    3rd Qu. Max.
0.0550  0.4030  0.5445  0.5857  0.7210  1.5350 

---Summary stats for Dp cells
Min.    1st Qu. Median  Mean    3rd Qu. Max.
0.0670  0.4790  0.6255  0.6782  0.7897  2.0160

这是数据的箱线图:

http://i49.tinypic.com/6qvgio.png

绿色=X,蓝色=Y,红色=Z

所以我不确定我可能从中得出的结论。

1个回答

看来您的数据只能取正值。在这种情况下,正态性假设经常被拒绝。正态分布的随机变量范围从正无穷到负无穷,因此只有正值会违反这一点。您可以尝试记录观察结果并查看它们是否呈正态分布。

如果您的数据服从正态分布,则 QQ 图中的点应位于通过原点的 45 度线上。你的情节根本不像那样。

KS 测试给出了错误,因为被测试的分布被假定为连续的。在这种情况下,见证两个具有完全相同值的观测值的概率为 0。您的数据集包含关联,从而使该假设无效。当存在平局时,使用渐近近似(您可以在帮助文件中阅读相关内容)。您收到的错误与不同大小的数据集无关。

在您的帖子中,您从未指定您要回答的问题——无论如何,要足够精确。你真的想测试分布是否相同吗?测试手段是否相同就足够了吗?

除非您愿意假设变量遵循某种分布,否则如果您想测试分布是否相同,则没有太多替代 KS 测试的方法。但是有几种方法可以测试均值的差异。