# Class "markovchain"

### Description

The S4 class that describes `markovchain`

objects.

### Objects from the Class

Objects can be created by calls of the form `new("markovchain", states, byrow, transitionMatrix, ...)`

.

### Slots

`states`

:Name of the states. Must be the same of

`colnames`

and`rownames`

of the transition matrix`byrow`

:Binary flag.

`transitionMatrix`

:Square transition matrix

`name`

:Optional character name of the Markov chain

### Methods

- *
`signature(e1 = "markovchain", e2 = "markovchain")`

: multiply two`markovchain`

objects- *
`signature(e1 = "markovchain", e2 = "matrix")`

: markovchain by matrix multiplication- *
`signature(e1 = "markovchain", e2 = "numeric")`

: markovchain by numeric vector multiplication- *
`signature(e1 = "matrix", e2 = "markovchain")`

: matrix by markov chain- *
`signature(e1 = "numeric", e2 = "markovchain")`

: numeric vector by`markovchain`

multiplication- [
`signature(x = "markovchain", i = "ANY", j = "ANY", drop = "ANY")`

: ...- ^
`signature(e1 = "markovchain", e2 = "numeric")`

: power of a`markovchain`

object- ==
`signature(e1 = "markovchain", e2 = "markovchain")`

: equality of two`markovchain`

object- !=
`signature(e1 = "markovchain", e2 = "markovchain")`

: non-equality of two`markovchain`

object- absorbingStates
`signature(object = "markovchain")`

: method to get absorbing states- canonicForm
`signature(object = "markovchain")`

: return a`markovchain`

object into canonic form- coerce
`signature(from = "markovchain", to = "data.frame")`

: coerce method from markovchain to`data.frame`

- conditionalDistribution
`signature(object = "markovchain")`

: returns the conditional probability of subsequent states given a state- coerce
`signature(from = "data.frame", to = "markovchain")`

: coerce method from`data.frame`

to`markovchain`

- coerce
`signature(from = "table", to = "markovchain")`

: coerce method from`table`

to`markovchain`

- coerce
`signature(from = "msm", to = "markovchain")`

: coerce method from`msm`

to`markovchain`

- coerce
`signature(from = "msm.est", to = "markovchain")`

: coerce method from`msm.est`

(but only from a Probability Matrix) to`markovchain`

- coerce
`signature(from = "etm", to = "markovchain")`

: coerce method from`etm`

to`markovchain`

- coerce
`signature(from = "markovchain", to = "igraph")`

: coercing to`igraph`

objects- coerce
`signature(from = "markovchain", to = "matrix")`

: coercing to`matrix`

objects- coerce
`signature(from = "matrix", to = "markovchain")`

: coercing to`markovchain`

objects from`matrix`

one- dim
`signature(x = "markovchain")`

: method to get the size- names
`signature(x = "markovchain")`

: method to get the names of states- names<-
`signature(x = "markovchain", value = "character")`

: method to set the names of states- initialize
`signature(.Object = "markovchain")`

: initialize method- plot
`signature(x = "markovchain", y = "missing")`

: plot method for`markovchain`

objects- predict
`signature(object = "markovchain")`

: predict method`signature(x = "markovchain")`

: print method.- show
`signature(object = "markovchain")`

: show method.- states
`signature(object = "markovchain")`

: returns the names of states (as`names`

.- steadyStates
`signature(object = "markovchain")`

: method to get the steady vector.- summary
`signature(object = "markovchain")`

: method to summarize structure of the markov chain- transientStates
`signature(object = "markovchain")`

: method to get the transient states.- t
`signature(x = "markovchain")`

: transpose matrix- transitionProbability
`signature(object = "markovchain")`

: transition probability

### Warning

Validation method is used to assess whether either columns or rows totals to one. Rounding is used up to 5th decimal. If state names are not properly defined for a probability `matrix`

, coercing to `markovhcain`

object leads to overriding states name with artificial "s1", "s2", ... sequence

### Note

`markovchain`

object are written in S4 Classes.

### Author(s)

Giorgio Spedicato

### References

A First Course in Probability (8th Edition), Sheldon Ross, Prentice Hall 2010

### See Also

`markovchainSequence`

,`markovchainFit`

### 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 | ```
#show markovchain definition
showClass("markovchain")
#create a simple Markov chain
transMatr<-matrix(c(0.4,0.6,.3,.7),nrow=2,byrow=TRUE)
simpleMc<-new("markovchain", states=c("a","b"),
transitionMatrix=transMatr,
name="simpleMc")
#power
simpleMc^4
#some methods
steadyStates(simpleMc)
absorbingStates(simpleMc)
simpleMc[2,1]
t(simpleMc)
is.irreducible(simpleMc)
#conditional distributions
conditionalDistribution(simpleMc, "b")
#example for predict method
sequence<-c("a", "b", "a", "a", "a", "a", "b", "a", "b", "a", "b", "a", "a", "b", "b", "b", "a")
mcFit<-markovchainFit(data=sequence)
predict(mcFit$estimate, newdata="b",n.ahead=3)
#direct conversion
myMc<-as(transMatr, "markovchain")
#example of summary
summary(simpleMc)
## Not run: plot(simpleMc)
``` |