正态分布概率密度可以大于 1 吗?...基于 python 代码检查

Can normal distribution prob density be greater than 1?... based on python code checkup

我有一个问题: 给定均值和方差,我想使用正态分布作为概率基础来计算样本的概率。 数字是:

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的概率!我得到概率 = 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

你给出的公式是概率密度,而不是概率。密度公式是这样的,当你在 x 的两个值之间 积分 时,你得到处于该区间内的概率。然而,这意味着获得任何特定样本的概率实际上是 0(它是密度乘以无限小 dx)。

那么你到底想计算什么?你可能想要得到你的值或更大的概率,即所谓的尾部概率,这在统计中经常使用(碰巧这是由 error function 当您谈论正态分布时,尽管您需要注意它的确切定义方式)。

当考虑给定均值和方差的钟形概率分布函数 (PDF) 时,曲线的峰值(众数的高度)为 1/sqrt(2*pi*var)。对于标准正态分布(均值 0 和变量 1),它为 1。因此,当尝试计算一般正态分布 pdf 的特定值时,大于 1 的值是可能的。