python - 向量化正态分布 python

标签 python scipy normal-distribution mle

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

来自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/

相关文章:

python - 我如何检查列中所有值之间的范围

Python循环遍历2个列表

python - 找到比给定的最大距离更近的所有点对

Docker:scipy 构建轮子失败

python - 将 URL 包装为文件系统路径

optimization - 分布样本概率

python - 向打开的 python 终端发送命令

c++ - 如何使用正态分布生成最小值和最大值之间的整数?

python - python 中分布的正态性检验

python - 使用 pandas Rolling 对象创建列表的滑动窗口