经过大量搜索后,我认为Noah H. Silbert的这篇博客文章描述了标准库中唯一可用于在Python中为多元正态计算cdf的现成代码。Scipy可以做到这一点,但是正如博客中提到的那样,很难找到。该方法基于Alan Genz的论文。
在博客中,这就是它的工作方式。
from scipy.stats import mvn
import numpy as np
low = np.array([-10, -10])
upp = np.array([.1, -.2])
mu = np.array([-.3, .17])
S = np.array([[1.2,.35],[.35,2.1]])
p,i = mvn.mvnun(low,upp,mu,S)
print p
0.2881578675080012