在 scipy.stats.norm 的情况下,概率密度函数是什么?

What is probability density function in the context of scipy.stats.norm?

这是一个非常基本的问题,但我似乎找不到好的答案。 scipy 为

计算的究竟是什么
scipy.stats.norm(50,10).pdf(45)

我知道在均值为 50 且标准差为 10 的高斯分布中,特定值(如 45)的概率为 0。那么 pdf 到底在计算什么?是不是高斯曲线下的面积,如果是,x轴上的取值范围是多少?

您得到的是普通 pdf 函数的值为 x 的 pdf 均值为 50,标准差为 10。 check the function here)

使用

易于可视化
npdf=norm(50,10)
plt.plot(range(0,100), npdf.pdf(range(0,100)), 'k-', lw=2)`

您还可以从使用

创建的普通 pdf 生成随机变量
npdf.rvs(1000) #1000 numbers 
hist=plt.hist(n.rvs(10000),bins=100,normed=True)

theoretical pdf and normalized histogram from random variables

Python表示的probability density function of the normal distribution

from math import pi
from math import exp
from scipy import stats


def normal_pdf(x, mu, sigma):
    return 1.0 / (sigma * (2.0 * pi)**(1/2)) * exp(-1.0 * (x - mu)**2 / (2.0 * (sigma**2)))

(将其与维基百科定义进行比较)。这正是 scipy.stats.norm().pdf() 计算的内容:给定 mu, sigma.

x 处的 pdf 的

请注意,这是不是概率(pdf下的=面积)而是值[= pdf 的 x 点传递给 pdf(x) 的 50=](该值很可能大于 1.0!)。例如,您可以看到 N(0, 0.1)x = 0:

val = stats.norm(0, 0.1).pdf(0)

print(val)

val = normal_pdf(0, 0, 0.1)

print(val)

给出输出

3.98942280401

3.989422804014327

完全不是概率 = 曲线下面积!

请注意,这与 x = 0 等特定值的概率是 0 的说法并不矛盾,因为正式地说,pdf 下的面积对于一个点(即,间隔length 0) 为零(如果 f 是 [a, b] 上的连续函数并且 F 是其在 [a 上的反导数, b], 那么 f 在 [a, b] = F(a) - F(b) 上的定积分. 这里, a = b = x 因此积分的值为 F(x) - F(x) = 0).