前言:彩票是一个坑,千万不要往里面跳。任何预测彩票的方法都不可能100%,都只能说比你盲目去买要多那么一些机会而已。
马尔可夫链是一个能够用数学方法就能解释自然变化的一般规律模型,它是由著名的俄国数学家马尔科夫在1910年左右提出的。马尔科夫过程已经是现在概率论中随机过程理论的一个重要方面。经过了一百年左右的发展,马尔可夫过程已经渗透到各个领域并发挥了重要的作用,如在我们熟知的经济、通信领域,除此之外在地质灾害、医疗卫生事业、生物学等自然科学领域也发挥了非常重要的作用。
定义1:
定义2:
上面是2个最简单的马尔可夫链的数学定义,看不懂没关系,简单解释一下:
2.根据马尔可夫链的思想,一步转移概率Pij很容易得到,但是预测的时候,往往要根据最近K期的数据来进行,所以要计算K步转移概率;
3.任意步的转移概率可以根据C-K方程来计算,CK方程是一种计算转移概率的基本方法,简单的算法就是:通过一步转移概率矩阵P独自相乘m次,就可以得到m步转移概率。
4.马尔可夫链的思想,就是根据历史的数据,统计得到转移概率,然后根据滞时权重对每个状态进行预测,概率最高的是最可能出现的。
5.对于离散型马尔可夫链序列变量,一般计算之前需要对变量进行“马氏性”检验,统计量就是卡方分布。
对于离散型变量来说,首先要把目标的数据进行归类,对模型来说,一般状态都是有限的,比如说双色球,可以把16个篮球号码分为8个状态,2个一组。当然一些经济和实际生活数据的状态分类,就要根据实际情况了。
转移概率矩阵是可以根据历史数据的频率f(i,j)统计得到。f(i,j)是状态i到状态j转移的次数;然后概率转移矩阵
p(i,j)=f(i,j)/f(i.);频数除以当前行的和值即为概率
对于离散型的变量,需要利用历史数据进行“马氏性”检验。检验公式为:
然后根据显著性水平(程序中固定取0.05),查表求m自由度时的阀值,若,则满足马氏性,可以进行下一步的预测,否则没有多大的意义。
k为滞时期,我程序测试里面选的5,L是总的历史数据次数,X是历史数据序列。
根据C-K方程提供的算法,计算k步的转移概率矩阵Pi(k),又一次转移概率矩阵自乘k次得到。
下一个状态的预测概率通过相同状态的各个预测概率加权和得到,计算用到公式:
最后一步的时候要注意,要根据最后k期的历史数据所在状态值和步长的权值相乘。滞时期为1的数据,是最后1期数据(最新的数据),这个循环的时候要注意,很容易掉进坑里。
本文使用C#实现了简单的离散型马尔可夫链模型,在验证马氏性的时候,由于需要查表求值,所以暂时固定了自由度25,显著性水平0.05,模型核心代码:
最后,彩票风险很大,购彩需谨慎。你的热情和推荐,是我的动力哦。
补充一下,其中有一个扩展方法,进行数组转换的,忘记贴上去了:
1publicstaticT[,]ConvertToArray