百科事典
定義
プリホワイトニングprewhiteningとは、CCFを計算する際に時系列データを白色ノイズに変換し、二つのデータ間の相関関係をより正確に把握する方法だ。
実践 1
できれば、これがどのように可能かを数式的にも完全に理解することをお勧めするが、まずは以下のデータを見てみよう。
bluebird
は、ニュージーランドのポテトチップスを製造するブルーバード社に関するデータであり、平均価格と販売量のログを取った二つの時系列データを含んでいる。データだけを見ると、販売量と価格は強い負の相関関係を持っているように思える。これをCCFで確認してみよう。
思った通り、二つのデータは負の相関関係を持っている。しかし、ラグだけでなくその周辺のラグにも相関関係があることをどう受け止めるべきか考える必要がある。基本的にパターンがあるかないかにかかわらず、、、は本質的にその値に大きな違いはない。急騰や急落はないが、直前や直後であればある程度似た値であることが普通だからだ。
もしとが相関関係を持つなら、と、もある程度希薄な相関関係を持つのは普通だ。これは、実際に相関関係があるとかないとかよりも、数式的にあまりにも当然の結論なので、本当に相関関係があってもなくても、何とも言えない状況なのだ。
一方、プリホワイトニングをすると、上のようにについてのみ相関関係があることが明らかになる。Rではccf()
の代わりにprewhiten()
を使うことで、プリホワイトニングされたデータのCCFを簡単に見ることができる。
プリホワイトニングは、このように数式的に生じる相関関係を取り除く。プリホワイトニングされたデータ同士のCCFを計算したときにも相関関係が明らかになるなら、これらの変数は相関関係があると見なされる。反対に、プリホワイトニングによってCCFが意味がないものとして現れたら、それは本当の相関関係ではなかったとみなされる。
数式的説明
数式的に見ると、なぜこの方法がプリホワイトニングなのか理解しやすくなる。簡単な例として、がARIMAモデルから出てきたと考えてみよう。 これをに関して表すと、 差分をバックシフトに関して解くと、 この方程式を満たす線形オペレータをフィルタfilterと呼び、フィルタによってが白色ノイズに変換されるプロセスをプリホワイトニングという2。
一般的なARIMAモデルもこのようにしてプリホワイトニングする。人の手ではなくコンピューターで行う場合は、変数選択基準に従って自動的にモデルをフィッティングし、その残差を使用すればいい。
は白色ノイズとは言え、あくまでも自体の情報を通してのみ、と同様に扱われる。新しい変数と何らかの関係があるとしても、プリホワイトニングをする際にはその情報は考慮されないため、その相関関係は残差に残る。したがって、プリホワイトニングされたと間のCCFを計算することで、実際にどのような時差で交差相関関係を持っているかがわかる。
フィルタが線形であるため、との性質を保ちながら相関関係を分析する根拠となる。とが互いに独立だとした場合、標準化されたCCF(sCCF)が以下のように正規分布に従うためだ。 もちろん、は自己相関関数を意味する。しかし、プリホワイトニングを行った後は、であり、実際の仮説検定は帰無仮説の下で次を仮定する。 要するに、プリホワイトニングを行った後でも、仮説検定自体は変わらないということだ。
コード
library(TSA)
data("bluebird")
win.graph(6,5); plot(bluebird,yax.flip = T)
win.graph(6,4)
ccf(bluebird[,1],bluebird[,2],main="가격과 판매량의 CCF",ylab="CCF")
win.graph(6,4)
prewhiten(bluebird[,1],bluebird[,2],main="가격과 판매량의 사전백화 CCF",ylab="CCF")
out<-lm(log.sales~price,data=bluebird); summary(out); plot(rstudent(out))