# Transition Matrix Plot

### Description

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`

, or `depmix.fitted`

.

### Usage

1 2 3 4 5 6 7 8 | ```
## S3 method for classes 'matrix', 'array' and 'depmix.fitted'
trmatplot ( d, rowconstraint = TRUE, seed = NULL,
cspal = NULL, cpal = NULL, title = 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, ...)
``` |

### Arguments

`d` |
Object to be plotted of class |

`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 |

`seed` |
A single value, interpreted as an integer, or |

`cspal` |
A color palette that can be specified as one of: |

`cpal` |
Color palette vector when coloring probability sequences. The |

`title` |
Title for the graphic. Default is |

`xlab` |
Label for the x axis. Default is |

`ylab` |
Label for the y axis. Default is |

`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 |

### Details

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 of class `depmix.fitted`

and this is also accepted.

Setting a `seed`

allows the graphic to be replicated.

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.

### Value

`trmatplot`

returns an object of class `trmatplot`

. Some of the arguments are inherent in `par`

and `seqpcplot`

.

### Author(s)

Poulcheria Adamopoulou

### References

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.

### See Also

`march.Dcmm.trmatplot`

,
`seqpcplot`

,
`par`

.

### 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 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 | ```
##########################################
# 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)
###########################################################
# 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)"))
``` |