python - 求马尔可夫链状态转移概率矩阵
習慣沉默
習慣沉默 2017-05-18 10:57:34
0
1
1681

一个时间序列如下:

0.19
0.19
0.13
0.01
-0.03
-0.03
0.03
0.09
-0.13
-0.13
0.05
-0.03
0.03
0.09
-0.07
0.11
0.05
0.01
-0.05
-0.01
0.07
0.01
-0.15
-0.01
······

这个时间序列一共有4032个值,这些值的取值空间有115个取法a=[-0.49,-0.47,-0.45······1.75,1.77,1.79],现在想求出来这个115*115的状态转移概率矩阵,写了一个matlab程序但是计算出来有问题,想问问大神们如果用Python做应该怎么做,作为刚刚入门的小白,只知道用if语句来实现,但是这样的话,就要写115个if语句了,怎么做比较简洁呢,谢谢大家

習慣沉默
習慣沉默

全部回复(1)
漂亮男人

不太清楚马尔可夫链如何计算,猜测是状态转移,看看下面的有没有用。

a = [1,2,3,0,0,0,3,3,2,3,3,2,3,2,1,2,3]


l = 4
N = [[0] * l for i in range(l)]

amount = 0
for i in data:
    print i
    amount += 1
    N[i[0]][i[1]] += 1

print amount
for i in range(l):
    for j in range(l):
        N[i][j] /= float(amount)
print N
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板