label_switch: A posteriori relabelling of a Markov chain

View source: R/label_switch.R

label_switchR Documentation

A posteriori relabelling of a Markov chain

Description

Takes the output from a MCMC simulation of parameters of a mixture, and detects whether labels switch has occured while sampling, using the method by Celeux (2000).

Usage

label_switch(x, m)

Arguments

x

output from an MCMC sampling of a mixture. A matrix, each column corresponds to one component of the mixture.

m

the number of observations in the sample that will be used to initialise the algorithm. m~100 is recommended.

Details

Function can be directly executed when x is one of mix_weights, scale, precision, shift or mu from bayes_mixAR output. ARcoeff cannot be input as it is, but element from the list may be used.

Value

A list of 2:

x

The input matrix, with adjusted labels

true_perm

The "true" permutation at each iteration.

Note

There is no absolute choice on what x should be to obtain the "true" permutation at any given point. User is subject to make the most suitable choice, given output of their MCMC.

Author(s)

Davide Ravagli

References

\insertRef

Celeux2000mixAR

See Also

bayes_mixAR

Examples

model <- new("MixARGaussian",
             prob   = exampleModels$WL_At@prob,      # c(0.5, 0.5)
             scale  = exampleModels$WL_At@scale,     # c(1, 2)        
             arcoef = exampleModels$WL_At@arcoef@a ) # list(-0.5, 1.1)

y <- mixAR_sim(model, n = 300, init = rep(0, which.max(model@order)))

## just examples, use larger numbers in practice
nsim <- 30   # 200
burnin <- 10  # 100
x <- bayes_mixAR(y, model, fix_shift = FALSE, tau = c(.15, .25),
              nsim = nsim, burnin = burnin)

label_switch(x$mix_weights, m = 5)

GeoBosh/mixAR documentation built on May 9, 2022, 7:36 a.m.