可能是一个愚蠢的问题,原谅我,但是,

here

N = 10000
x = 10 + 2*np.random.randn(N)
y = 5 + x + np.random.randn(N)

def neg_loglike(const,coef,std):
    mu = const + coef*x
    print(mu.shape)
    return -1*stats.norm(mu, std).logpdf(y).sum()

seed = np.array([1,1,1])
res = minimize(neg_loglike, seed, method = 'Nelder-Mead',
            options={'disp': True})


mu在这种情况下是数组/向量-stats.norm是否为x的每个值生成正态分布?正态分布具有多种均值是什么意思……(显然我没有得到)

最后,是res.x中最佳值的正确解释
这些参数生成一组正态分布,该正态分布使在该分布中看到y的可能性最大化。

最佳答案

是的,norm接受一个由locscale参数组成的向量,并将每个输入视为自己的分布。请注意,可以为一个参数输入一个向量,为另一个参数输入一个标量,就像您引用的链接中的情况一样(其中scale1loc是向量x)。

例如:

from scipy.stats import norm

norm(loc=[1,2,3], scale=1).logpdf([4,5,6])


输出:

array([-5.41893853, -5.41893853, -5.41893853])

关于python - 向量正态分布python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46879939/

10-14 19:51