如何计算Scipy中多元高斯的概率?

时间:2015-03-13 05:56:12

标签: python scipy

如何计算Scipy点x处多元高斯的概率?

我试过

    probability = multivariate_normal(x, mean, v)

其中xmeanv都是正确大小的向量,但我得到:

    probability = multivariate_normal(x, mean, v )
TypeError: __call__() takes at most 3 arguments (4 given)

1 个答案:

答案 0 :(得分:4)

首先是错误。当您致电multivariate_normal时,您实际上正在调用__call__班级multivariate_normal_gen(第555行source)。因为它是一个方法,它自己,self,作为一个始终是第一个参数的参数。然后,当您再添加三个参数时,参数总数为4。

关于您的问题,您可以通过调用pdf的{​​{1}}来评估给定点的概率密度函数。例如:

multivariate_normal

打印出来:

from scipy.stats import multivariate_normal
import numpy as np
x = np.array([[1,2], [3,4]])
multivariate_normal.pdf(x, mean=[0, 1], cov=[5, 2])