まずは蝋の翼から。

学んだことを書きながら確認・整理するためのメモブログ。こういうことなのかな?といったことをふわっと書いたりしていますが、理解が浅いゆえに的はずれなことも多々あると思うのでツッコミ歓迎

状態空間モデルで何を状態方程式とし、何を観測方程式とするか

疑問

割と色々な書籍、例えばアヒル本で

観測値Y[t]を要素の和に分解するのが定石 (p.235)

とあるが、場合によるのでは?てかそもそも状態方程式/観測方程式どっちに何書くかの切り分けってなんだ?という疑問が湧いた。

StanとRでベイズ統計モデリング (Wonderful R)

StanとRでベイズ統計モデリング (Wonderful R)

一般的によく書かれている簡易式は以下。

 y_{状態, t} = y_{状態, t-1} + \epsilon_{y_{状態}}
 y_{観測, t} = y_{状態, t} + \epsilon_{y_{観測}}

ここからもわかるように、状態方程式には 時刻とともに真の状態が確率的に変化する事象 を示し、観測方程式は 観測時に、真の状態に対して観測ノイズが加わる
つまり、時間変動するものを「状態方程式(状態項)」、その状態に時間不変のものが観測時に加わったものが「観測方程式」と考えられる。

1階差分TrendとEvengの有無(イベントフラグ)を用いた状態空間モデルを考える。今回、Eventの効果がタイミングによって不変か変化するかによる差を以下で示す。

例1:Eventの効果が時不変

以下のような構造の状態空間モデルを考える。

状態方程式

真の状態として、Trendの時間変動を考える。

 y_{状態, t} = Trend_t
Trend_t = Trend_{t-1} + \epsilon_{Trend}

観測方程式

観測するにあたって、真の状態に対して、イベント効果(時不変)と観測誤差が加わる。

 y_{観測, t} = y_{状態, t} + \beta Promo_t + \epsilon_{y_{観測}}

例2:Eventの効果が時変

以下のような構造の状態空間モデルを考える。

状態方程式

真の状態として、Trendとイベント効果の時間変動を考える。
イベント効果の時間変動とは、イベントが起きたときの効果はタイミングによって異なることを意味する。

 y_{状態, t} = Trend_t + \beta_t Promo_t
Trend_t = Trend_{t-1} + \epsilon_{Trend}
\beta_t = \beta_{t-1} + \epsilon_{\beta}

観測方程式

観測するにあたって、真の状態に対して、イベントの効果と観測誤差が加わる。

 y_{観測, t} = y_{状態, t} + \epsilon_{y_{観測}}

余談

まぁ状態方程式はなにか、観測方程式はなにか、ということは本質的にはどうでもいいので「状態空間モデルで何を状態方程式とし、何を観測方程式とするか」という議論自体にもあまり意味はないですがモデルを考える際の参考にはなりそう。
そういう状態/観測の切り分けなく書くと例1,2はそれぞれ以下のようになる(状態方程式を観測方程式に代入したものとイコール)。

 y_t = Trend_{t-1}  + \beta Promo_t + \epsilon_t
 y_t = Trend_{t-1}  + \beta_{t-1} Promo_t + \epsilon_t

ちなみに、今回は例えば「店舗売上を目的変数としたときに、近くでイベントがあったか」といったようなイベント効果を「あった/なかった」の「1/0」としている。その場合、前述のように時変のβは「近くでイベントがあったときの効果は日によって変わる」ことを示している。
これを例えば、「売上を目的変数としたとき、2018/01/01にCMを打った日以降か以前か」といった「1/0」とした場合、時変のβは「2018/01/01に打ったCMの、他の日への効果」、いわゆる 残存効果 を示すことになる。