我正在尝试在 python 中集成多元分布。为了测试它,我使用二元正态分布构建了这个玩具示例。我用nquad()
以便稍后将其扩展到两个以上的变量。这是代码:
import numpy as np
from scipy import integrate
from scipy.stats import multivariate_normal
def integrand(x0, x1, mean, cov):
return multivariate_normal.pdf([x0, x1], mean=mean, cov=cov)
mean = np.array([100, 100])
cov = np.array([[20, 0], [0, 20]])
res, err = integrate.nquad(integrand,
[[-np.inf, np.inf], [-np.inf, np.inf]],
args=(mean, cov))
print(res)
我得到的结果是9.559199162933625e-10
。显然,这是不正确的。它应该是(接近)1。
这里有什么问题?