march.dcmm.construct: Construct a double chain Markov model (DCMM).

Description Usage Arguments Value Author(s) See Also Examples

View source: R/march.dcmm.R

Description

Construct a march.Dcmm object, with visible order orderVC, hidden order orderHC and M hidden states, according to a march.Dataset. The first maxOrder-orderVC elements of each sequence are truncated in order to return a model which can be compared with other Markovian model of visible order maxOrder. The construction is performed either by an evolutionary algorithm (EA) or by improving an existing DCMM. The EA performs gen generations on a population of popSize individuals. The EA behaves as a Lamarckian evolutionary algorithm, using a Baum-Welch algorithm as optimization step, running until log-likelihood improvement is less than stopBw or for iterBw iterations. Finally only the best individual from the population is returned as solution. If a seedModel is provided, the only step executed is the optimization step, parameters related to the EA does not apply in this case.

Usage

1
2
march.dcmm.construct(y, orderHC, orderVC, M, gen = 5, popSize = 4,
  maxOrder = orderVC, seedModel = NULL, iterBw = 2, stopBw = 0.1)

Arguments

y

the dataset from which the Dcmm will be constructed march.Dataset.

orderHC

the order of the hidden chain of the constructed Dcmm.

orderVC

the order of the visible chain of the constructed Dcmm (0 for a HMM).

M

the number of hidden state of the Dcmm.

gen

the number of generation performed by the EA.

popSize

the number of individual stored into the population.

maxOrder

the maximum visible order among the set of Markovian models to compare.

seedModel

a model to optimize using Baum-Welch algorithm.

iterBw

the number of iteration performed by the Baum-Welch algorithm.

stopBw

the minimum increase in quality (log-likelihood) authorized in the Baum-Welch algorithm.

Value

the best march.Dcmm constructed by the EA or the result of the Baum-Welch algorithm on seedModel.

Author(s)

Ogier Maitre

See Also

march.Dcmm-class, march.Model-class, march.Dataset-class.

Examples

 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
# Construct a 2 hidden states DCMM for the pewee data
# with hidden order set to 2 and visible order set to 1.
# The estimation procedure uses both the evolutionary algorithm (population size 2, 
# one iteration) and the Bauw-Welch algorithm (one iteration).
march.dcmm.construct(y=pewee,orderHC=2,orderVC=1,M=2,popSize=2,gen=1,iterBw=1,stopBw=0.0001)
 
# Same as above, but the DCMM is replaced by a HMM (the visible order OrderVC is set to zero).
march.dcmm.construct(y=pewee,orderHC=2,orderVC=0,M=2,popSize=2,gen=1,iterBw=1,stopBw=0.0001)  
  
# Construct a DCMM using an order 2 hidden chain,
# a visible chain of order 3 and 3 hidden states.
# A first model is computed using both EA and Baum-Welch algorithms.
# Then the initial solution is improved through two rounds of Baum-Welch optimization.
models <- list()
models[[length(models)+1]] <- march.dcmm.construct(y=pewee,orderHC=2,
                                                   orderVC=3,M=3,popSize=2,gen=2)
models[[length(models)+1]] <- march.dcmm.construct(y=pewee,seedModel=models[[1]],
                                                   orderVC=3,iterBw=10,stopBw=0.001)
models[[length(models)+1]] <- march.dcmm.construct(y=pewee,seedModel=models[[2]],
                                                   orderVC=3,iterBw=10,stopBw=0.0001)
# Show performance indicators (ll, number of independent parameters,
# BIC and AIC) for all computed models.
r <- do.call(rbind,lapply(models,march.summary))
print(r)

# Construct a three hidden states, first-order HMM (hence OrderVC=0) for the sleep data.
# By setting gen=1 and popSize=1, the estimation procedure uses only the Baum-Welch algorithm.
HMM <- march.dcmm.construct(sleep,orderHC=1,orderVC=0,M=3,gen=1,popSize=1,iterBw=10,stopBw=0.0001)
print(HMM)
# Compute the best sequence of hidden states for each subject in the sleep data.
HS <- march.dcmm.viterbi(HMM,sleep)
# Display the hidden states for the first 10 subjects.
print(HS[1:10])

march documentation built on Sept. 13, 2017, 3:01 a.m.