markovchain-class {markovchain} | R Documentation |
Markov Chain class
Description
The S4 class that describes markovchain
objects.
Arguments
states |
Name of the states. Must be the same of |
byrow |
TRUE or FALSE indicating whether the supplied matrix is either stochastic by rows or by columns |
transitionMatrix |
Square transition matrix |
name |
Optional character name of the Markov chain |
Creation of objects
Objects can be created by calls of the form new("markovchain", states, byrow, transitionMatrix, ...)
.
Methods
- *
signature(e1 = "markovchain", e2 = "markovchain")
: multiply twomarkovchain
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 bymarkovchain
multiplication- [
signature(x = "markovchain", i = "ANY", j = "ANY", drop = "ANY")
: ...- ^
signature(e1 = "markovchain", e2 = "numeric")
: power of amarkovchain
object- ==
signature(e1 = "markovchain", e2 = "markovchain")
: equality of twomarkovchain
object- !=
signature(e1 = "markovchain", e2 = "markovchain")
: non-equality of twomarkovchain
object- absorbingStates
signature(object = "markovchain")
: method to get absorbing states- canonicForm
signature(object = "markovchain")
: return amarkovchain
object into canonic form- coerce
signature(from = "markovchain", to = "data.frame")
: coerce method from markovchain todata.frame
- conditionalDistribution
signature(object = "markovchain")
: returns the conditional probability of subsequent states given a state- coerce
signature(from = "data.frame", to = "markovchain")
: coerce method fromdata.frame
tomarkovchain
- coerce
signature(from = "table", to = "markovchain")
: coerce method fromtable
tomarkovchain
- coerce
signature(from = "msm", to = "markovchain")
: coerce method frommsm
tomarkovchain
- coerce
signature(from = "msm.est", to = "markovchain")
: coerce method frommsm.est
(but only from a Probability Matrix) tomarkovchain
- coerce
signature(from = "etm", to = "markovchain")
: coerce method frometm
tomarkovchain
- coerce
signature(from = "sparseMatrix", to = "markovchain")
: coerce method fromsparseMatrix
tomarkovchain
- coerce
signature(from = "markovchain", to = "igraph")
: coercing toigraph
objects- coerce
signature(from = "markovchain", to = "matrix")
: coercing tomatrix
objects- coerce
signature(from = "markovchain", to = "sparseMatrix")
: coercing tosparseMatrix
objects- coerce
signature(from = "matrix", to = "markovchain")
: coercing tomarkovchain
objects frommatrix
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 formarkovchain
objects- predict
signature(object = "markovchain")
: predict methodsignature(x = "markovchain")
: print method.- show
signature(object = "markovchain")
: show method.- sort
signature(x = "markovchain", decreasing=FALSE)
: sorting the transition matrix.- states
signature(object = "markovchain")
: returns the names of states (asnames
.- 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
Note
-
markovchain
object are backed by S4 Classes. Validation method is used to assess whether either columns or rows totals to one. Rounding is used up to
.Machine$double.eps * 100
. If state names are not properly defined for a probabilitymatrix
, coercing tomarkovhcain
object leads to overriding states name with artificial "s1", "s2", ... sequence. In addition, operator overloading has been applied for+,*,^,==,!=
operators.
Author(s)
Giorgio Spedicato
References
A First Course in Probability (8th Edition), Sheldon Ross, Prentice Hall 2010
See Also
markovchainSequence
,markovchainFit
Examples
#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)