@@ -1792,7 +1792,7 @@ class MatrixNormal(Continuous):
17921792 --------
17931793 Define a matrixvariate normal variable for given row and column covariance
17941794 matrices::
1795-
1795+ with pm.Model() as model:
17961796 colcov = np.array([[1.0, 0.5], [0.5, 2]])
17971797 rowcov = np.array([[1, 0, 0], [0, 4, 0], [0, 0, 16]])
17981798 m = rowcov.shape[0]
@@ -1811,29 +1811,29 @@ class MatrixNormal(Continuous):
18111811
18121812 .. code:: python
18131813
1814- # Setup data
1815- true_colcov = np.array([[1.0, 0.5, 0.1],
1816- [0.5, 1.0, 0.2],
1817- [0.1, 0.2, 1.0]])
1818- m = 3
1819- n = true_colcov.shape[0]
1820- true_scale = 3
1821- true_rowcov = np.diag([true_scale**(2*i) for i in range(m)])
1822- mu = np.zeros((m, n))
1823- true_kron = np.kron(true_rowcov, true_colcov)
1824- data = np.random.multivariate_normal(mu.flatten(), true_kron)
1825- data = data.reshape(m, n)
1826-
1827- with pm.Model() as model:
1828- # Setup right cholesky matrix
1829- sd_dist = pm.HalfCauchy.dist(beta=2.5, shape=3)
1830- colchol,_,_ = pm.LKJCholeskyCov('colchol', n=3, eta=2,sd_dist=sd_dist)
1831- # Setup left covariance matrix
1832- scale = pm.LogNormal('scale', mu=np.log(true_scale), sigma=0.5)
1833- rowcov = pt.diag([scale**(2*i) for i in range(m)])
1834-
1835- vals = pm.MatrixNormal('vals', mu=mu, colchol=colchol, rowcov=rowcov,
1836- observed=data)
1814+ # Setup data
1815+ true_colcov = np.array([[1.0, 0.5, 0.1],
1816+ [0.5, 1.0, 0.2],
1817+ [0.1, 0.2, 1.0]])
1818+ m = 3
1819+ n = true_colcov.shape[0]
1820+ true_scale = 3
1821+ true_rowcov = np.diag([true_scale**(2*i) for i in range(m)])
1822+ mu = np.zeros((m, n))
1823+ true_kron = np.kron(true_rowcov, true_colcov)
1824+ data = np.random.multivariate_normal(mu.flatten(), true_kron)
1825+ data = data.reshape(m, n)
1826+
1827+ with pm.Model() as model:
1828+ # Setup right cholesky matrix
1829+ sd_dist = pm.HalfCauchy.dist(beta=2.5, shape=3)
1830+ colchol,_,_ = pm.LKJCholeskyCov('colchol', n=3, eta=2,sd_dist=sd_dist)
1831+ # Setup left covariance matrix
1832+ scale = pm.LogNormal('scale', mu=np.log(true_scale), sigma=0.5)
1833+ rowcov = pt.diag([scale**(2*i) for i in range(m)])
1834+
1835+ vals = pm.MatrixNormal('vals', mu=mu, colchol=colchol, rowcov=rowcov,
1836+ observed=data)
18371837 """
18381838
18391839 rv_op = matrixnormal
0 commit comments