forked from helske/seqHMM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mhmm_mvad.Rd
91 lines (77 loc) · 2.56 KB
/
mhmm_mvad.Rd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/mhmm_mvad.R
\docType{data}
\name{mhmm_mvad}
\alias{mhmm_mvad}
\title{Mixture hidden Markov model for the mvad data}
\format{
A mixture hidden Markov model of class \code{mhmm}:
two clusters including 3 and 4 hidden states.
No covariates.
}
\description{
A mixture hidden Markov model (MHMM) fitted for the \code{\link[TraMineR]{mvad}} data.
}
\details{
The model is loaded by calling \code{data(mhmm_mvad)}. It was created with the
following code:
\preformatted{
data("mvad", package = "TraMineR")
mvad_alphabet <-
c("employment", "FE", "HE", "joblessness", "school", "training")
mvad_labels <- c("employment", "further education", "higher education",
"joblessness", "school", "training")
mvad_scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")
mvad_seq <- seqdef(mvad, 17:86, alphabet = mvad_alphabet,
states = mvad_scodes, labels = mvad_labels, xtstep = 6)
attr(mvad_seq, "cpal") <- colorpalette[[6]]
# Starting values for the emission matrices
emiss_1 <- matrix(
c(0.01, 0.01, 0.01, 0.01, 0.01, 0.95,
0.95, 0.01, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.95, 0.01, 0.01),
nrow = 3, ncol = 6, byrow = TRUE)
emiss_2 <- matrix(
c(0.01, 0.01, 0.01, 0.06, 0.90, 0.01,
0.01, 0.95, 0.01, 0.01, 0.01, 0.01,
0.01, 0.01, 0.95, 0.01, 0.01, 0.01,
0.95, 0.01, 0.01, 0.01, 0.01, 0.01),
nrow = 4, ncol = 6, byrow = TRUE)
# Starting values for the transition matrix
trans_1 <- matrix(
c(0.95, 0.03, 0.02,
0.01, 0.98, 0.01,
0.01, 0.01, 0.98),
nrow = 3, ncol = 3, byrow = TRUE)
trans_2 <- matrix(
c(0.97, 0.01, 0.01, 0.01,
0.01, 0.97, 0.01, 0.01,
0.01, 0.01, 0.97, 0.01,
0.01, 0.01, 0.01, 0.97),
nrow = 4, ncol = 4, byrow = TRUE)
# Starting values for initial state probabilities
initial_probs_1 <- c(0.5, 0.25, 0.25)
initial_probs_2 <- c(0.4, 0.4, 0.1, 0.1)
# Building a hidden Markov model with starting values
init_mhmm_mvad <- build_mhmm(observations = mvad_seq,
transition_probs = list(trans_1, trans_2),
emission_probs = list(emiss_1, emiss_2),
initial_probs = list(initial_probs_1, initial_probs_2))
# Fit the model
set.seed(123)
mhmm_mvad <- fit_model(init_mhmm_mvad, control_em = list(restart = list(times = 25)))$model
}
}
\examples{
data("mhmm_mvad")
summary(mhmm_mvad)
if (interactive()) {
# Plotting the model for each cluster (change with Enter)
plot(mhmm_mvad)
}
}
\seealso{
Examples of building and fitting MHMMs in \code{\link{build_mhmm}} and
\code{\link{fit_model}}; and \code{\link[TraMineR]{mvad}} for more information on the data.
}
\keyword{datasets}