Maison  >  Questions et réponses  >  le corps du texte

python - Trouver la matrice de probabilité de transition de l'état de la chaîne de Markov

Une série chronologique est la suivante :

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

Cette série chronologique a un total de 4032 valeurs. L'espace de valeurs de ces valeurs a 115 façons a=[-0.49,-0.47,-0.45······1.75,1.77,1.79]. trouvez cette matrice de probabilité de transition d'état 115 * 115, j'ai écrit un programme matlab mais il y a un problème avec le calcul, je voudrais demander aux experts ce qu'il faut faire si j'utilise Python. En tant que débutant, je ne sais que l'utiliser. déclarations pour l'implémenter, mais dans ce cas, je dois écrire 115 déclarations if. Comment puis-je le faire de manière plus concise ? Merci à tous ?

習慣沉默習慣沉默2710 Il y a quelques jours1632

répondre à tous(1)je répondrai

  • 漂亮男人

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

    Je ne sais pas comment la chaîne de Markov est calculée. Je suppose qu'il s'agit d'un transfert d'état. Voyons si ce qui suit est utile.

    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

    répondre
    0
  • Annulerrépondre