我正在寻找一个函数来计算多变量正态分布的CDF。我发现scipy.stats.multivariate_normal
只有一种方法来计算PDF (对于示例x
),而没有CDF multivariate_normal.pdf(x, mean=mean, cov=cov)
。
我正在寻找相同的东西,但是要计算cdf,类似于:multivariate_normal.cdf(x, mean=mean, cov=cov)
,但不幸的是multivariate_normal
没有cdf方法。
我发现的唯一一件事是:Multivariate Normal CDF in Python using scipy,但是所给出的方法scipy.stats.mvn.mvnun(lower, upper, means, covar)
没有将示例x
作为参数,所以我不知道如何使用它来获得与我上面所说的类似的东西。
发布于 2018-06-20 04:54:22
这只是对@sascha在上面对答案的评论中所提出的观点的澄清。相关函数可以在here中找到
例如,在具有对角协方差的多变量正态分布中,cfd应该给出(1/4) * Total area = 0.25
(如果您不理解原因,请查看下面的散点图)以下示例将允许您使用它:
from statsmodels.sandbox.distributions.extras import mvnormcdf
from scipy.stats import mvn
for i in range(1, 20, 2):
cov_example = np.array(((i, 0), (0, i)))
mean_example = np.array((0, 0))
print(mvnormcdf(upper=upper, mu=mean_example, cov=cov_example))
这个的输出是0.25,0.25,0.25,0.25...
https://stackoverflow.com/questions/40455418
复制相似问题