最近,小编在公司接手了一个项目,涉及随机过程和马可夫链。这几天,文献、博客看了很多相关内容。这篇文章我们主要阐述一下随机过程和马可夫链。 面试问题小编之前面试银行,被问过一道面试题,题干如下:
大家先思考一下这个问题,我们先讲讲随机过程和马可夫链。 醉汉 随机过程
维基百科固然很好,但是有很多概念说的太不具体,有时候让人很难理解。 举个例子: 掷骰子、投硬币都是随机事件。比如掷骰子,1到6点。每次掷骰子,每个面是随机出现的(假设筛子没有被做过手脚)。那么,当我们每次追筛子的时候,就会产生一个随机变量X。我们不停的掷骰子,就会产生一系列的随机变量,X1, X2 ... Xn。而这些随机变量序列的集合,便组成了一个随机过程。 随机过程 马可夫链前面介绍的随机过程,每一次掷骰子都是独立存在的。也就是说,我现在掷骰子的行为和点数和之前之后掷筛子都没关系。每次抛掷的结果相互独立。 但是现实中,真正的随机变量之间,往往存在着互相依赖的关系。 马可夫链 - 熊市、牛市和平稳市场 我们已股票市场举例,牛市、熊市和之间的平稳市场都不会突然来临和随机变换。比如这周是牛市,突然下周就变成熊市,再下周又牛市了。这种频繁突变基本不可能出现。今天是牛市,大多数情况下,明天还是处在牛市之中。 什么是马可夫链呢? 马尔科夫链是一个随机过程,同时马尔科夫链的记忆类似于“金鱼的记忆只有3秒”,非常的健忘。 1 - 2 - 3 - 4 - 5 - 6 比如说,你现在站在5对6 进行预测,根据马尔科夫链,6的状态只和5有关,而前面1到2, 2到3, 3到4,4到5的整个过程无关。 马尔科夫链认为 过去所有的信息都被保存在了现在的状态下了。 马可夫链 - 熊市、牛市和平稳市场 从上面股市图中,假如今天是牛市(Bull Market),那么明天依旧是牛市的概率是0.9,是熊市(Bear Market)的概率是0.075,是平稳市场的概率是0.025。这样就形成了三种市场相互依赖、相互转变的随机过程 - 马可夫过程。 马可夫链应用股市随机过程 理解马可夫链,首先要明确整个过程有几种状态,如股市随机过程中存在三种状态:‘Bull Market’, ‘Bear Market’和‘Stagnant Market’。而各个状态之间的相互转变概率如上图所示。注意,每一行的概率之和都为1。 各个状态之间的转变关系表一般叫做过渡矩阵(Transition Matrix)。 其次要明确的是现在的状态。因为马可夫随机过程所有的信息都存在于当前状态中。 假设,我们现在身处熊市。那么,怎么用向量表示呢? 当前状态 = [0, 1, 0]. 从左到右依次为牛市、熊市和平稳市场。1表示处在该状态。 那么,明天的状态就可以通过矩阵相乘:当前状态 * 过度矩阵。 明天有1.5%的可能性为牛市,80%概率是熊市,5%的概率是平稳市场。 如果我们需要预测100天之后市场的情况,只需要将当前状态 乘以 100次过渡矩阵。 具体代码如下:定义一个递归函数f_func 那么,100天后市场有62.5%是牛市,31.25%是熊市,6.25%是平稳市场。 醉汉坠崖问题计算第一步:整个过程有11个状态,0(坠崖),1,2,3,..., 10(家里); 第二步:当前状态,醉汉站在4的位置上,[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0] 第三部:过渡矩阵: 过渡矩阵 怎么去理解这个过渡矩阵呢?比如: 第一行,0行。当前状态即为0,由于已经坠崖,醉汉不可能爬上来,那么醉汉会永远处于0的状态,也就是概率为1。0到其他状态的概率为0。 第二行,1行。当前状态为1,醉汉往前和往后的概率都是50%。也就是说下一个状态是0或者2的概率为0.5,其他状态为0. 依次类推。。。 如果想知道最终醉汉到家或者坠崖的概率分别为多少的话?同样可以使用上面的递归函数f_func将当前状态同过渡矩阵乘1000次或者更多。 醉汉坠崖 1000次后,醉汉坠崖概率是60%,而到家的概率是40%。 总结马可夫随机过程和马可夫链在金融、生物等都有着很广泛的应用。有兴趣的朋友可以自行阅读专业文章。 大家有没有发现,醉汉离家6米,离悬崖4米,悬崖离家10米。而坠崖的概率是60% = 6 /10,而回家的概率是40% = 4/10。 原来结果可以直接以距离的商计算出来。这个是可以通过公式推导出来的,有兴趣的朋友可以自行理解推导。推导的关键在于当前状态和下一状态直接的关系推导。 喜欢我的文章请点个赞或者转发。 |
|