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

olmpazwi  于 2022-11-29  发布在  其他
关注(0)|答案(1)|浏览(148)

我用一个函数来计算似然密度。
我正在运行两个x,它们是长度为7的向量。

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的公式,我不认为这是正确的。知道这里出了什么问题吗?

3hvapo4f

3hvapo4f1#

如果dt是(7,7)数组,(1-dt)也是(7,7),(1-dt)*x0中的*运算符是元素级乘法,如果x0是长度为7的向量,结果将是(7,7)数组。
我猜你的意思是使用矩阵乘法,你可以使用x0 - dt @ x0(其中@表示矩阵乘法运算符)。

相关问题