Gibt es in R (eine eingebaute Funktion) eine Möglichkeit, die Übergangsmatrix für eine Markov-Kette aus einer Reihe von Beobachtungen zu berechnen?
Nehmen Sie zum Beispiel einen Datensatz wie den folgenden und berechnen Sie die Übergangsmatrix erster Ordnung?
dat<-data.frame(replicate(20,sample(c("A", "B", "C","D"), size = 100, replace=TRUE)))
r
markov-process
B_Miner
quelle
quelle
Antworten:
Ich bin mir einer "eingebauten" Funktion (zB in
base
oder ähnlichem) nicht sofort bewusst , aber wir können dies sehr einfach und effizient in ein paar Codezeilen tun.Hier ist eine Funktion, die eine Matrix (keinen Datenrahmen) als Eingabe verwendet und entweder die Übergangszahlen (
prob=FALSE
) oder standardmäßig (prob=TRUE
) die geschätzten Übergangswahrscheinlichkeiten erzeugt.Wenn Sie es auf einem Datenrahmen aufrufen müssen, können Sie immer tun
Wenn Sie nach Paketen von Drittanbietern suchen, bietet Rseek oder die R- Suchsite möglicherweise zusätzliche Ressourcen.
quelle
HMM
undRHMM
das könnte hilfreich sein.R
werden sehr heikel in der Vergangenheit, vor allem wenn es um die Montage kommt und ich fand nie den ich wirklich mochte oder als vertrauenswürdig. Vielleicht ist die Situation jetzt besser. Ich würde mir vorstellen, dass sie das richtig machen würden. Wenn Sie eine solche Lösung kennen, reichen Sie sie bitte als Antwort ein. Ich würde gerne darüber abstimmen!dat
Datenrahmen, den das OP als Beispiel angibt, enthält Datenspalten. Wollen sie eine Übergangsmatrix pro Spalte oder eine Gesamtübergangsmatrix, oder können wir die Matrix einfach in einen Vektor umwandeln?)Ich habe gerade ein neues R-Paket hochgeladen
markovchain
, das auf dem S4-Programmierstil basiert. Zusammen mit verschiedenen Methoden zum Behandeln von S4-Markovchain-Objekten enthält es eine Funktion zum Anpassen einer Markov-Kette aus einer Folge von Zuständen. Schauen Sie sich an:Es könnte helfen.
quelle