r - 问题 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 开始;所以我会有一个矩阵或向量,它除以转换的数量。
解决方案
推荐阅读
- python - 根据两种不同的分布生成一个样本
- python - 如何在 Python 中有条件地循环?
- javascript - 以动态列数在表格中显示数组
- linux - 有没有办法设置“另一个” PATH 变量?
- maven - 如何在 Maven 发布插件中设置 SCM 标签?
- javascript - 正则表达式匹配开头和结尾没有中间
- c++ - 具有编译器删除的默认特殊成员函数的格式良好的类定义示例
- ruby-on-rails - has_many 上的acts_as_list :通过和 sortablejs
- mysql - 如何从连接中排除某些字符串
- google-cloud-automl - 从 Automl Vision 模型启动导出模型时出错