Learn R Programming

LMest (version 2.4.5)

decoding: Perform local and global decoding

Description

Function that performs local and global decoding (Viterbi) from the output of est_lm_basic, est_lm_cov_latent, est_lm_cov_manifest, and est_lm_mixed.

Usage

decoding(est, Y, X1 = NULL, X2 = NULL, fort = TRUE)

Arguments

est

output from est_lm_basic, est_lm_cov_latent, est_lm_cov_manifest, or est_lm_mixed

Y

single vector or matrix of responses

X1

matrix of covariates on the initial probabilities (est_lm_cov_latent) or on the responses (est_lm_cov_manifest)

X2

array of covariates on the transition probabilites

fort

to use Fortran routines

Value

Ul

matrix of local decoded states corresponding to each row of Y

Ug

matrix of global decoded states corresponding to each row of Y

References

Viterbi A (1967). Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm. IEEE Transactions on Information Theory, 13, 260-269.

Juan B., Rabiner L. (1991). Hidden Markov Models for Speech Recognition. Technometrics, 33, 251-272.

Examples

Run this code
# NOT RUN {
# example for the output from est_lm_basic
data(data_drug)
data_drug = as.matrix(data_drug)
S = data_drug[,1:5]-1
yv = data_drug[,6]
n = sum(yv)
# fit the Basic LM model
k = 3
est = est_lm_basic(S,yv,k,mod=1)
# decoding for a single sequence
out1 = decoding(est,S[1,])
# decoding for all sequences
out2 = decoding(est,S)


# example for the output from est_lm_cov_latent with difflogit parametrization
data(data_SRHS_long)
dataSRHS = data_SRHS_long[1:1600,]

TT = 8 
head(dataSRHS)
res = long2matrices(dataSRHS$id,X=cbind(dataSRHS$gender-1, 
dataSRHS$race==2| dataSRHS$race==3, dataSRHS$education==4, 
dataSRHS$education==5, dataSRHS$age-50,(dataSRHS$age-50)^2/100),
Y= dataSRHS$srhs)

# matrix of responses (with ordered categories from 0 to 4)
S = 5-res$YY

# matrix of covariates (for the first and the following occasions)
# colums are: gender,race,educational level (2 columns),age,age^2)
X1 =res$XX[,1,]
X2 =res$XX[,2:TT,]

# estimate the model
est = est_lm_cov_latent(S,X1,X2,k=2,output=TRUE,param="difflogit")
# decoding for a single sequence
out1 = decoding(est,S[1,,],X1[1,],X2[1,,])
# decoding for all sequences
out2 = decoding(est,S,X1,X2)
# }

Run the code above in your browser using DataLab