Java apache.commons.math分布,获取概率大于1

Java apache.commons.math分布,获取概率大于1,java,apache,math,Java,Apache,Math,我使用ApacheCommons数学库进行混合分布。有时密度函数会返回比1大很多的值。是什么? 我的混合系数和为1,每个正态分布的协方差矩阵都很好,因为当我创建对象时,mixturemultivariantenormaldistribution构造函数不会抛出任何异常,平均值也很好。尺寸是39。在混合物中有3个正态分布。是虫子还是什么?有人遇到过这个问题吗 谢谢返回在指定点x处计算的该分布的概率密度函数PDF。通常,PDF是累积分布函数的导数。如果x处不存在导数,则应返回适当的替换项,例如Dou

我使用ApacheCommons数学库进行混合分布。有时密度函数会返回比1大很多的值。是什么? 我的混合系数和为1,每个正态分布的协方差矩阵都很好,因为当我创建对象时,mixturemultivariantenormaldistribution构造函数不会抛出任何异常,平均值也很好。尺寸是39。在混合物中有3个正态分布。是虫子还是什么?有人遇到过这个问题吗


谢谢

返回在指定点x处计算的该分布的概率密度函数PDF。通常,PDF是累积分布函数的导数。如果x处不存在导数,则应返回适当的替换项,例如Double.POSITIVE_∞、Double.NaN或差商的下限或上限


这有用吗?我想你得到了差商的上限。不幸的是,我不知道这意味着什么。

累积分布函数实际上介于0和1之间。另一方面,密度函数只需大于或等于零;特别是,只要其积分cdf等于1,则允许其大于1

例如,考虑以原点为中心的单个高斯凸点。其密度函数为exp-1/2*x^2/sigma^2/sigma/sqrt2*pi。其最大值在原点为1/sigma/sqrt2*pi,因此对于sigma<1/sqrt2*pi约为0.399时,峰值大于1


如果您使用的是方差足够小的混合成分,那么在其均值的邻域中,密度可以大于1。

是的,我在javadocs中读过该摘录。显然,就是这样。我想知道是否有人知道这个问题的答案。高斯混合的密度函数无处不在,所以关于极限的事情就不起作用了。这大概是一个基类的文档,或者说它是不必要的泛化。事实上,它来自基类,混合多变量分布,而且确实,正态分布曲线应该限制在0。但是,如果PDF是一个变量碰巧是一个值的概率,它怎么可能大于1呢?IntegrationPdfx,x,S是x在集合S中的概率。该积分必须小于或等于1。但是pdfx只需要是非负的。只要所有S的积分小于或等于1,允许pdfx的值大于1。一个近似的解释是,pdfx的峰值可以大于1,只要它们不是太宽。好的,那么积分必须加起来,实际上,你是对的。谢谢但我不认为我的sigma远低于0.399。我得到像12.356E10这样的数字,所以在我看来sigma应该非常小……我想知道这可能是因为协方差矩阵?在多元高斯的情况下,是否可能在exp项中得到非常大的负值,从而导致总数非常大?@Artemik峰值仅是协方差的函数,特别是协方差行列式的函数。每个混合成分的协方差的行列式是什么?行列式和相应的混合系数:1.444262001106584E-79-0.95,1.732013988856631E-89-0.02,2.671955762035887E24-0.03。好的,你有两个退化的零体积成分,还有一个非常宽。我的猜测是,参数拟合过程偏离了轨道。我的建议是尝试为参数指定比随机值更合理的初始值;e、 例如,让每个分量的平均值类似于数据的总体平均值加上打破对称性的随机偏移量,让每个分量的方差为总体方差。另外,试着在二维中工作,直到你掌握了拟合过程。我不太明白你说的退化是什么意思,但不管怎样,拟合的问题是什么-我使用PCA分区。我将我的数据分成N个簇,其中N=3,使用PCA算法进行三种混合。大致来说,它的工作原理如下:沿最大特征向量将初始簇分成2个,并找到两者的经验平均值。选择一个汇总偏离其平均值较大的项目,然后递归地继续该过程。在我有N=3个簇之后,我使用这些簇的平均值作为初始值来运行k-means。顺便说一句:在这一步中,k-means实际上并没有改变很多已经实现的方法。