Java:如何以编程方式确定数据集不遵循正态分布?

时间:2010-03-03 17:53:14

标签: java algorithm distribution

在Java程序中,如何确定我所拥有的数据集是否遵循正态分布?

有可能吗?

我可以使用API​​或算法来确定这个吗?

4 个答案:

答案 0 :(得分:5)

此处有两个问题:如何确定distribution is normal以及如何do so in Java。正如第一个链接将向您展示的那样,您正在寻找从正式到非正式的正常数据的不同程度。第二个链接显示没有用于统计分析的标准Java包,但有许多其他方法可以实现它们。

答案 1 :(得分:4)

这是一个有点困难的统计问题,如果你不是统计专家,那看起来似乎很简单。您的目标显然是确定数据是否可能来自任何正态分布,而不是具有预先指定的均值和方差的数据。可能最好的方法是使用D'Agostino test,它基于测量分布的skewnesskurtosis,并将这些与正常情况下的预期进行比较。

就Java实现而言,我没有意识到,尽管我不经常使用Java。如果有的话,我会感到有些惊讶,因为它是一个相对模糊的统计函数,而Java并不是用于统计的最常用语言。但是,my D language implementation(在此文件中搜索dAgostinoK())可能很容易被翻译成Java,如果你已经有计算偏度,峰度和卡方分布的CDF的函数。

答案 2 :(得分:3)

我不确定是否有可用的API,但您可以使用的是卡方检验http://en.wikipedia.org/wiki/Pearson%27s_chi-square_test。假设您的数据集足够大,您可以测试适合正态分布。

答案 3 :(得分:0)

最简单的方法是“如果我有n个> 30个数据点,那么它通过中心极限定理近似于正态分布。” ;)

正如其他人所提到的,确定数据点是否来自正态分布要困难得多。