acpass

モデリング用語

ひとことで言うと

差分は『隣の時点との差をとる』操作 Yt=YtYt1\nabla Y_t=Y_t-Y_{t-1} ですが、その正体はバックシフト演算子 BB(1時点前を指す BYt=Yt1BY_t=Y_{t-1})を使った =1B\nabla=1-B という代数演算です。多項式のように (1B)2(1-B)^2 と展開でき、2回差分や季節差分 (1Bs)(1-B^s) も同じ規則で機械的に書き下せます。

Y=(100,103,107,108,112)への差分演算。1回差分∇Y=(3,4,1,4)(緑)でトレンドが消えほぼ平坦。2回差分∇²Y=(1,-3,3)(赤破線)は変動がかえって大きく過差分を示す。Bはバックシフト演算子でBY_t=Y_t-1∇Y=(3,4,1,4)平坦化, ∇²Y=(1,-3,3)は過差分∇Y(1回差分)∇²Y(過差分)差分値

Y=(100,103,107,108,112)Y=(100,103,107,108,112) への差分。1回差分 Y=(3,4,1,4)\nabla Y=(3,4,1,4)(緑)でトレンドが消えほぼ平坦。2回差分 2Y=(1,3,3)\nabla^2 Y=(1,-3,3)(赤)は変動がかえって大きく、1回で十分(過差分)と分かる。

数式で表すと

Yt=YtYt1\nabla Y_t=Y_t-Y_{t-1}

隣接時点の差をとる操作 Yt=YtYt1\nabla Y_t=Y_t-Y_{t-1}。トレンドの除去・定常化に使う。

差分とは、隣り合う時点の差をとる操作で、1階差分は Yt=YtYt1\nabla Y_t=Y_t-Y_{t-1} と定義します。直感的には『水準』を捨てて『変化量』を見る操作で、トレンドの除去・定常化に使われます(概念: 定常化で扱う戦略の中核)。ここでは差分を代数的な演算として整理し、計算を機械化する道具立てを身につけます。 鍵になるのがバックシフト演算子(ラグ演算子)BB です。BB は系列を1時点だけ過去にずらす演算子で、BYt=Yt1BY_t=Y_{t-1}B2Yt=Yt2B^2Y_t=Y_{t-2}BkYt=YtkB^kY_t=Y_{t-k} と定義します。これを使うと1階差分は Yt=YtYt1=YtBYt=(1B)Yt\nabla Y_t=Y_t-Y_{t-1}=Y_t-BY_t=(1-B)Y_t つまり =1B\nabla=1-B と演算子の引き算で書けます。\nabla をあたかも (1B)(1-B) という多項式のように扱って展開・累乗できるのが強力なところです。たとえば2階差分は \nabla を2回かけるので 2Yt=(1B)2Yt=(12B+B2)Yt=Yt2Yt1+Yt2\nabla^2 Y_t=(1-B)^2Y_t=(1-2B+B^2)Y_t=Y_t-2Y_{t-1}+Y_{t-2} と、二項展開の係数 1,2,11,-2,1 がそのまま出てきます。季節差分は周期 ss だけ過去との差なので sYt=(1Bs)Yt=YtYts\nabla_s Y_t=(1-B^s)Y_t=Y_t-Y_{t-s} と書けます(月次データの年差分なら s=12s=12)。2\nabla^2s\nabla_s は別物で、前者は『差分を2回』、後者は『1回だけ ss 離れた差分』である点に注意してください。 演算子の言葉は ARIMA モデルの表現にも直結します。AR・MA・差分すべて BB の多項式の積で書けるため、モデル全体がコンパクトに表せます。具体例:Y=(100,103,107,108,112)Y=(100,103,107,108,112) のとき1階差分は (3,4,1,4)(3,4,1,4) でトレンドが消えほぼ平坦。2階差分は (1,3,3)(1,-3,3) で変動がかえって大きくなる——1回差分で十分だったこと(過差分)が見て取れます。

試験に出る性質

1階差分の定義

Yt=YtYt1\nabla Y_t=Y_t-Y_{t-1}。水準を捨て変化量を見る。トレンド除去・定常化の基本操作。

バックシフト演算子

BYt=Yt1BY_t=Y_{t-1}BkYt=YtkB^kY_t=Y_{t-k}=1B\nabla=1-B と演算子で書け、多項式のように扱える。

2階差分

2Yt=(1B)2Yt=Yt2Yt1+Yt2\nabla^2Y_t=(1-B)^2Y_t=Y_t-2Y_{t-1}+Y_{t-2}。二項展開で係数 1,2,11,-2,1

季節差分

sYt=(1Bs)Yt=YtYts\nabla_s Y_t=(1-B^s)Y_t=Y_t-Y_{t-s}。周期 ss だけ前との差。2\nabla^2 とは別物。

ARIMA表現に直結

AR・MA・差分すべて BB の多項式の積で書ける。(1B)d(1-B)^d などコンパクトに表現できる。

例で見る

Y=(100,103,107,108,112)Y=(100,103,107,108,112)。1階差分 Y=(3,4,1,4)\nabla Y=(3,4,1,4)(トレンドが消えほぼ平坦)。 2階差分 2Y=(43, 14, 41)=(1,3,3)\nabla^2 Y=(4-3,\ 1-4,\ 4-1)=(1,-3,3)(変動がかえって大きく過差分)。 バックシフト確認: (1B)Y5=Y5Y4=112108=4(1-B)Y_5=Y_5-Y_4=112-108=4 で1階差分の最後の値に一致。

つまずきポイント

  • 2階差分 2\nabla^2 と季節差分 s\nabla_s を混同する(2=(1B)2\nabla^2=(1-B)^2 は差分を2回、s=1Bs\nabla_s=1-B^s は1回だけ ss 時点離れた差)
  • 2Yt\nabla^2Y_t の係数を間違える((1B)2=12B+B2(1-B)^2=1-2B+B^2Yt2Yt1+Yt2Y_t-2Y_{t-1}+Y_{t-2}YtYt2Y_t-Y_{t-2} ではない)
  • 差分でデータ点が減ることを忘れる(nn 点を1階差分すると n1n-1 点、2階差分で n2n-2 点になる)

定着クイズ

バックシフト演算子 BB を使った1階差分の表現は?

2階差分 2Yt=(1B)2Yt\nabla^2Y_t=(1-B)^2Y_t を展開すると?

Y=(100,103,107,108,112)Y=(100,103,107,108,112) の1階差分は?

この用語を扱う問題(1