搜尋

首頁  >  問答  >  主體

python - 求馬可夫鏈狀態轉移機率矩陣

一個時間序列如下:

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語句了,怎麼做比較簡潔呢,謝謝大家

習慣沉默習慣沉默2774 天前1678

全部回覆(1)我來回復

  • 漂亮男人

    漂亮男人2017-05-18 10:59:34

    不太清楚馬可夫鏈如何計算,猜測是狀態轉移,看看下面的有沒有用。

    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

    回覆
    0
  • 取消回覆