假设我们当前股市的概率分布为:[0.3,0.4,0.3],即30%概率的牛市,40%概率的熊盘与30%的横盘

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*matrixprint("Current round:" , i+1)print (vector1)

第60轮开始一直保持在[0.625   0.3125  0.0625],即62.5%的牛市,31.25%的熊市与6.25%的横盘 。

改变初始概率分布:现在我们用[0.7,0.1,0.2]作为初始概率分布

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*matrixprint "Current round:" , i+1print vector1

可以看出,尽管这次我们采用了不同初始概率分布,最终状态的概率分布趋于同一个稳定的概率分布[0.625   0.3125  0.0625], 也就是说我们的马尔科夫链模型的状态转移矩阵收敛到的稳定概率分布与我们的初始状态概率分布无关。

如果我们得到了这个稳定概率分布对应的马尔科夫链模型的状态转移矩阵,则我们可以用任意的概率分布样本开始,带入马尔科夫链模型的状态转移矩阵,这样经过一些序列的转换,最终就可以得到符合对应稳定概率分布的样本。

 这个性质不光对我们上面的状态转移矩阵有效,对于绝大多数的其他的马尔科夫链模型的状态转移矩阵也有效。同时不光是离散状态,连续状态时也成立。

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

代码如下:

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*matrixprint "Current round:" , i+1print matrix

  我们可以发现,在n≥6n≥6以后,PnPn的值稳定不再变化,而且每一行都为[0.625   0.3125  0.0625],这和我们前面的稳定分布是一致的。这个性质同样不光是离散状态,连续状态时也成立。

python马尔科夫链相关推荐

  1. python 马尔科夫链_用Python入门不明觉厉的马尔可夫链蒙特卡罗(附案例代码)...

    大数据文摘作品 编译:Niki.张南星.Shan LIU.Aileen 这篇文章让小白也能读懂什么是人们常说的Markov Chain Monte Carlo. 在过去几个月里,我在数据科学的世界里反 ...

  2. 通过Python实现马尔科夫链蒙特卡罗方法的入门级应用

    通过把马尔科夫链蒙特卡罗(MCMC)应用于一个具体问题,本文介绍了 Python 中 MCMC 的入门级应用. GitHub 地址:https://github.com/WillKoehrsen/ai ...

  3. 马尔科夫链预测,Python实现

    –记录自己学习的步伐,点滴的生活,以后学习和复习使用.纯手打,代码不抄袭.– 来源百度百科,具体定义和性质可以查看百度百科的内容.马尔科夫链 或者看一下下面的这个文章,也是翻译转载过来的.偷渡一下:[ ...

  4. 基于python的马尔科夫链在股价预测中的应用(基于Tushare)

    TushareID:503535 文章目录 前言 一.马尔科夫链是什么 二.代码如下 三.马尔科夫预测模型在股价预测中的应用 1.数据来源及状态划分 2.状态转移概率矩阵 P 及初始状态概率向量 图片 ...

  5. 用Python中的马尔科夫链进行营销渠道归因

    用Python中的马尔科夫链进行营销渠道归因 --第一部分:"更简单 "的方法 任何积极开展营销活动的企业都应该对确定哪些营销渠道推动了实际转化率感兴趣.投资回报率(ROI)是一个 ...

  6. 【深度剖析HMM(附Python代码)】2.隐马尔科夫链HMM的EM训练过程

    隐马尔科夫链HMM的参数θ的EM训练过程 现在回到前一节最后提出的参数θ的最大似然函数上来,先对其做个对数变换,做对数变换是考虑到序列X的概率计算公式中包含了连乘,为了方便计算同时避免序列X的概率过小 ...

  7. 【深度剖析HMM(附Python代码)】1.前言及隐马尔科夫链HMM的背景

    1. 前言 隐马尔科夫HMM模型是一类重要的机器学习方法,其主要用于序列数据的分析,广泛应用于语音识别.文本翻译.序列预测.中文分词等多个领域.虽然近年来,由于RNN等深度学习方法的发展,HMM模型逐 ...

  8. python:马尔科夫链

    参考学习网址:MCMC(二)马尔科夫链 - 刘建平Pinard - 博客园 (cnblogs.com) 目录 一.什么是马尔科夫链 1.介绍 2.基本概念 3.马尔科夫链模型分析 二.马尔科夫链模型状 ...

  9. 36.Python实现马尔科夫链

    学习参考网址:MCMC(二)马尔科夫链 - 刘建平Pinard - 博客园 目录 1.问题描述 2.马尔科夫链模型状态转移矩阵的性质 3.代码实例(一) 3.1运行结果 4.代码实例(2) 4.1运行 ...

  10. 马尔科夫链蒙特卡洛_蒙特卡洛·马可夫链

    马尔科夫链蒙特卡洛 A Monte Carlo Markov Chain (MCMC) is a model describing a sequence of possible events wher ...

最新文章

  1. 美化你的.net WinForm应用程序
  2. 在Linux里使用dosbox运行debug.exe
  3. c++ 异步下获取线程执行结果_【分享吧】C++11多线程库介绍
  4. wxpay-api:pay_J2Pay – API响应
  5. 自定义菜单url不能带_微服务架构【SpringBoot+SpringCloud+VUE】五 || 实战项目微信公众号自定义开发...
  6. SharePoint Enterprise Search基础知识点拾遗系列之二
  7. oracle连接eclipse的包,【求助】eclipse导入了Oracle的驱动包连不上Oracle
  8. “夸夸机器人” App 来了:变身百万粉丝大 V,48 万人给你的帖子点赞
  9. jvm crash分析工具
  10. Facebook究竟是怎么抄袭Snapchat的?听听他们自己怎么说
  11. 好用的工程项目管理软件推荐
  12. Android Studio 默认keystore 以及自定义keystore
  13. 水滴舆情关于山西体育一周舆情总结
  14. 4个亲测有效的视频压缩工具,压缩视频体积小、画质清晰
  15. Chrome之连接到网络 您正在使用的网络可能会要求您访问其登录页面解决方案
  16. Arduino蜂鸣器与按键的结合
  17. EAUML日拱一卒 历史状态
  18. [转] Bias-Variance Tradeoff
  19. CRM系统如何降低销售离职带来的损失?
  20. 家长怒进游戏群控诉:网瘾是表象 亲子关系问题是核心

热门文章

  1. html自动写对联,css实现的对联广告代码_CSS/HTML
  2. MATLAB学习:解一阶常系数微分方程
  3. dell 7040m 黑苹果_王者做图显示器,戴尔(DELL)U2417全面介绍
  4. Android音频之多设备同时输出-cast通路分析
  5. RK平台HDMI、喇叭音频同时输出
  6. 跟父亲一样伟大的程序员,请照顾好自己!
  7. Python制作经典的吃豆豆小游戏
  8. SQL Server 触发器
  9. (java毕业设计)基于java汽车租赁管理系统源码
  10. 国家二级计算机考试题库操作题素材,【2018-2019】计算机excel操作题题库,带素材-范文word版 (17页)...