2016-04-12 12 views
2

私は以下の状態のデータフレームを持っています:怒り、落ち着き、疲れ。以下のデータフレームでは、ある状態が別の状態に遷移する個々のケースを示しています。3状態マルコフ連鎖プロットの作成

も「遊び場」と呼ばれ、次のようになりますされる三つの状態のためのマルコフのチェーンプロットをbuidlingされる私が達成したい
pre<-cbind(c(rep("tired",100),rep("angry",100),rep("calm",100))) 
post<-cbind(c(rep("tired",50),rep("angry",70),rep("calm",100),rep("tired",80))) 
df<-cbind(pre,post) 
df<-as.data.frame(df) 
colnames(df)<-c("pre","post") 

:私はRでそれを行うだろうか

enter image description here

ありがとうございます!

答えて

1

diagramplotメソッドを使用して、markovchainパッケージを使用できます。

てみましょう最初のごdf

states<-c("tired","angry","calm") 

probsCase<-function(i,j){ 
    sum(as.character(df$pre)==states[i] & as.character(df$post)==states[j])/sum(as.character(df$pre)==states[i]) 
} 

transitionMatrix<-outer(1:3,1:3,Vectorize(probsCase)) 
colnames(transitionMatrix)<-states 
rownames(transitionMatrix)<-states 

から遷移確率行列を計算今

library(markovchain) 
markovChain <- new("markovchain", states=states, transitionMatrix=transitionMatrix) 
plot(markovChain,package="diagram") 

行列を初期化してプロットするためにmarkovchainを使用EDIT:

あなたはmarkovchainをインストール悩みをお持ちの場合パッケージでは、実際には使用できず、そのままdiagram必要パッケージ、ちょうどtransitionMatrix

library(diagram) 
plotmat(transitionMatrix,relsize=0.7) 

あなたは、あなたの応答のためのplotmat

+0

感謝のオプションを使用して、あなたの好みに応じて外観を微調整することができ、私は成功しtransitionMatrixになったが、トラブルのパッケージをインストールする必要があり 'マルコフ連鎖 '、特にその依存性「RCurl」。私はCrunchbang Linux Waldorfで動いているRバージョン3.2.3を持っています。どのようにインストールしましたか?プロットの様子を投稿するためにあなたの答えを少なくとも追加することができますか?再度、感謝します。 – Oposum

+0

新しい編集を確認してください – adaien

+0

ありがとうございました!それは動作しますが、何らかの理由でプロットの右余白と上余白がRグラフィックスデバイスを超えています。プロットの1,2,3の数字を「疲れた」「怒っている」「落ち着いた」状態に置き換える方法はありますか? – Oposum

関連する問題