Convert mixture component covariances to matrix form
decomp2sigma.Rd
Converts covariances from a parameterization by eigenvalue decomposition or cholesky factorization to representation as a 3-D array.
Arguments
- d
The dimension of the data.
- G
The number of components in the mixture model.
- scale
Either a G-vector giving the scale of the covariance (the dth root of its determinant) for each component in the mixture model, or a single numeric value if the scale is the same for each component.
- shape
Either a G by d matrix in which the kth column is the shape of the covariance matrix (normalized to have determinant 1) for the kth component, or a d-vector giving a common shape for all components.
- orientation
Either a d by d by G array whose
[,,k]
th entry is the orthonomal matrix whose columns are the eigenvectors of the covariance matrix of the kth component, or a d by d orthonormal matrix if the mixture components have a common orientation. Theorientation
component ofdecomp
can be omitted in spherical and diagonal models, for which the principal components are parallel to the coordinate axes so that the orientation matrix is the identity.- ...
Catches unused arguments from an indirect or list call via
do.call
.
Value
A 3-D array whose [,,k]
th component is the
covariance matrix of the kth component in an MVN mixture model.
Examples
meEst <- meVEV(iris[,-5], unmap(iris[,5]))
names(meEst)
#> [1] "modelName" "prior" "n" "d" "G"
#> [6] "z" "parameters" "control" "loglik"
meEst$parameters$variance
#> $modelName
#> [1] "VEV"
#>
#> $d
#> [1] 4
#>
#> $G
#> [1] 3
#>
#> $sigma
#> , , 1
#>
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Sepal.Length 0.13321144 0.10939010 0.01919074 0.01158562
#> Sepal.Width 0.10939010 0.15495729 0.01209929 0.01001100
#> Petal.Length 0.01919074 0.01209929 0.02827503 0.00581811
#> Petal.Width 0.01158562 0.01001100 0.00581811 0.01069593
#>
#> , , 2
#>
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Sepal.Length 0.22571809 0.07613379 0.14689790 0.04335743
#> Sepal.Width 0.07613379 0.08024536 0.07371576 0.03435377
#> Petal.Length 0.14689790 0.07371576 0.16611738 0.04951832
#> Petal.Width 0.04335743 0.03435377 0.04951832 0.03337836
#>
#> , , 3
#>
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Sepal.Length 0.42945746 0.10782916 0.33457182 0.06541484
#> Sepal.Width 0.10782916 0.11595505 0.08903504 0.06133241
#> Petal.Length 0.33457182 0.08903504 0.36427088 0.08711121
#> Petal.Width 0.06541484 0.06133241 0.08711121 0.08666116
#>
#>
#> $scale
#> [1] 0.03748690 0.05792051 0.11417100
#>
#> $shape
#> [1] 6.8586562 1.0115190 0.6265407 0.2300581
#>
#> $orientation
#> , , 1
#>
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Sepal.Length -0.66907840 0.5978840 -0.4399628 -0.03607712
#> Sepal.Width -0.73414783 -0.6206734 0.2746075 -0.01955027
#> Petal.Length -0.09654390 0.4900556 0.8324495 -0.23990129
#> Petal.Width -0.06356359 0.1309379 0.1950675 0.96992969
#>
#> , , 2
#>
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Sepal.Length 0.7058553 -0.6603954 0.24389224 -0.07850316
#> Sepal.Width 0.3292982 0.5666772 0.68428027 0.31968755
#> Petal.Length 0.5956635 0.3576279 -0.68509739 0.21892660
#> Petal.Width 0.1962550 0.3389057 0.05402459 -0.91853594
#>
#> , , 3
#>
#> Sepal.Length Sepal.Width Petal.Length Petal.Width
#> Sepal.Length -0.7104631 -0.30095824 -0.5382163 -0.3391010
#> Sepal.Width -0.2167218 0.71570645 -0.4318489 0.5042841
#> Petal.Length -0.6483892 -0.07068137 0.6545951 0.3822313
#> Petal.Width -0.1669287 0.62625279 0.3087637 -0.6961374
#>
#>
dec <- meEst$parameters$variance
decomp2sigma(d=dec$d, G=dec$G, shape=dec$shape, scale=dec$scale,
orientation = dec$orientation)
#> , , 1
#>
#> [,1] [,2] [,3] [,4]
#> [1,] 0.13321144 0.10939010 0.01919074 0.01158562
#> [2,] 0.10939010 0.15495729 0.01209929 0.01001100
#> [3,] 0.01919074 0.01209929 0.02827503 0.00581811
#> [4,] 0.01158562 0.01001100 0.00581811 0.01069593
#>
#> , , 2
#>
#> [,1] [,2] [,3] [,4]
#> [1,] 0.22571809 0.07613379 0.14689790 0.04335743
#> [2,] 0.07613379 0.08024536 0.07371576 0.03435377
#> [3,] 0.14689790 0.07371576 0.16611738 0.04951832
#> [4,] 0.04335743 0.03435377 0.04951832 0.03337836
#>
#> , , 3
#>
#> [,1] [,2] [,3] [,4]
#> [1,] 0.42945746 0.10782916 0.33457182 0.06541484
#> [2,] 0.10782916 0.11595505 0.08903504 0.06133241
#> [3,] 0.33457182 0.08903504 0.36427088 0.08711121
#> [4,] 0.06541484 0.06133241 0.08711121 0.08666116
#>
#> attr(,"modelName")
#> [1] "VEV"
# \donttest{
do.call("decomp2sigma", dec) ## alternative call
#> , , 1
#>
#> [,1] [,2] [,3] [,4]
#> [1,] 0.13321144 0.10939010 0.01919074 0.01158562
#> [2,] 0.10939010 0.15495729 0.01209929 0.01001100
#> [3,] 0.01919074 0.01209929 0.02827503 0.00581811
#> [4,] 0.01158562 0.01001100 0.00581811 0.01069593
#>
#> , , 2
#>
#> [,1] [,2] [,3] [,4]
#> [1,] 0.22571809 0.07613379 0.14689790 0.04335743
#> [2,] 0.07613379 0.08024536 0.07371576 0.03435377
#> [3,] 0.14689790 0.07371576 0.16611738 0.04951832
#> [4,] 0.04335743 0.03435377 0.04951832 0.03337836
#>
#> , , 3
#>
#> [,1] [,2] [,3] [,4]
#> [1,] 0.42945746 0.10782916 0.33457182 0.06541484
#> [2,] 0.10782916 0.11595505 0.08903504 0.06133241
#> [3,] 0.33457182 0.08903504 0.36427088 0.08711121
#> [4,] 0.06541484 0.06133241 0.08711121 0.08666116
#>
#> attr(,"modelName")
#> [1] "VEV"
# }