差分とは|定義・公式とアクチュアリー試験の関連問題 | acpassモデリング・用語・時系列
ひとことで言うと
差分は『隣の時点との差をとる』操作 ∇Yt=Yt−Yt−1 ですが、その正体はバックシフト演算子 B(1時点前を指す BYt=Yt−1)を使った ∇=1−B という代数演算です。多項式のように (1−B)2 と展開でき、2回差分や季節差分 (1−Bs) も同じ規則で機械的に書き下せます。
Y=(100,103,107,108,112) への差分。1回差分 ∇Y=(3,4,1,4)
数式で表すと
∇Yt=Yt−Yt−1 差分とは、隣り合う時点の差をとる操作で、1階差分は
∇Yt=Yt−Yt−1
と定義します。直感的には『水準』を捨てて『変化量』を見る操作で、トレンドの除去・定常化に使われます(定常化で扱う戦略の中核)。ここでは差分を
試験に出る性質
1階差分の定義
∇Yt=Yt−Yt−1。
例で見る
Y=(100,103,107,108,112)。1階差分 ∇Y=(3,4,1,4)
つまずきポイント
- 2階差分 ∇2 と季節差分 ∇s を混同する(∇2=(1−B)2
定着クイズ
Q1バックシフト演算子 B を使った1階差分の表現は?
Q22階差分 ∇2Yt=(1−B)2Yt を展開すると?
Q3Y=(100,103,107,108,112) の1階差分は?
Q4d 回差分してはじめて定常になる過程の呼び名は?
Q5ランダムウォーク Yt=Yt−1+εt を1回差分すると?
Q6変動幅が時間とともに比例して拡大する乗法的トレンドへの対処は?
(緑)でトレンドが消えほぼ平坦に。2回差分
∇2Y=(1−B)2Y=(1,−3,3) (赤)は変動がかえって大きく、1回で十分(過差分)と分かる。
はバックシフト演算子。
隣接時点の差をとる操作 ∇Yt=Yt−Yt−1。トレンドの除去・定常化に使う。
代数的な演算
として整理し、計算を機械化する道具立てを身につけます。
鍵になるのがバックシフト演算子(ラグ演算子)B です。B は系列を1時点だけ過去にずらす演算子で、
BYt=Yt−1,B2Yt=Yt−2,BkYt=Yt−k
と定義します。これを使うと1階差分は
∇Yt=Yt−Yt−1=Yt−BYt=(1−B)Yt
つまり ∇=1−B と、演算子の引き算で書けます。ここが強力なところで、∇ をあたかも (1−B) という多項式のように扱って展開・累乗できるのです。たとえば2階差分は ∇ を2回かけるので
∇2Yt=(1−B)2Yt=(1−2B+B2)Yt=Yt−2Yt−1+Yt−2
と、二項展開そのままに係数 1,−2,1 が出てきます。同様に季節差分は周期 s だけ過去との差なので Bs を使って
∇sYt=(1−Bs)Yt=Yt−Yt−s
と書けます(月次データの年差分なら s=12)。∇2 と ∇s は別物で、前者は『差分を2回』、後者は『1回だけ s 時点離れた差分』である点に注意してください。
演算子の言葉は ARIMA モデルの表現にも直結します。AR 部分は (1−ϕ1B−⋯)Yt、MA 部分は (1+θ1B+⋯)εt、差分は (1−B)d と、すべて B の多項式の積で書けるため、モデル全体がコンパクトに表せます。具体例で確かめましょう。Y=(100,103,107,108,112) のとき1階差分は ∇Y=(103−100, 107−103, 108−107, 112−108)=(3,4,1,4) で、トレンドが消えてほぼフラットになります。2階差分は差分の差分なので ∇2Y=(4−3, 1−4, 4−1)=(1,−3,3) となり、かえって変動が大きくなる——つまり1回差分で十分だったことが見て取れます。バックシフトの確認として BY5=Y4=108、(1−B)Y5=Y5−Y4=112−108=4 となり、定義どおり1階差分の最後の値に一致します。
定常化とは、そのままでは定常でない時系列を、変換を施して定常な系列に変える操作のことです。多くの時系列モデル(AR・MA など)は定常性を前提に作られているため、トレンドや単位根をもつ非定常系列はまず定常化してからモデルに乗せる、という段取りになります。中心的な手段が差分(差分で扱う ∇Yt=Yt−Yt−1)で、隣り合う時点の差をとることで『水準の動き』を取り除き、『変化量』に注目し直します。
ポイントは『何を、何回、どのように』定常化するかという戦略です。第一に差分の回数=積分次数 d という考え方があります。d 回差分してはじめて定常になる過程を I(d)(d 次の和分過程)と呼び、これが ARIMA(p,d,q) モデルの真ん中の文字 d にあたります。たとえばランダムウォーク Yt=Yt−1+εt(ϕ=1 なので非定常)は、1回差分すると ∇Yt=Yt−Yt−1=εt となり、これは独立同分布のホワイトノイズなので定常です。よってランダムウォークは I(1)(1回差分で定常)。線形トレンドをもつ Yt=a+bt+εt も、1回差分すると平均が b の定常系列に変わります——『1回の差分が線形トレンドを除去する』という直感を、ここでしっかり押さえてください。たいていの経済・保険データは1回、せいぜい2回の差分で定常になります。
第二に、トレンドが乗法的(時間とともに変動幅も比例して大きくなる)な場合は、差分の前に対数変換を施します。対数をとると比例的な増減が一定幅の増減に変わり、その後の差分が効きやすくなります(対数差分 ∇lnYt は近似的に成長率を表します)。第三に、季節パターン(毎年同じ月に山がくるなど)には季節差分 ∇sYt=Yt−Yt−s(s は季節周期、月次なら s=12)を使い、1年前との差をとって季節成分を打ち消します(差分で代数的に詳しく扱います)。これらは組み合わせて使え、たとえば『対数 → 季節差分 → 通常差分』という多段の前処理もよくあります。なお差分のしすぎ(過差分)はかえって系列を扱いにくくするので、定常になった時点で止めるのが鉄則です。
水準を捨て変化量を見る。トレンド除去・定常化の基本操作。
バックシフト演算子
BYt=Yt−1、BkYt=Yt−k。これを使うと ∇=1−B と演算子で書け、多項式のように扱える。
2階差分
∇2Yt=(1−B)2Yt=Yt−2Yt−1+Yt−2。二項展開で係数 1,−2,1。差分を2回かける操作。
季節差分
∇sYt=(1−Bs)Yt=Yt−Yt−s。周期 s だけ前との差。∇2 とは別物(1回だけ s 離れた差)。
ARIMA表現に直結
AR・MA・差分すべて B の多項式の積で書ける。モデル全体を (1−B)d などコンパクトに表現できる。
定常化:定常化の目的
AR・MA等は定常性が前提。非定常系列は差分などで定常にしてからモデルに乗せる前処理が定常化。
定常化:積分次数 d / I(d)
d 回差分で定常になる過程を I(d) と呼ぶ。ARIMA(p,d,q) の d がこれ。多くは d=1 か 2 で足りる。
定常化:差分が線形トレンドを除去
Yt=a+bt+εt を1回差分すると平均 b の定常系列になる。トレンドが消える。
定常化:対数変換+差分
乗法的(変動幅が比例して拡大)なトレンドには先に対数をとる。対数差分 ∇lnYt は近似的に成長率を表す。
定常化:季節差分
季節周期 s の山には ∇sYt=Yt−Yt−s で1周期前との差をとる。通常差分と組み合わせられる。
(トレンドが消えほぼ平坦)。
2階差分 ∇2Y=(4−3, 1−4, 4−1)=(1,−3,3)(変動がかえって大きく、1回で十分だったと分かる=過差分)。
バックシフト確認: BY5=Y4=108、(1−B)Y5=Y5−Y4=112−108=4 で1階差分の最後の値に一致。
▶ 定常化:ランダムウォーク Yt=Yt−1+εt(ϕ=1、非定常)を1回差分すると ∇Yt=Yt−Yt−1=εt。
これは iid のホワイトノイズで定常。よってランダムウォークは I(1)(1回差分で定常になる積分次数1の過程)。
線形トレンド Yt=a+bt+εt では ∇Yt=b+εt となり、平均 b=0 の定常系列。1回の差分でトレンドが除去される。
は差分を2回、
∇s=1−Bs は1回だけ
時点離れた差)
∇2Yt の係数を間違える(正しくは (1−B)2=1−2B+B2 で Yt−2Yt−1+Yt−2 であり、Yt−Yt−2 ではない) 差分でデータ点が減ることを忘れる(n 点を1階差分すると n−1 点、2階差分で n−2 点になる。先頭が失われる) バックシフト演算子 B とラグ演算子 L を別物だと思う(BYt=LYt=Yt−1 で同じ操作の別名。2022年度の過去問はラグ作用素 L の表記でARMAモデル φ(L)Yt=2+θ(L)εt のように書いている) 差分すればいつでも定常になると思う(差分しすぎ=過差分は逆効果。定常になった時点で止める。積分次数 d は最小限に) 乗法的トレンドに通常差分だけを当てる(変動幅が比例拡大する系列はまず対数変換。対数差分で成長率に直すと効く)季節成分を通常差分で消そうとする(毎年同じ月の山には季節差分 ∇sYt=Yt−Yt−s が必要。s は季節周期)