@@ -1792,7 +1792,7 @@ class MatrixNormal(Continuous):
1792
1792
--------
1793
1793
Define a matrixvariate normal variable for given row and column covariance
1794
1794
matrices::
1795
-
1795
+ with pm.Model() as model:
1796
1796
colcov = np.array([[1.0, 0.5], [0.5, 2]])
1797
1797
rowcov = np.array([[1, 0, 0], [0, 4, 0], [0, 0, 16]])
1798
1798
m = rowcov.shape[0]
@@ -1811,29 +1811,29 @@ class MatrixNormal(Continuous):
1811
1811
1812
1812
.. code:: python
1813
1813
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)
1837
1837
"""
1838
1838
1839
1839
rv_op = matrixnormal
0 commit comments