File: quickStart.R

package info (click to toggle)
r-cran-markovchain 0.10.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,864 kB
  • sloc: cpp: 2,847; sh: 13; makefile: 2
file content (54 lines) | stat: -rw-r--r-- 1,545 bytes parent folder | download | duplicates (3)
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
# TODO: Add comment
# 
# Author: Giorgio Spedicato
###############################################################################


#creates some markovchain objects
statesNames=c("a","b")
mcA<-new("markovchain", transitionMatrix=matrix(c(0.7,0.3,0.1,0.9),byrow=TRUE, nrow=2, 
				dimnames=list(statesNames,statesNames)
		))
mcB<-new("markovchain", states=c("a","b","c"), transitionMatrix=
				matrix(c(0.2,0.5,0.3,
								0,1,0,
								0.1,0.8,0.1),nrow=3, byrow=TRUE))
mcC<-new("markovchain", states=c("a","b","c","d"), 
		transitionMatrix=matrix(c(0.25,0.75,0,0,0.4,
						0.6,0,0,0,0,0.1,0.9,0,0,0.7,0.3), nrow=4, byrow=TRUE)
)
mcD<-new("markovchain", transitionMatrix=matrix(c(0,1,0,1), nrow=2,byrow=TRUE))

#apply some methods

testConversion<-as(mcC, "data.frame")
markovD<-t(mcC)
steadyStates(mcC)
steadyStates(mcC)

#perform some fitting

sequence<-c("a", "b", "a", "a", "a", "a", "b", "a", "b", "a", "b", "a", "a", "b", "b", "b", "a")
mcFit<-markovchainFit(data=sequence,byrow=FALSE)


#canonic form

#from https://math.dartmouth.edu/archive/m20x06/public_html/Lecture14.pdf

P<-zeros(5)
P[1,1]<-P[5,5]<-1
P[2,1]<-P[2,3]<-0.5
P[3,2]<-P[3,4]<-0.5
P[4,3]<-P[4,5]<-0.5
mcP<-as(P,"markovchain")
mcPCan<-canonicForm(mcP)


# coercing markov chains to sparse matrix forth and back
require(Matrix)
ciauz<-c(0,.5,.5,1,0,0,.2,0,.8)
matrix(ciauz, nrow=3, byrow=TRUE)
sparse<-as(matrix(ciauz, nrow=3, byrow=TRUE),"sparseMatrix")
mc<-as(sparse,"markovchain")
sparse2<-as(mc,"sparseMatrix")