为什么 scipy 的概率密度函数不接受我的平均值大小?



我正在使用一个函数来计算似然密度。

我正在遍历两个长度为7的向量x

def lhd(x0, x1, dt): #Define a function to calculate the likelihood density given two values. 
d = len(x0) #Save the length of the inputs for the below pdf input.
print(d)
print(len(x1))
lh = multivariate_normal.pdf(x1, mean=(1-dt)*x0, cov=2*dt*np.identity(d)) #Take the pdf from a multivariate normal built from x0, given x1.
return lh #Return this pdf value.

这里的均值是一个长度为7的向量,协方差是一个(7,7)数组。

当我运行这个时,我得到错误

ValueError: Array 'mean' must be a vector of length 49.

但是看pdf的公式我不认为这是正确的。你知道这里出了什么问题吗?

如果dt是(7,7)数组,(1-dt)也是(7,7),(1-dt)*x0中的*运算符是元素的乘法,如果x0是长度为7的向量,结果将是(7,7)数组。

我猜你的意思是使用矩阵乘法,你可以使用x0 - dt @ x0(其中@表示矩阵乘法运算符)。

相关内容

  • 没有找到相关文章

最新更新