2012年03月21日

一个简单的马尔可夫链

已有 917 次阅读 2011-12-1 15:04 |个人分类:统计分析|系统分类:科研笔记|关键词:马尔可夫链,随机过程,转移矩阵

一个简单的马尔可夫链

在一个随机过程中,如果事件发生概率在t时刻所处的状态为已知时,它在t + 1时刻只与t时刻的状态有关,而与之前所处的状态无关,则称该过程具有马尔可夫性。

时间和状态都是离散的马尔可夫过程称为马尔可夫链。马尔可夫链在经济学,社会学,生命科学领域有着广泛的应用。这里举例说明。

例子: 姜华平、陈海泳对某城市2002年居民出行方式所占比例进行了调查。结果如下
公交车bus,自行车Bicycle,步行walk,其他other
19%, 14%, 56%, 11%

本时期各出行方式转移概率如下表(%)
       bus    bicycle  walk  other
Bus      90                   
bicycle      86               
walk             80           
other    10             85          

假设该城市居民每天出行总人数为468万人次,出行人数不变,各出行方式的转移概率也不变,
问题: 
(1) 预测2006年该城市乘公交出行的人数
(2) 经历足够长的时间,求出行方式的比例是多少?

解:

## 分析:这是一个时间齐次马尔科夫过程,可根据转移矩阵的初始定义进行推断

## 第一问
## 根据题目写出转移矩阵


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(19145611)/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,进行多次模拟后,所得的结果是非常接近的。这也表明,马尔可夫过程的平衡状态与初始值无关。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值