DLM
ノイズが正規分布し、変数間の関係が線形の状態空間モデル動的線形モデル(Dynamic Linear Model; DLM)と呼ばれる。
動的線形モデルは以下の式で表現できる。
Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.
推定問題
現時刻を kとするとき、推定問題はつぎの三つに分類できる。
- 予測(prediction):時刻(k-n)までのデータに基づいて現在の値 Image may be NSFW.
Clik here to view.を推定する。
- フィルタリング(filtering):時刻 kまでのデータに基づいて現在の値 Image may be NSFW.
Clik here to view.を推定する。
- 平滑(smoothing):時刻(k+n)までのデータに基づいて現在の値 Image may be NSFW.
Clik here to view.を推定する。
ローカルレベルモデル
ローカルレベルモデルは最初の式で
Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.
の場合に相当する。
予測、フィルタリング、平滑を実行する R のコードは以下のようになる。
X <-1961:1990 Y <- c(4.71,7.70,7.97,8.35,5.70,7.33,3.10,4.98,3.75,3.35,1.84,3.28,2.77,2.72,2.54,3.23,2.45,1.90,2.56,2.12,1.78,3.18,2.64,1.86,1.69,0.81,1.02,1.40,1.31,1.57) N <- length(Y) n <- N-6 Y2 <- Y[1:n] X2 <- X[1:n] X3 <- X[(n+1):N] build1 <-function(theta){ dlm(FF=matrix(1), V=matrix(exp(theta[1])), GG=matrix(1), W=matrix(exp(theta[2])), m0 = c(0), C0 =matrix(1e+7))} fit1 <- dlmMLE(Y2, parm=c(log(var(Y2)),1), build1) model1 <- build1(fit1$par) Filt1 <- dlmFilter(Y2,model1) Smooth1 <-dlmSmooth(Filt1) Fore1 <- dlmForecast(Filt1,6) plot(X,Y,type="b",ylim=c(0,9)) lines(X2,dropFirst(Filt1$m),col="red",lwd=2) lines(X2,dropFirst(Smooth1$s),col="blue",lwd=2) lines(X3,Fore1$f,col="orange",lwd=2) legend("topright",c("observed","filtered","smoothed","forecasted"), col=c("black","red","blue","orange"),lty=1,lwd=2)
Image may be NSFW.
Clik here to view.
二階のトレンドモデル
二階のトレンドモデルは最初の式で、
Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、
Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.、Image may be NSFW.
Clik here to view.
の場合に相当する。
予測、フィルタリング、平滑を実行する R のコードは以下のようになる。
build2 <-function(theta){ dlm(FF=matrix(c(1,0),1,2), V=matrix(exp(theta[1])), GG=matrix(c(2,-1,1,0),2,2,byrow =TRUE), W=matrix(c(exp(theta[2]),0,0,0),2,2,byrow =TRUE), m0 = c(0,0), C0 =matrix(c(1e+7,0,0,0),2,2,byrow =TRUE))} fit2 <- dlmMLE(Y2, parm=c(log(var(Y2)),1), build2) model2 <- build2(fit2$par) Filt2 <- dlmFilter(Y2,model2) Smooth2 <-dlmSmooth(Filt2) Fore3 <- dlmForecast(Filt2,6) plot(X,Y,type="b",ylim=c(0,9)) lines(X2,dropFirst(Filt2$m[,1]),col="red",lwd=2) lines(X2,dropFirst(Smooth2$s[,1]),col="blue",lwd=2) lines(X3,Fore3$f[,1],col="orange",lwd=2) legend("topright",c("observed","filtered","smoothed","forecasted"), col=c("black","red","blue","orange"),lty=1,lwd=2)
Image may be NSFW.
Clik here to view.
参考文献
Clik here to view.

- 作者:岩波データサイエンス刊行委員会
- 出版社/メーカー:岩波書店
- 発売日: 2015/10/08
- メディア:単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
Clik here to view.

- 作者:足立修一,丸田一郎
- 出版社/メーカー:東京電機大学出版局
- 発売日: 2012/10/10
- メディア:単行本(ソフトカバー)
- 購入: 3人 クリック: 3回
- この商品を含むブログ (4件) を見る