Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pymc3:以随机变量为元素构造矩阵_Python_Distribution_Bayesian_Pymc3_Mcmc - Fatal编程技术网

Python Pymc3:以随机变量为元素构造矩阵

Python Pymc3:以随机变量为元素构造矩阵,python,distribution,bayesian,pymc3,mcmc,Python,Distribution,Bayesian,Pymc3,Mcmc,我试图在PyMC3中创建一个具有多元正态分布的观察变量。我想要协方差矩阵,它的元素是其他随机变量。作为一个例子,考虑下面的代码: import pymc3 as pm with pm.Model() as model: a = pm.Normal('a', mu=0, sigma=10) b = pm.Normal('a', mu=0, sigma=10) c = pm.Normal('a', mu=0, sigma=10) # I recognize that the ma

我试图在PyMC3中创建一个具有多元正态分布的观察变量。我想要协方差矩阵,它的元素是其他随机变量。作为一个例子,考虑下面的代码:

import pymc3 as pm

with pm.Model() as model:
  a = pm.Normal('a', mu=0, sigma=10)
  b = pm.Normal('a', mu=0, sigma=10)
  c = pm.Normal('a', mu=0, sigma=10)

  # I recognize that the matrix is not positive definite
  # with this parameterization. This is just a toy example.
  # The main point is that I want the elements of the matrix
  # to be random variables.
  cov = [[a, b]
         [b, c]]

  data = pm.MvNormal('data', mu=[0, 0],
                       cov=cov, observed=obs)
这是行不通的。使用
np.array(cov)
也不起作用。我想解决的办法是以某种方式使用无张量。我不知道如何使用它们


我很感激你能帮我做这件事。谢谢。

协方差矩阵的值可以来自分布,请参见此处的定义:。这个问题也是如此:有一个已经解决的例子。问题中不清楚的是,你是否希望协方差矩阵由多个独立的随机变量构成?我支持@balleveryday的评论,具体来说,LKJ是Cholesky(PSD矩阵的数字高效分解)的标准先验,PyMC3在其API中对此作了规定,如另一个答案所示,加上引用。协方差矩阵的值可以来自分布,请参见此处的定义:。这个问题也是如此:有一个已经解决的例子。问题中不清楚的是,你是否希望协方差矩阵由多个独立的随机变量构成?我支持@balleveryday的评论,具体来说,LKJ是Cholesky(PSD矩阵的数字高效分解)的标准先验,PyMC3在其API中对此作了规定,如另一个答案所示,加上参考资料。