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

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

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

## ----demo---------------------------------------------------------------------
library(MixMatrix)
set.seed(20180221)
A <- rmatrixt(30,mean=matrix(0,nrow=3,ncol=4), df = 10) # 3x4 matrices with mean 0
B <- rmatrixt(30,mean=matrix(1,nrow=3,ncol=4), df = 10) # 3x4 matrices with mean 2
C <- array(c(A,B), dim=c(3,4,60)) # combine into one array
prior <- c(.5,.5) # equal probability prior
# create an intialization object, starts at the true parameters
init = list(centers = array(c(rep(0,12),rep(1,12)), dim = c(3,4,2)),
U = array(c(diag(3), diag(3)), dim = c(3,3,2)),
V = array(c(diag(4), diag(4)), dim = c(4,4,2))
)
# fit model
res<-matrixmixture(C, init = init, prior = prior, nu = 10,
model = "t", tolerance = 1e-2)
print(res\$centers) # the final centers
print(res\$pi) # the final mixing proportion
logLik(res)
AIC(logLik(res))
plot(res) # the log likelihood by iteration

## ----initializer--------------------------------------------------------------

init_matrixmixture(C, prior = c(.5,.5), centermethod = 'kmeans')

init_matrixmixture(C, K = 2, centermethod = 'random')

## ----final--------------------------------------------------------------------
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 = "#>"
#  )
#  library(MixMatrix)
#   set.seed(20180221)
#   A <- rmatrixt(30,mean=matrix(0,nrow=3,ncol=4), df = 10) # 3x4 matrices with mean 0
#   B <- rmatrixt(30,mean=matrix(1,nrow=3,ncol=4), df = 10) # 3x4 matrices with mean 2
#   C <- array(c(A,B), dim=c(3,4,60)) # combine into one array
#   prior <- c(.5,.5) # equal probability prior
#   # create an intialization object, starts at the true parameters
#   init = list(centers = array(c(rep(0,12),rep(1,12)), dim = c(3,4,2)),
#                U = array(c(diag(3), diag(3)), dim = c(3,3,2)),
#                V = array(c(diag(4), diag(4)), dim = c(4,4,2))
#               )
#   # fit model
#   res<-matrixmixture(C, init = init, prior = prior, nu = 10,
#                      model = "t", tolerance = 1e-2)
#   print(res\$centers) # the final centers
#   print(res\$pi) # the final mixing proportion
#   logLik(res)
#   AIC(logLik(res))
#   plot(res) # the log likelihood by iteration
#
#
#  init_matrixmixture(C, prior = c(.5,.5), centermethod = 'kmeans')
#
#  init_matrixmixture(C, K = 2, centermethod = 'random')
#
#  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.