隠れマルコフモデル
# ライブラリの読み込み
library(quantmod)
library(RHmm)
# 開始日
s_date <- as.Date("1999-01-01")
# 終了日
e_date <- as.Date("2013-11-22")
# リターン
ret <- window(diff(data$USDJPY.Close,lag=1)/lag(data$USDJPY.Close,k=1)*100,
start=s_date,end=e_date)
# 分布の種類が正規分布、状態の数が3の隠れマルコフモデルの作成
ret.HM <- HMMFit(ret,dis="NORMAL",nStates=3)
# 各状態の平均と分散を表示
ret.HM$HMM$distribution
Model:
3 states HMM with univariate gaussian distributions
Distribution parameters:
mean var
State 1 0.0122700429 0.1805027
State 2 0.0001095721 0.4228874
State 3 -0.0704377516 1.7817795
状態1は平均がややプラスで分散は小さい。
状態2は平均がほぼゼロで分散は普通。
状態3は平均がマイナスで、分散は大きい。
ただし、隠れマルコフモデルは乱数が使われているので、毎回違う結果になる。
# 各状態の遷移確率を表示
ret.HM$HMM$transMat
[,1] [,2] [,3]
[1,] 0.97856538 0.01445681 0.006977808
[2,] 0.01289514 0.97010397 0.017000890
[3,] 0.01421933 0.14387865 0.841902017
行が現在の、列が1期後の状態。
状態1、状態2、状態3いずれも1期後に同じ状態に留まる可能性が高く、他の状態に遷移する可能性は低い。