Anzahl der Parameter im Markov-Modell


12

Ich möchte BIC für die HMM-Modellauswahl verwenden:

BIC = -2*logLike + num_of_params * log(num_of_data)

Wie zähle ich die Anzahl der Parameter im HMM-Modell? Stellen Sie sich ein einfaches HMM mit zwei Zuständen vor, in dem die folgenden Daten vorliegen:

data = [1 2 1 1 2 2 2 1 2 3 3 2 3 2 1 2 2 3 4 5 5 3 3 2 6 6 5 6 4 3 4 4 4 4 4 4 3 3 2 2];
model = hmmFit(data, 2, 'discrete');
model.pi = 0.6661    0.3339;
model.A = 
    0.8849    0.1151
    0.1201    0.8799
model.emission.T = 
    0.2355    0.5232    0.2259    0.0052    0.0049    0.0053
    0.0053    0.0449    0.2204    0.4135    0.1582    0.1578
logLike = hmmLogprob(model,data);
logLike =  -55.8382

Ich denke also:

Nparams = size(model.A,2)*(size(model.A,2)-1) + 
          size(model.pi,2)-1) + 
          size(model.emission.T,1)*(size(model.emission.T,2)-1)
Nparams = 13

Am Ende haben wir also:

BIC = -2*logLike + num_of_params*log(length(x))
BIC = 159.6319

Ich habe eine Lösung gefunden, bei der die Formel für num_of_params(für einfaches Markov-Modell) wie folgt aussieht:

Nparams = Num_of_states*(Num_of_States-1) - Nbzeros_in_transition_matrix

Also, was ist die richtige Lösung? Muss ich einige Nullwahrscheinlichkeiten in Übergangs- oder Emissionsmatrizen berücksichtigen?

==== Aktualisiert seit dem 15.07.2011 ====

Ich denke, ich kann etwas Klarheit über die Auswirkung der Datendimension schaffen (am Beispiel der Gaußschen Mischungsverteilung).

X ist eine n-mal-d-Matrix, wobei (n-Zeilen Beobachtungen entsprechen; d-Spalten Variablen entsprechen (N-Dimensionen).

X=[3,17 3,43
   1,69 2,94
   3,92 5,04
   1,65 1,79
   1,59 3,92
   2,53 3,73
   2,26 3,60
   3,87 5,01
   3,71 4,83
   1,89 3,30 ];
[n d] = size(X); 
n = 10; d =2;

Das Modell wird die folgende Anzahl von Parametern für GMM haben:

nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * Ndimensions  %for daigonal covariance matrices
nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * NDimensions * (NDimensions+1)/2; %for full covariance matrices

Wenn wir X als eindimensionale Daten behandeln , als wir haben num_of_data = (n*d), so für die zweidimensionalen Daten, die wir haben num_of_data = n.

2-dimensionale Daten: nParam = 11; logLike = -11,8197; BIC = 1,689

1-dimensionale Daten: nParam = 5; logLike = -24,8753; BIC = -34,7720

Ich habe sehr wenig Übung mit HMM. Ist es normal, HMM mit (5000, 6000 und mehr Parametern) zu haben?


Haben Sie eine Rechtfertigung für die Verwendung von BIC? Es kann schrecklich falsche Ergebnisse geben, wenn nicht die entsprechenden Annahmen getroffen werden.
Suncoolsu

@suncoolsu, was meinst du mit Rechtfertigung? Ich habe einige Beispiele für die Auswahl von K-Clustern (GMM-Modellen) basierend auf der BIC-Bewertung gefunden. Wahrscheinlich habe ich ein falsches Beispiel für den Vergleich zweier Modelle mit unterschiedlichen Eingabedaten (Abmessungen) angegeben.
Sergey

1
Ich wollte BIC nur verwenden, wenn die Annahme, dass das wahre Modell im Modellraum liegt, gerechtfertigt ist. Vielleicht ist es in Ihrem Fall gerechtfertigt. Ich stimme Ihnen zu, dass die Leute BIC wie AIC verwenden, aber beide sind sehr unterschiedliche Dinge!
Suncoolsu

Hallo, dies ist ein später Kommentar und ich hoffe, Sie sind noch aktiv, aber wie lässt sich die Anzahl der Parameter in einem Modell am besten ermitteln?
Masfenix

Antworten:


7

Die Frage ist, ob einige Ihrer Parameter in der Übergangsmatrix und / oder der Emissionsmatrix von Anfang an festgelegt sind. Ihre Berechnungen (der Anzahl der Parameter) sehen korrekt aus. Wenn Sie aus irgendeinem Grund ein 3-Zustands-Modell anstelle eines 2-Zustands-Modells wünschen und im Voraus entscheiden, dass Übergänge von Zustand 1 nach 3 und von 3 nach 1 nicht zulässig sind (mit einer Wahrscheinlichkeit von 0), müssen Sie dies bei der Berechnung von berücksichtigen die Anzahl der Parameter.


Muss ich die Datendimension berücksichtigen? Was ist, wenn size(data)2x100 sein wird
Sergey

@Sergey, ich habe mir in meiner Antwort nur die Berechnung der Anzahl der Parameter angesehen. Der Vollständigkeit halber hätte ich mir überlegen sollen, wie man die "Größe" des Datensatzes berechnet, da Sie an BIC interessiert sind. Um ehrlich zu sein, habe ich nur eine Ableitung von BIC für unabhängige Daten gesehen, aber ich vermute, dass die richtige "Größe" der Daten der Länge der Datenreihe entspricht. Ich bin mir nicht sicher, was Sie mit der Größe von 2x100 meinen. Wenn Sie dies kommentieren möchten, müssen Sie genauer beschreiben, wie die Daten als 2 x 100-Matrix codiert werden.
NRH

Vielen Dank für die Antwort. Ich glaube, ich verstehe die Auswirkungen der Datendimension auf den BIC. Schauen Sie sich bitte mein Update an
Sergey,

Muss ich die Anzahl der Parameter im links-rechts (Bakis) HMM-Modell (mit dreieckiger Übergangsmatrix) verringern? Ist es normal, HMM mit (5000, 6000 und mehr Parametern) zu haben?
Sergey

4

Wenn wir die Anzahl der freien Parameter in der Modellauswahl-BIC berechnen, bedeutet dies einfach, dass es sich um die Anzahl der Nullen in den Transtions- und Emissionsmatrizen handelt. Wenn die Übergangsmatrix beispielsweise eine Null enthält, bedeutet dies, dass es keine Wahrscheinlichkeit gibt, dass sich ein bestimmter Zustand zum nächsten bewegt (wie durch die Übergangsmatrix definiert). Auf diese Weise wählt der BIC das Optimum der Zustände für ein HMM aus. Es ist jedoch verwirrend, das Nein der freien Parameter nur unter Verwendung der Größe der Anfangs-, Übergangs- und Emissionsmatrizen zu erhalten

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.