trmatplot {MmgraphR} | R Documentation |
A coordinate plot which maps each element in the probability transition matrix as a line, where each line is weighted by probability. Users can apply filters to emphasize the most (or least) probable state sequences overall, or by initial state. Various color palettes using the Hue-Chroma-Luminance color scheme can be easily selected by the user. Input is either an object of class matrix
, array
, depmix.fitted
, or hmm
which is the output of either build_hmm
or build_mm
.
## S3 method for classes 'matrix', 'array', 'depmix.fitted', and 'hmm' trmatplot ( d, seed = NULL, rowconstraint = TRUE, morder = 1, cspal = NULL, cpal = NULL, main = NULL, xlab = NULL, ylab = NULL, ylim = NULL, xtlab = NULL, ytlab = NULL, pfilter = NULL, shade.col = "grey80", num = 1, hide.col = NULL, lorder = NULL, plot = TRUE, verbose = FALSE, ...)
d |
Object to be plotted of class |
seed |
A single value, interpreted as an integer, or |
rowconstraint |
Logical. Checks if the row constraint is satisfied, i.e. the sum of each row of the transition probability matrix equals one. Default is |
morder |
Numeric. The order of the probability transition matrix, |
cspal |
A color palette that can be specified as one of: |
cpal |
Color palette vector when coloring probability sequences. Cannot specify both |
main |
Title for the graphic. Default is Probability Transition Matrix. |
xlab |
Label for the x axis. Default is Time. |
ylab |
Label for the y axis. Default is States. |
ylim |
Numeric vector of length 2 giving the y coordinates range. |
xtlab |
Labels for the x axis ticks. Default is time (t, t+1,...). |
ytlab |
Labels for the y axis ticks. |
pfilter |
Probability filter. Can be specified as one of |
shade.col |
The color for sequences shaded out using the |
num |
Numeric. The number of sequences to be highlighted. Only applicable when using |
hide.col |
The color for sequences shaded out using the |
lorder |
Line order. Either |
plot |
Logical. Should the object be plotted. Default is |
verbose |
Logical. Reports extra information on progress. Default is |
... |
Additional arguments, such as graphical parameters, to be passed on. See |
The object d
to be plotted, is a probability matrix which, when of class matrix
or array
, can be user defined. Alternatively, if the probability transition matrix is the output packages msm, HiddenMarkov and HMM, it is of class matrix
. A probability matrix obtained using the package depmixS4 is embedded in an object of class depmix.fitted
. A probability matrix obtained using the seqHMM functions build_hmm
or build_mm
is embedded in an object of class hmm
. Thus, objects of classes depmix.fitted
and hmm
are also accepted.
Setting a seed
allows the graphic to be replicated.
If morder > 1
, in other words, the order of the probability transition matrix d
is of order greater than one, then d
must be specified in reduced form. Structural zeroes are not accepted.
The pfilter
argument serves to highlight probability sequences that are either most probable while shading out those that are less probable in shade.col
and vice-versa.
The four options for pfilter
are described below, and are illustrated in Examples.
"smax"
For each initial state the most probable next state is highlighed.
"smin"
For each initial state the least probable next state is highlighed.
"tmax"
The sequence of states with the highest probability overall is highlighed. To highlight the n most probable sequences of states, set num = n
.
"tmin"
The sequence of states with the lowest probability overall is highlighed. To highlight the n least probable sequences of states, set num = n
.
The filter
and hide.col
arguments are inherent in and may be passed on to seqpcplot
.
The filter
argument serves to specify filters to gray less interesting patterns.
The filtered-out patterns are displayed in the hide.col
color.
The filter argument expects a list with at least elements type
and value
.
Most relevant within the context of probabilities is type = "sequence"
, which highlights the specific pattern.
See Examples.
trmatplot
returns an object of class trmatplot
. Some of the arguments are inherent in par
and seqpcplot
.
Pauline Poulcheria Adamopoulou
Buergin, R. and G. Ritschard (2014), "A decorated parallel coordinate plot for categorical longitudinal data", The American Statistician. Vol. 68(2), pp. 98-103.
Zeileis, A.; Hornik, K. and P. Murrell (2009), "Escaping RGBland: Selecting Colors for Statistical Graphics", Computational Statistics & Data Analysis. Vol. 53, pp. 3259-3270.
########################################## # Plotting a probability transition matrix ########################################## trMat<-matrix( c (0.1, 0.05, 0.05, 0.80, 0.06, 0.02, 0.03, 0.89, 0.03, 0.01, 0.01, 0.95, 0, 0, 0, 1), nrow = 4, ncol = 4, byrow = TRUE) trmatplot(trMat) #--- Setting a seed so that the graphic can be replicated trmatplot(trMat, seed = 2) #--- Adjusting line width trmatplot(trMat, seed = 2, lwd = 0.8) #--- Defining a second order probability transition matrix as an array trMatArray <- ( array( c ( 0.30, 0.70, 0.65, 0.35, 0.05, 0.95, 0.99, 0.01), dim = c( 1, 2 , 4)) ) trmatplot (trMatArray, seed = 4, morder = 2, lwd = 0.5) ########################################################### # cspal: ready-to-use color palettes using colorspace ########################################################### #--- Color palette "dynamic" trmatplot(trMat, seed = 2, cspal = "dynamic") #--- Color palette "harmonic" trmatplot(trMat, seed = 2, cspal = "harmonic") #--- Color palette "cold" trmatplot(trMat, seed = 2, cspal = "cold") #--- Color palette "warm" trmatplot(trMat, seed = 2, cspal = "warm") #--- Color palette "heat" trmatplot(trMat, seed = 2, cspal = "heat") #--- Color palette "terrain" trmatplot(trMat, seed = 2, cspal = "terrain") ########################################################### # pfilter: Filtering out most (or least) probable sequences ########################################################### #--- The most probable sequence given a state trmatplot(trMat, seed = 2, pfilter = "smax") #--- The least probable sequence given a state trmatplot(trMat, seed = 2, pfilter = "smin") #--- The two most probable sequnces trmatplot(trMat, seed = 2, pfilter = "tmax", num = 2 ) #--- The ten least probable sequences trmatplot(trMat, seed = 2, pfilter = "tmin", num = 10 ) ###################################################### # filter: Highlighting a specific sequence of interest ###################################################### #--- Highlight the probability that a sequence is initially in state 1 and then in state 4 trmatplot(trMat, seed = 2, filter = list(type = "sequence", value = "(1)-(4)"))