max*_*mir 7 scipy probability-density
这是一个非常基本的问题,但我似乎无法找到一个好的答案.scipy究竟为什么计算
scipy.stats.norm(50,10).pdf(45)
Run Code Online (Sandbox Code Playgroud)
据我所知,高斯平均50和标准差10的特定值(如45)的概率为0.那么究竟什么是pdf计算?它是高斯曲线下的面积,如果是这样,x轴上的值范围是多少?
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)))
Run Code Online (Sandbox Code Playgroud)
(将其与维基百科定义进行比较).这正是scipy.stats.norm().pdf()计算:给定点的pdf 值.xmu, sigma
请注意,这不是(=概率区域的PDF格式下),而是价值在该点的概率密度函数x传递给pdf(x)(和值可以很好地大于1.0!).你可以看到,例如,N(0, 0.1)at x = 0:
val = stats.norm(0, 0.1).pdf(0)
print(val)
val = normal_pdf(0, 0, 0.1)
print(val)
Run Code Online (Sandbox Code Playgroud)
它给出了输出
3.98942280401
3.989422804014327
根本不是曲线下的概率=面积!
请注意,这并不矛盾声明该特定值的概率喜欢x = 0是0因为在形式上的PDF为一个点下的面积(即,长度的间隔0)是零(如果˚F是在[a的连续函数, b]和F是[a,b]上的反衍生物,然后是[a,b] = F(a) - F(b)的f的定积分.这里,积分的值是).a = b = xF(x) - F(x) = 0