1

我需要在我正在编程的 Python 应用程序中使用概率和累积密度函数。SciPy 两者都提供,但对于这两个函数来说似乎过于依赖了。没有 SciPy,PDF 似乎很容易实现。(来自文档:)

范数的概率密度函数是:

norm.pdf(x) = exp(-x**2/2)/sqrt(2*pi)

有没有办法在使用 SciPy 的情况下获得 CDF?

4

2 回答 2

4

看到这个帖子

from math import *
def erfcc(x):
    """Complementary error function."""
    z = abs(x)
    t = 1. / (1. + 0.5*z)
    r = t * exp(-z*z-1.26551223+t*(1.00002368+t*(.37409196+
        t*(.09678418+t*(-.18628806+t*(.27886807+
        t*(-1.13520398+t*(1.48851587+t*(-.82215223+
        t*.17087277)))))))))
    if (x >= 0.):
        return r
    else:
        return 2. - r

def ncdf(x):
    return 1. - 0.5*erfcc(x/(2**0.5))
于 2012-04-24T17:15:27.043 回答
3

您正在寻找“错误函数”,请参阅数学模块就初等函数而言,它没有封闭形式的表示。

请注意,这math.erf(x)是在 python 2.7 中引入的。如果您使用的是较早的版本,则必须使用近似.

于 2012-04-24T17:11:00.340 回答