我有一个问题: 给定均值和方差,我想计算使用正态分布作为概率基础的样本的概率。 数字是:
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的小东西!有什么建议吗?
答案 0 :(得分:3)
好的,你计算的不是概率,而是概率密度(可能大于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
答案 1 :(得分:1)
您提供的公式是概率密度,而不是概率。密度公式是这样的,当你在<{1}}的两个值之间集成时,你得到了在该区间内的概率。然而,这意味着获得任何特定样本的概率实际上是0(它的密度乘以无穷小x
)。
那么你究竟想要计算什么?您可能想要获得您的值或更大的概率,即所谓的尾概率,这通常用于统计中(当error function发生时,这是由{{3}}给出的。你正在谈论正态分布,尽管你需要注意它的确切定义。
答案 2 :(得分:0)
当考虑给定均值和方差的钟形概率分布函数(PDF)时,曲线的峰值(模式的高度)是1 / sqrt(2 * pi * var)。标准正态分布为1(平均值为0和变量1)。因此,当试图计算一般正态分布pdf的特定值时,大于1的值是可能的。