本文内容主要参考:李航老师的《统计学习方法
以下介绍离散状态马尔可夫链的性质。可以自然推广到连续状态马尔可夫链。

一、不可约


直观上,一个不可约的马尔可夫链,从任意状态出发,当经过充分长时间后,可以到达任意状态。马尔可夫链(Markov chain)的基本认识中的例19.3中的马尔可夫链是不可约的,而下面的例19.5的马尔可夫链是可约的。


求平稳分布:

from sympy import *
x1, x2, x3 = symbols('x1, x2, x3')
I = x1 + x2 + x3 -1
P = Matrix([[0, 1/2, 0], [1, 0, 0], [0, 1/2, 1]])
S = Matrix([[x1], [x2], [x3]])print(solve([P*S-S, I],[x1,x2,x3]))

结果:

{x3: 1.00000000000000, x2: 0.0, x1: 0.0}

求之后的状态:

#离散状态马尔可夫链
from numpy import *P = array([[0, 1/2, 0], [1, 0, 0], [0, 1/2, 1]])    #转移矩阵
Init_State = array([[1], [0], [0]])   #初始状态分布n = 25
for i in range(1,n+1):S = dot(P, Init_State)    #dot()是点乘函数print(f'第{i}个状态:{S.T}')    #T的作用是将矩阵转置,将n*1变为1*nInit_State = S

结果:

第1个状态:[[0. 1. 0.]]
第2个状态:[[0.5 0.  0.5]]
第3个状态:[[0.  0.5 0.5]]
第4个状态:[[0.25 0.   0.75]]
第5个状态:[[0.   0.25 0.75]]
第6个状态:[[0.125 0.    0.875]]
第7个状态:[[0.    0.125 0.875]]
第8个状态:[[0.0625 0.     0.9375]]
第9个状态:[[0.     0.0625 0.9375]]
第10个状态:[[0.03125 0.      0.96875]]
第11个状态:[[0.      0.03125 0.96875]]
第12个状态:[[0.015625 0.       0.984375]]
第13个状态:[[0.       0.015625 0.984375]]
第14个状态:[[0.0078125 0.        0.9921875]]
第15个状态:[[0.        0.0078125 0.9921875]]
第16个状态:[[0.00390625 0.         0.99609375]]
第17个状态:[[0.         0.00390625 0.99609375]]
第18个状态:[[0.00195312 0.         0.99804688]]
第19个状态:[[0.         0.00195312 0.99804688]]
第20个状态:[[9.76562500e-04 0.00000000e+00 9.99023438e-01]]
第21个状态:[[0.00000000e+00 9.76562500e-04 9.99023438e-01]]
第22个状态:[[4.88281250e-04 0.00000000e+00 9.99511719e-01]]
第23个状态:[[0.00000000e+00 4.88281250e-04 9.99511719e-01]]
第24个状态:[[2.44140625e-04 0.00000000e+00 9.99755859e-01]]
第25个状态:[[0.00000000e+00 2.44140625e-04 9.99755859e-01]]

如果采用平稳分布作为初始分布:

#离散状态马尔可夫链
from numpy import *P = array([[0, 1/2, 0], [1, 0, 0], [0, 1/2, 1]])    #转移矩阵
Init_State = array([[0], [0], [1]])   #初始状态分布n = 5
for i in range(1,n+1):S = dot(P, Init_State)    #dot()是点乘函数print(f'第{i}个状态:{S.T}')    #T的作用是将矩阵转置,将n*1变为1*nInit_State = S

结果:

第1个状态:[[0. 0. 1.]]
第2个状态:[[0. 0. 1.]]
第3个状态:[[0. 0. 1.]]
第4个状态:[[0. 0. 1.]]
第5个状态:[[0. 0. 1.]]

二、非周期(周期性)



直观上,一个非周期性的马尔可夫链,不存在一个状态,从这一个状态出发,再返回到这个状态时所经历的时间长呈一定的周期性。例19.3中的马尔可夫链是非周期的,下面的例19.6中的马尔可夫链是周期的。


平稳分布:

from sympy import *
x1, x2, x3 = symbols('x1, x2, x3')
I = x1 + x2 + x3 -1
P = Matrix([[0, 0, 1], [1, 0, 0], [0, 1, 0]])
S = Matrix([[x1], [x2], [x3]])print(solve([P*S-S, I],[x1,x2,x3]))

结果:

{x3: 1/3, x2: 1/3, x1: 1/3}

求之后的状态进行验证:

#离散状态马尔可夫链
from numpy import *P = array([[0, 0, 1], [1, 0, 0], [0, 1, 0]])    #转移矩阵
Init_State = array([[1], [0], [0]])   #初始状态分布n = 10
for i in range(1,n+1):S = dot(P, Init_State)    #dot()是点乘函数print(f'第{i}个状态:{S.T}')    #T的作用是将矩阵转置,将n*1变为1*nInit_State = S

结果:

