# inst/doc/matrixnormal.R In MixMatrix: Classification with Matrix Variate Normal and t Distributions

```## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk\$set(
collapse = TRUE,
comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(MixMatrix)

## ----mnorm--------------------------------------------------------------------
set.seed(20180203)
x <- matrix(rnorm(6),nrow=3)
x
set.seed(20180203)
y <- rmatrixnorm(n = 1, mean=matrix(rep(0,6),nrow=3))
y
U <- 5 * diag(3) + 1
V <- matrix(c(2,0,0,.1),nrow=2)
mu = matrix(1:6,nrow=3)
set.seed(20180203)
z <- rmatrixnorm(n = 1, mean=mu,U=U,V=V)
z
mu + t(chol(U)) %*% y %*% chol(V)

## ----noptions-----------------------------------------------------------------
set.seed(20180203)
x <- rmatrixnorm(n = 1, mean=matrix(rep(0,6),nrow=3))
x
set.seed(20180203)
y <- rmatrixnorm(n = 100, mean=matrix(rep(0,6),nrow=3),list = TRUE)
y[[1]]
set.seed(20180203)
z <- rmatrixnorm(n = 100, mean=matrix(rep(0,6),nrow=3),array = TRUE)
z[ , , 1]

## ----density------------------------------------------------------------------
set.seed(20180202)
A = rmatrixnorm(n=1,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
L=matrix(c(2,1,0,.1),nrow=2))
dmatrixnorm(A,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
L=matrix(c(2,1,0,.1),nrow=2),log=TRUE )

## ----mleone-------------------------------------------------------------------
set.seed(20180202)
A = rmatrixnorm(n=100,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
L=matrix(c(2,1,0,.1),nrow=2),list=TRUE)
results=MLmatrixnorm(A)
print(results)

## ----mlerow-------------------------------------------------------------------
results.fixrows = MLmatrixnorm(A, row.mean = TRUE, max.iter = 5)
print(results.fixrows)
# this failure is expected with misspecification! The number of iterations is also
# fixed to be low so the vignette compiles quickly.

## ----mlevar,warning=FALSE-----------------------------------------------------
# tolerance and maximum iterations are limited here to make the vignette compile faster

B = rmatrixnorm(n = 50, mean = matrix(1:15,nrow = 5),
U = 3*stats::toeplitz(.6^(1:5)))
MLmatrixnorm(B, row.variance = "AR(1)", tol = 1e-5)
MLmatrixnorm(B, tol = 1e-5)

## ----sessioninfo--------------------------------------------------------------
sessionInfo()

## ----getlabels, echo = FALSE--------------------------------------------------
labs = knitr::all_labels()
labs = labs[!labs %in% c("setup", "toc", "getlabels", "allcode")]

## ----allcode, ref.label = labs, eval = FALSE----------------------------------
#  knitr::opts_chunk\$set(
#    collapse = TRUE,
#    comment = "#>"
#  )
#  set.seed(20180203)
#  x <- matrix(rnorm(6),nrow=3)
#  x
#  set.seed(20180203)
#  y <- rmatrixnorm(n = 1, mean=matrix(rep(0,6),nrow=3))
#  y
#  U <- 5 * diag(3) + 1
#  V <- matrix(c(2,0,0,.1),nrow=2)
#  mu = matrix(1:6,nrow=3)
#  set.seed(20180203)
#  z <- rmatrixnorm(n = 1, mean=mu,U=U,V=V)
#  z
#  mu + t(chol(U)) %*% y %*% chol(V)
#
#  set.seed(20180203)
#  x <- rmatrixnorm(n = 1, mean=matrix(rep(0,6),nrow=3))
#  x
#  set.seed(20180203)
#  y <- rmatrixnorm(n = 100, mean=matrix(rep(0,6),nrow=3),list = TRUE)
#  y[[1]]
#  set.seed(20180203)
#  z <- rmatrixnorm(n = 100, mean=matrix(rep(0,6),nrow=3),array = TRUE)
#  z[ , , 1]
#
#  set.seed(20180202)
#  A = rmatrixnorm(n=1,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
#  L=matrix(c(2,1,0,.1),nrow=2))
#  dmatrixnorm(A,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
#    L=matrix(c(2,1,0,.1),nrow=2),log=TRUE )
#
#  set.seed(20180202)
#  A = rmatrixnorm(n=100,mean=matrix(c(100,0,-100,0,25,-1000),nrow=2),
#     L=matrix(c(2,1,0,.1),nrow=2),list=TRUE)
#  results=MLmatrixnorm(A)
#  print(results)
#  results.fixrows = MLmatrixnorm(A, row.mean = TRUE, max.iter = 5)
#  print(results.fixrows)
#  # this failure is expected with misspecification! The number of iterations is also
#  # fixed to be low so the vignette compiles quickly.
#  # tolerance and maximum iterations are limited here to make the vignette compile faster
#
#  B = rmatrixnorm(n = 50, mean = matrix(1:15,nrow = 5),
#                  U = 3*stats::toeplitz(.6^(1:5)))
#  MLmatrixnorm(B, row.variance = "AR(1)", tol = 1e-5)
#  MLmatrixnorm(B, tol = 1e-5)
#
#  sessionInfo()
```

## Try the MixMatrix package in your browser

Any scripts or data that you put into this service are public.

MixMatrix documentation built on Nov. 16, 2021, 9:25 a.m.