Простая цепь Маркова в R (визуализация) - PullRequest
12 голосов
/ 06 ноября 2011

Я бы хотел создать простую цепочку марков первого порядка в R. Я знаю, что есть пакеты, подобные MCMC, но не смог найти один, чтобы отобразить его графически. Это вообще возможно? Было бы неплохо, если бы при наличии матрицы перехода и начального состояния можно было визуально увидеть путь через цепочку Маркова (возможно, я должен сделать это вручную ...).

Спасибо.

Ответы [ 4 ]

10 голосов
/ 06 ноября 2011

Здесь показано, как применить матрицу случайных переходов к определенному начальному вектору: c (1,0,0,0):

set.seed(123)
tmat <- matrix(rnorm(16)^2,ncol=4) 
   # need entries to be positive, could have used abs()
tmat <- tmat/rowSums(tmat) # need the rows to sum to 1
tmat
            [,1]       [,2]       [,3]        [,4]
[1,] 0.326123580 0.01735335 0.48977444 0.166748625
[2,] 0.016529424 0.91768404 0.06196453 0.003822008
[3,] 0.546050789 0.04774713 0.33676288 0.069439199
[4,] 0.001008839 0.32476060 0.02627217 0.647958394
require(expm)   # for the %^% function
matplot( t(         # need to transpose to get arguments to matplot correctly
       sapply(1:20, function(x) matrix(c(1,0,0,0), ncol=4) %*% (tmat %^% x) ) ) )

Вы видите, что она приближается к равновесию: enter image description here

4 голосов
/ 07 ноября 2011

Пакет coda (http://cran.r -project.org / web / packages / coda / index.html ) содержит инструменты для анализа результатов MCMC, включая некоторые функции построения графиков.

2 голосов
/ 10 марта 2015

Вы можете использовать пакет markovchain R, который моделирует цепочки Маркова с дискретным временем и содержит средства построения графиков на основе пакета igraph.

library(markovchain) #loading the package
myMatr<-matrix(c(0,.2,.8,.1,.8,.1,.3,0,.7),byrow=TRUE,nrow = 3) #defining a transition matrix
rownames(myMatr)<-colnames(myMatr)<-c("a","b","c")
myMc<-as(myMatr, "markovchain")
plot(myMc)
2 голосов
/ 06 ноября 2011

Возможно, этот запрос на Biostar может помочь вам: Визуализация файлов HMM HMMER3 .Он указывает на два внешних приложения, LogoMat-M и HMMeditor , для визуализации скрытых марковских моделей (pHMM).

...