Heim  >  Fragen und Antworten  >  Hauptteil

python – Finden Sie die Zustandsübergangswahrscheinlichkeitsmatrix der Markov-Kette

Eine Zeitreihe sieht wie folgt aus:

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
······

Diese Zeitreihe hat insgesamt 4032 Werte. Der Werteraum dieser Werte hat 115 Möglichkeiten: a=[-0,49,-0,47,-0,45······1,75,1,77,1,79]. Finden Sie diese 115 * 115 Zustandsübergangswahrscheinlichkeitsmatrix. Ich habe ein Matlab-Programm geschrieben, aber es gibt ein Problem mit der Berechnung. Ich möchte die Experten fragen, was zu tun ist, wenn ich Python verwende. Ich weiß nur, ob Anweisungen, um es umzusetzen, aber in diesem Fall muss ich 115 if-Anweisungen schreiben. Vielen Dank an alle

習慣沉默習慣沉默2710 Tage vor1635

Antworte allen(1)Ich werde antworten

  • 漂亮男人

    漂亮男人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

    Antwort
    0
  • StornierenAntwort