我有一个问题: 给定均值和方差,我想使用正态分布作为概率基础来计算样本的概率。 这些数字是:
mean = -0.546369
var = 0.006443
curr_sample = -0.466102
prob = 1/(np.sqrt(2*np.pi*var))*np.exp( -( ((curr_sample - mean)**2)/(2*var) ) )
我得到一个大于 1 的概率!我得到 prob = 3.014558...
这是什么原因造成的?方差太小的事实搞砸了?这是公式的完全合法输入,应该给出不大于 1 的小值!有什么建议吗?
最佳答案
好的,你计算的不是概率,而是概率密度(可能大于1)。为了获得 1,您必须像这样对正态分布进行积分:
import numpy as np
mean = -0.546369
var = 0.006443
curr_sample = np.linspace(-10,10,10000)
prob = np.sum( 1/(np.sqrt(2*np.pi*var))*np.exp( -( ((curr_sample - mean)**2)/(2*var) ) ) * (curr_sample[1]-curr_sample[0]) )
print prob
女巫结果
0.99999999999961509
关于python - 正态分布概率密度可以大于 1 吗?...基于 python 代码检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32074115/