首页 > 解决方案 > 问题 R:使用蒙特卡罗模拟的马尔可夫链的平稳分布

问题描述

使用 Monte Carlo 模拟,估计极限分布,它是具有两种可能初始状态的马尔可夫链的平稳分布:

a)X0 = 1

b)X0 = 2

#transition matrix
 P = matrix(c(.5, 0, .5, 0, .5, .5, 0, 0, .3), nrow = 3, ncol = 3,
               byrow = TRUE)
# msim_cadena.markov is a created function that is composed by:
# m is number of chains to simulate
# number of transitions
#initial state     
 msim_cadena.markov<- function(m, num_trans, x0, P){
 P_n<- matrix(0,m,(num_trans+1))
 for(i in 1:m){
 P_n[i,]<- sim1_cadena.markov(num_trans, x0, P)
   }
  estados<- numeric(num_trans+1)
  for(i in 0:num_trans) estados[i+1]<- paste('step',i)
  colnames(P_n)<- estados
  P_n
 }
#stationary distribution
# runs are number of simulations
 stat_distr<-function(runs, num_trans)
 x0_1<- x0_1<- t(msim_cadena.markov(num_sims, num_trans, 1, P))
 x0_1<- as.data.frame(x0_1)
 initial.state_1<-length/num_trans
 # I am not sure length of what

平稳分布是每个状态的转换百分比,从 1 或 2 开始;所以我会有一个矩阵或向量,它除以转换的数量。

标签: rdistributionmontecarlomarkov-chains

解决方案


推荐阅读