第1个状态:[[0 1 0]]
第2个状态:[[0 0 1]]
第3个状态:[[1 0 0]]
第4个状态:[[0 1 0]]
第5个状态:[[0 0 1]]
第6个状态:[[1 0 0]]
第7个状态:[[0 1 0]]
第8个状态:[[0 0 1]]
第9个状态:[[1 0 0]]
第10个状态:[[0 1 0]]

定理19.2: 不可约且非周期的有限状态马尔可夫链,有唯一平稳分布存在。

三、正常返


直观上,一个正常返的马尔可夫链,其中任意一个状态,从其他任意一个状态出发,当时间趋于无穷时,首次转移到这个状态的概率不为0。下面的例19.7中的马尔可夫链根据不同条件是正常返的或不是正常返的。



定理19.3:不可约、非周期且正常返的马尔可夫链,有唯一平稳分布存在。

四、遍历定理

下面叙述马尔可夫链的遍历定理。


遍历定理的直观解释:满足相应条件的马尔可夫链,当时间趋于无穷时,马尔可夫链的状态分布趋近于平稳分布,随机变量的函数的样本均值以概率1收敛于该函数的数学期望。样本均值可以认为是时间均值,而数学期望是空间均值。遍历定理的三个条件:不可约、非周期、正常返,保证了当时间趋于无穷时到达任意一个状态的概率不为0。

五、可逆马尔可夫链


直观上,如果有可逆的马尔可夫链,那么以该马尔可夫链的平稳分布作为初始分布,进行随机状态转移,无论是面向未来还是面向过去,任何一个时刻的状态分布都是该平稳分布。例19.3中的马尔可夫链是可逆的,下面的例19.8中的马尔可夫链是不可逆的。


求平稳分布:

from sympy import *
x1, x2, x3 = symbols('x1, x2, x3')
I = x1 + x2 + x3 -1
P = Matrix([[1/4, 1/2, 1/4], [1/4, 0, 1/2], [1/2, 1/2, 1/4]])
S = Matrix([[x1], [x2], [x3]])print(solve([P*S-S, I],[x1,x2,x3]))

结果:

{x3: 0.400000000000000, x2: 0.280000000000000, x1: 0.320000000000000}

求状态:

#离散状态马尔可夫链
from numpy import *P = array([[0, 0, 1], [1, 0, 0], [0, 1, 0]])    #转移矩阵
Init_State = array([[0.32], [0.28], [0.4]])   #初始状态分布n = 10
for i in range(1,n+1):S = dot(P, Init_State)    #dot()是点乘函数print(f'第{i}个状态:{S.T}')    #T的作用是将矩阵转置,将n*1变为1*nInit_State = S

结果:

第1个状态:[[0.4  0.32 0.28]]
第2个状态:[[0.28 0.4  0.32]]
第3个状态:[[0.32 0.28 0.4 ]]
第4个状态:[[0.4  0.32 0.28]]
第5个状态:[[0.28 0.4  0.32]]
第6个状态:[[0.32 0.28 0.4 ]]
第7个状态:[[0.4  0.32 0.28]]
第8个状态:[[0.28 0.4  0.32]]
第9个状态:[[0.32 0.28 0.4 ]]
第10个状态:[[0.4  0.32 0.28]]

此马尔可夫链是不可逆的,即不满足细致平稳方程。

求平稳分布:

from sympy import *
x1, x2, x3 = symbols('x1, x2, x3')
I = x1 + x2 + x3 -1
P = Matrix([[1/2, 1/2, 1/4], [1/4, 0, 1/4], [1/4, 1/2, 1/2]])
S = Matrix([[x1], [x2], [x3]])print(solve([P*S-S, I],[x1,x2,x3]))

结果:

{x3: 0.400000000000000, x2: 0.200000000000000, x1: 0.400000000000000}

求之后的状态分布:

#离散状态马尔可夫链
from numpy import *P = array([[1/2, 1/2, 1/4], [1/4, 0, 1/4], [1/4, 1/2, 1/2]])    #转移矩阵
Init_State = array([[0.4], [0.2], [0.4]])   #初始状态分布n = 10
for i in range(1,n+1):S = dot(P, Init_State)    #dot()是点乘函数print(f'第{i}个状态:{S.T}')    #T的作用是将矩阵转置,将n*1变为1*nInit_State = S

结果:

第1个状态:[[0.4 0.2 0.4]]
第2个状态:[[0.4 0.2 0.4]]
第3个状态:[[0.4 0.2 0.4]]
第4个状态:[[0.4 0.2 0.4]]
第5个状态:[[0.4 0.2 0.4]]
第6个状态:[[0.4 0.2 0.4]]
第7个状态:[[0.4 0.2 0.4]]
第8个状态:[[0.4 0.2 0.4]]
第9个状态:[[0.4 0.2 0.4]]
第10个状态:[[0.4 0.2 0.4]]

此马尔可夫链是可逆的,即满足细致平稳方程。

