|||
## 分析:这是一个时间齐次马尔科夫过程,可根据转移矩阵的初始定义进行推断
## 第一问
## 根据题目写出转移矩阵
T <- matrix(c(90, 4 , 2 , 4 ,
7 , 86, 1 , 6 ,
8 , 7 , 80, 5 ,
10, 2 , 3 , 85 )/100,
nrow = 4, ncol = 4, byrow = TRUE)
# 初始矩阵
p <- matrix(c(19, 14, 56, 11)/100, nrow = 1, ncol = 4, byrow = TRUE)
## 下一年的概率应该为当年分配概率和转移矩阵的乘积
## 2003
p1 <- p%*%T
## 2004
p2 <- p1%*%T
## 2005
p3 <- p2%*%T
## 2006
p4 <- p3%*%T
## 2006年乘坐公交车出行的总人数应为
res <- 468 * p4[1]
## 第二问,用计算机模拟的方法,通过对转移矩阵的平衡状态近似求解
## 初始化一个空向量
s <- c()
## 假设一个人在初始时刻选择1公交车出行
s[1] <- 1
## 则其在t1时刻选择任何一种出行方式的概率如下
T[s[j-1],]
## 但是他选择的出行方式可以是随机的,故用sample按照前一个状态的概率,随机抽取一次
res <- sample(1:4, size = 1, prob = T[s[j-1],])
## 抽取的结果,就是t1时的状态
## 而 t2时的状态只受到t1时状态的影响,因此又回到T[s[j-1],],至此完成一次模拟
## 每一次抽样都是只受到前一次抽样的影响
for (j in 2:50000)
s[j] <- sample(1:4, size = 1, prob = T[s[j-1],])
## 在进行多次模拟后,马尔可夫链逐渐收敛。
### 模拟50000代的概率分配如下
res <- table(s[1:50000])/50000
names(res) <- c("bus", "bicycle", "walk", "other")
## 题外
##### 无论假设s[1] = 1,2,3 还是4,进行多次模拟后,所得的结果是非常接近的。这也表明,马尔可夫过程的平衡状态与初始值无关。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-26 18:38
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社