我用两种方法计算正态分布cdf的值:
from scipy.stats import multivariate_normal
from scipy.special import erf, erfc
sigma = 0.793387
one = multivariate_normal(1.0, sigma)
one.cdf(0.0)产出: 0.13078590311690458
1.0 /2 * (1.0 + erf(-1.0 / np.sqrt(2) / sigma))产出: 0.10375913672098108
他们有很大的不同。
我用的是这个公式:

你能告诉我,请告诉我,哪里可能是错误的?
UPD:当我使用来自norm的scipy.stats时,它显示了手工计算的答案:
norm.cdf(0.0, 1.0, sigma)产出: 0.10375913672098103
发布于 2021-03-16 10:17:17
multivariate_normal的of以协变矩阵作为参数,其中色散(而不是偏差)应该在对角线上。因此,有一种正确的方式来使用cdf:
one = multivariate_normal(1.0, sigma * sigma)https://stackoverflow.com/questions/66652215
复制相似问题