我从高中毕业后的统计数字已经消失了
我正在努力寻找一种方法来确定java中Normal分布中给定点的概率。
我看到Colt cern.jet.stat
提供了Probability
一些方法
normal(double a)
normal(double mean, double variance, double x)
normalInverse(double y0)
和Apache org.apache.commons.math3.distribution
提供了一个NormalDistribution
类,其中包含一些方法:
cumulativeProbability(double x)
cumulativeProbability(double x0, double x1)
density(double x)
inverseCumulativeProbability(double p)
probability(double x0, double x1)
probability(double x)
哪一个用于我的目的?
编辑编辑编辑
从数据集中排除异常值要应用Chauvenet标准,首先要计算观察数据的平均值和标准差。根据可疑数据与平均值的差异,使用正态分布函数(或其表)来确定给定数据点将处于可疑数据点的值的概率。将此概率乘以所采用的数据点数。如果结果小于0.5,则可以丢弃可疑数据点,即如果获得与平均值的特定偏差的概率小于1 /(2n),则可以拒绝读数
答案 0 :(得分:1)
正常分布中任何点的概率 0 。
出于这个原因,肯定有没有 NormalDistribution.probability(double x)
方法,你错了。
至于与您的问题有关的其他方法:
cumulativeProbability(double x)
是值小于x
的概率。
probability(double x0, double x1)
返回值介于x0
和x1
之间的概率。它相当于cumulativeProbability(x1) - cumulativeProbability(x0)
;
cumulativeProbability(double,double)
已被弃用,实际上与probability(double,double)
相同(但命名非常糟糕)。
答案 1 :(得分:1)
首先,问题无法回答,因为在正态分布等连续分布中,特定点的概率始终为零。您需要根据间隔问自己究竟想知道的是什么。
例如,cern.jet.stat.Probability.normal(double)
将回答“价值低于我的价值的概率是多少?” (在这种情况下,小于或等于相等。)
org.apache.commons.math3.distribution.NormalDistribution.cumulativeProbability(double)
也会提供相同的信息。
如果p
如果值的概率小于您的值,则值高于您的值的概率为1 - p
。
回答编辑
在你的编辑中,相关的句子部分就是这个
根据可疑数据与平均值(...)
的差异程度
您正在寻找可疑点(至少)远离平均值的可能性。
让x
成为您的怀疑点。首先,将其标准化以便能够使用标准化的正态分布,如此
xn = (x - mean) / standard deviation
您正在寻找的概率是
2 * CPD( -abs(xn) )
使用org.apache.commons.math3.distribution.NormalDistribution.cumulativeProbability(double)
或cern.jet.stat.Probability.normal(double)
找到CPD(累积概率分布)。
该表达式给出了归一化值低于-abs(xn)
或超过abs(xn)
的概率,这与说出至少远离均值的概率完全相同。 CPD( -abs(xn) )
给出了-abs(xn)
(根据定义)的概率,我们可以乘以2来增加超过abs(xn)
的概率,因为正态分布相对于均值是对称的。 / p>
答案 2 :(得分:0)
NormalDistribution.density
似乎是最合适的。但如果你能说出你想要解决的问题,那就不会受到伤害。