我想在R中做一個簡單的一階馬爾可夫鏈。我知道有像MCMC這樣的軟件包,但找不到能以圖形方式顯示的軟件包。這甚至有可能嗎?如果給定一個轉換矩陣和一個初始狀態,可以很好地看到馬爾可夫鏈中的路徑(也許我必須手動完成這個操作)。R中的簡單馬爾可夫鏈(可視化)
謝謝。
我想在R中做一個簡單的一階馬爾可夫鏈。我知道有像MCMC這樣的軟件包,但找不到能以圖形方式顯示的軟件包。這甚至有可能嗎?如果給定一個轉換矩陣和一個初始狀態,可以很好地看到馬爾可夫鏈中的路徑(也許我必須手動完成這個操作)。R中的簡單馬爾可夫鏈(可視化)
謝謝。
也許這個查詢在映泰可以幫助你:Visualizing HMM files of HMMER3。它指向兩個外部應用程序LogoMat-M和HMMeditor,用於可視化Profile Hidden Markov模型(pHMM)。
這顯示瞭如何將隨機轉換矩陣應用到特定的起始載體: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))))
你可以看到它達到平衡:
我得到'錯誤:意外'['in'[「 執行停止 ' –
我很抱歉聽到這個消息。代碼仍然運行正確的輸出在R 3.1.2 –
嗯......似乎在Rstudio中工作(雖然它也打印'錯誤:意外'['在'[「'),但不是當我執行它作爲Rscript通過bash。你有什麼想法,爲什麼? –
包尾(http://cran.r-project.org/web/packages/coda/index.html)具有分析MCMC結果的工具,包括一些繪圖功能。
謝謝你們,那是我搜索的! – user1028531
您可以使用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)
我不熟悉這方面的包,但如果你不能找到你喜歡的罐頭繪圖命令,你總是可以自己提取矩陣和繪製出來:http://stackoverflow.com/questions/5453336/r-plot-correlation-matrix-into-a-graph –
謝謝。這是另一個想法,如果沒有這樣的東西存在:)。 – user1028531
稍微澄清一點或者你想要的東西的一個粗略例子會有幫助:下面的答案都在地圖上,因爲人們以不同的方式解釋你的問題。 –