马尔科夫链

假设我们当前股市的概率分布为:[0.3,0.4,0.3],即30%概率的牛市,40%概率的熊盘与30%的横盘。然后这个状态作为序列概率分布的初始状态t0t0,将其带入这个状态转移矩阵计算t1,t2,t3...t1,t2,t3...的状态。代码如下:

import numpy as np
matrix = np.matrix([[0.9,0.075,0.025],[0.15,0.8,0.05],[0.25,0.25,0.5]], dtype=float)
vector1 = np.matrix([[0.3,0.4,0.3]], dtype=float)
for i in range(100):
    vector1 = vector1*matrix
    print("Current round:" , i+1)
    print(vector1)

结果:

 

 更换初始状态,换位【0.7,0.1,0.2】

import numpy as np
matrix = np.matrix([[0.9,0.075,0.025],[0.15,0.8,0.05],[0.25,0.25,0.5]], dtype=float)
vector1 = np.matrix([[0.7,0.1,0.2]], dtype=float)
for i in range(100):
    vector1 = vector1*matrix
    print("Current round:" , i+1)
    print(vector1)

结果:

 从第57轮开始,结果趋向于一个稳定的概率分布【0.625,0.3125,0.0625】,所以马尔科夫链模型的状态转移矩阵收敛到的稳定概率分布与我们的初始状态概率分布无关,此性质对于连续状态也适应,

同时,对于一个确定的状态转移矩阵P,它的n次幂Pn在当n大于一定的值的时候也可以发现是确定的。

代码:

import numpy as np
matrix = np.matrix([[0.9,0.075,0.025],[0.15,0.8,0.05],[0.25,0.25,0.5]], dtype=float)
for i in range(10):
    matrix = matrix*matrix
    print("Current round:" , i+1)
    print(matrix)

结果:

 当n>=6时,Pn的值稳定不再变化,这和我们前面的稳定分布是一致的。这个性质同样不光是离散状态,连续状态时也成立。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值