Python和科学计算认证群组  - 讨论区

标题:请问python中如何计算noncentral chi-square分布的右尾概率?

2014年07月27日 星期日 10:01

在scipy里找到了scipy.special.chdtrc,它可以计算Chi-square分布的右尾概率,但是scipy里好像没有noncentral(非中心) chi-square的右尾概率计算函数。

我在Matlab里找到了函数ncx2pdf,应该可以计算,但是我非常想知道python里怎么弄。

请问python中有计算noncentral chi-square分布的右尾概率的函数吗?

 

2014年07月27日 星期日 12:00

我找到了这个函数:scipy.stats import ncx2 应该可以解决noncentral chi-square分布的右尾概率的计算了^ ^。

但是我又遇到了更为复杂的问题,表述如下:

 

上面的右尾概率实际上是

其中

科学计算软件一般会提供诸如Q(x)这样的特殊函数的计算,但是当我遇到下面稍微变形的M(x)N(x)时,就又不会求了,

有没有数学高手或者对积分的数值计算比较熟悉的大侠帮我看看该怎么求M(x)N(x)?

不甚感激!!!

2014年07月27日 星期日 15:50

用quad计算得不到比较精确的结果吗?

2014年07月27日 星期日 20:01

感谢楼上!!!

我用Matlab的quad函数没有成功,据说不能包括无穷这样的积分区域,后来换了quadgk还是不行。

现在用了scipy里的quad函数,它可以处理正无穷这样的积分区域,而且通过与 ncx2 中计算Q(x)的函数相比较,数值精度上应该能满足要求。M(x)和N(x)我还没有试,不过应该也可以了。

在这吐槽一下scipy的帮助文档,里面的非中心化卡方分布的概率密度函数有误(只是帮助文档有误,计算结果还是正确的)。另外1楼的概率密度我也写错了,更正如下:

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号