Nothing
context("Classification of states")
A <- structure(c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0.5, 0.3, 0.3, 0, 0, 0, 0, 0, 0.5, 0.7, 0.7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0.3, 0.4, 0, 0, 0, 0, 0, 0.4, 0, 0.5, 0, 0, 0, 0, 0,
0.6, 0.7, 0, 0, 0, 0, 0, 0, 0, 0, 0.1, 1), .Dim = c(8L, 8L), .Dimnames = list(
c("1", "2", "3", "4", "5", "6", "7", "8"), c("1", "2", "3",
"4", "5", "6", "7", "8")))
mchain <- new("markovchain", transitionMatrix=A)
#summary(mchain)
test_that("States are those that should be", {
expect_equal(recurrentClasses(mchain), list(c("3", "4"), c("8")))
expect_equal(transientStates(mchain), c("1", "2", "5", "6", "7"))
expect_equal(absorbingStates(mchain), "8")
})
#https://www.math.ucdavis.edu/~gravner/MAT135B/materials/ch13.pdf
mcMatr1<-markovchain:::zeros(3)
mcMatr1[1,]<-c(0.5,0.5,0)
mcMatr1[2,]<-c(0.5,0.25,0.25)
mcMatr1[3,]<-c(0,1/3,2/3)
mc1<-as(mcMatr1,"markovchain")
test_that("States are those that should be", {
expect_equal(is.irreducible(mc1),TRUE)
})
mcMatr2<-matrix(c(0, 0, 1/2, 1/2,1, 0 ,0, 0,0, 1, 0, 0,0, 1, 0, 0),ncol = 4,byrow=TRUE)
mc2<-as(mcMatr2,"markovchain")
test_that("States are those that should be", {
expect_equal(recurrentClasses(mc2),list(c("s1","s2","s3","s4")))
})
mcMatr3<-matrix(c(
0,1,0,0,0,0,
0.4,0.6,0,0,0,0,
0.3,0,0.4,0.2,0.1,0,
0,0,0,0.3,0.7,0,
0,0,0,0.5,0,0.5,
0,0,0,0.3,0,0.7),nrow = 6,byrow=TRUE)
mc3<-as(mcMatr3,"markovchain")
recurrentClasses(mc3)
transientStates(mc3)
#canonicForm(mc3)
test_that("States are those that should be", {
expect_equal(recurrentClasses(mc3),list(c("s1","s2"),c("s4","s5","s6") ))
expect_equal(transientStates(mc3),"s3")
})
mcMatr4<-markovchain:::zeros(5)
mcMatr4[1:2,1:2]<-0.5*markovchain:::ones(2)
mcMatr4[5,1]<-1
mcMatr4[3,3]<-1
mcMatr4[4,3:4]<-0.5
mc4<-as(mcMatr4,"markovchain")
test_that("States are those that should be", {
expect_equal(recurrentClasses(mc4),list(c("s1","s2"),c("s3")))
expect_equal(absorbingStates(mc4),"s3")
expect_equal(transientStates(mc4),c("s4","s5"))
}
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.