我模擬了markov鏈中的1000個步驟,總共有6個不同的狀態(0-5),我們從狀態5開始。通過條形圖,我們可以看到我們有多少次處於每種狀態。Markov Chain之前的狀態
然而,我想知道的是,當狀態1之前的那一步,我們進入狀態5的次數是多少次。因爲我們在狀態1中共有26次,所以最多的答案是26有沒有辦法看到我們在進入狀態5之前處於狀態1的次數?
spec_sim <- function(x){
u <- runif(1)
if(x==0){
if(u < 0.5){
y <- 3
} else {
y <- 5
}
} else if(x==1){
if(u<0.1){
y <- 0
} else if(u < 0.1 + 0.1){
y <- 1
} else if(u < 0.1 + 0.1 + 0.4){
y <- 3
} else {
y <- 5}
} else if(x==2){
if(u<0.2){
y <- 1
} else if(u < 0.2 + 0.2){
y <- 2
} else if(u < 0.2 + 0.2 + 0.3){
y <- 3
} else {
y <- 5
}
} else if(x==3){
if(u<0.3){
y <- 2
} else if(u < 0.3 + 0.5){
y <- 3
} else{
y <- 5
}
} else if(x==4){
if(u<0.4){
y <- 3
} else {
y <- 4
}
} else if(x==5){
if(u<0.4){
y <- 4
} else {
y <- 5
}
}
return(y)
}
set.seed(1)
results <- numeric(1001)
for(i in 2:length(results)){
results[i]<- spec_sim(results[i - 1])
}
results <- results[-1]
barplot(table(results), xlab="states", ylab="frequency",
main="1000 simuleringar av en Markovkedja")
table(results)
謝謝你把時間花在我的問題上。
你好, 長度(其中(差異(結果)== 4)) 只是爲了確保,這是我們在狀態1之前直接進入狀態5之前的次數? 你能解釋一下代碼嗎?例如,爲什麼它== 4? – PeterNiklas
我編輯了我的答案並添加了一個解釋。 –