马尔可夫链(Markov chain)的性质相关推荐

  1. 马尔可夫链(Markov Chain)是什么?通俗易懂

    马尔可夫链(Markov Chain) 马尔可夫链经常出现在机器学习的概念中,因为生活中很多情况都可以用马尔可夫链建模,我们先给出数学化的定义,然后再举个生活化的例子与数学公式相对应,就可以理解马尔可 ...

  2. 马尔可夫链(Markov Chain),隐马尔可夫模型

    马尔可夫链: 参考链接: https://blog.csdn.net/weixin_42509541/article/details/123332839 我对它的理解就是: 针对的数据是一组离散随机变 ...

  3. R语言使用马尔可夫链Markov Chain, MC来模拟抵押违约

    这篇文章的目的是将我在夜班学习的材料与我的日常工作和R相结合. 如果我们有一些根据固定概率随时间在状态之间切换的对象,我们可以使用马尔可夫链 * 来模拟该对象的长期行为. 一个很好的例子是抵押贷款.在 ...

  4. Probability, Matringale,Markov Chain, MCMC

    一.基本知识 1. 条件概率 条件概率是指在某件事情已经发生的前提下,另一件事情在此基础上发生的概率,举例来说P(A丨B)表示B发生的基础上,A也发生的概率,基本公式为: 2. 条件期望 在上述概率下 ...

  5. martingale、markov chain、Monte Carlo、MCMC

    文章结构如下: 1: MCMC 1.1 MCMC是什么 1.2 为什么需要MCMC 2: 蒙特卡罗 2.1 引入 2.2 均匀分布,Box-Muller 变换 2.3 拒绝接受采样(Acceptanc ...

  6. 马尔可夫链 (Markov Chain)是什么鬼

    作者:红猴子 链接:https://www.zhihu.com/question/26665048/answer/157852228 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  7. 马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC)

    文章目录 1. 蒙特卡罗法 2. 马尔可夫链 3. 马尔可夫链蒙特卡罗法 4. Metropolis-Hastings 算法 5. 吉布斯抽样 蒙特卡罗法(Monte Carlo method),也称 ...

  8. 对马尔可夫链(Markov Chain, MC)的学习

    满足当前时间之后的状态只与当前有关,与过去无关的性质称为马尔可夫性. 随机过程满足马尔可夫性则称为马尔可夫过程.   当了解完马尔可夫性后,下面来说说马尔可夫链.马尔可夫链(Markov Chain, ...

  9. 马尔可夫链(Markov chain)

    马尔可夫链(Markov chain)是数学建模和机器学习常用的工具(据说尤其在NLP中,我目前尚不了解很多,但之前曾看过一篇用简单的马尔可夫链实现一个鸡汤生成器的博文,有兴趣的朋友可以看看).这篇文 ...

最新文章

  1. 马斯克发布脑机接口系统!芯片直连大脑,激光开颅放置,可用iPhone操控,网友炸了:这就是黑客帝国...
  2. mac mysql 5.7.9安装教程_mac系统OS X10.10版本安装最新5.7.9mysql的方法_MySQL
  3. jsp中有关于超链接的问题
  4. [bzoj4823][洛谷P3756][Cqoi2017]老C的方块
  5. 面试题40:数组中只出现一次的数字
  6. cloud foundry_介绍“又一个” Cloud Foundry Gradle插件
  7. 服务不支持chkconfig
  8. 橙瓜发布2018网络小说风云榜年度榜,顶级大神作家的无声角逐
  9. FlashFXP V3.3.9(真正破解) 绿色版
  10. stm32 bootloader启动正常,APP程序会在时钟配置出错原因分析
  11. 办公室计算机打印机共享,办公室共享连接打印机全攻略,办公人必会操作技能...
  12. 红外线体温计详细制作方案
  13. js+css实现瀑布流
  14. android studio连接雷电模拟器调试
  15. OpenLayer仿天地图多时相
  16. 天猫精灵--智能家居接入(一)
  17. 算法笔记之回溯法(一)——溯洄从之,道阻且长;溯游从之,宛在水中央。
  18. C/C++图书信息管理系统水电管理信息系统
  19. Pytorch使用GPU/CPU处理电子鼻数据
  20. 微前端之实现方式和项目分析、实践主子应用启动配置、vue2、vue3、react15、react16 子应用的配置

热门文章

  1. python排序获得秩 (index)
  2. 快速对齐word目录页码
  3. linux系统调用创建无名管道,无名管道系统调用
  4. 横杠转义(正则表达)
  5. 二手交易网站,校园二手交易系统,校园二手交易系统毕业设计
  6. 中国互联网企业员工平均年龄出炉:字节跳动、拼多多最年轻仅 27 岁
  7. 在美国读书的体会 [转]
  8. 计算机技术应用广泛以下属于科学计算方面,2016年12月计算机二级MSoffice选择题习题...
  9. lbaas l7 policy
  10. 计算机开始处无法搜索内容,win10系统电脑搜索功能无法找到内容的解决方法