データセット&分析レシピ

データ間の因果関係を検定する「グレンジャーの因果性検定」

時系列データの分析を家計調査で学ぶ(6)

2015.11.11小谷 祐一朗=おたに代表取締役

消費データ R 分析

様々な場面で用いられる時系列データの分析には、通常の分析と異なる部分がある。時系列データの処理や分析手法を6回に分けて紹介する。第6回は時系列データの因果関係の検定である。

分析の素材
サンプルデータ:家計調査日別品目分類(キャベツ、たけのこ、豚肉:2015年4月及び2015年5月)/ データ出典:総務省統計局『家計調査結果』【ダウンロード】
ソフト:R(Rの使い方(1)(2)
分析方法:グレンジャーの因果性検定

 因果関係と言えば何を思い浮かべるだろうか。「インフルエンザウィルスがインフルエンザを引き起こす」は因果関係があるが、「気温が高くなると、ビールがよく売れる」は相関関係である。前者の場合は、ウィルスという原因がインフルエンザという結果を引き起こしているのに対し、後者は気温が高いときはビールが売れるという関係を表しているのにすぎない。

 こういった因果関係を統計的に推論することは非常に難しい。しかし、「グレンジャーの因果性検定」は「因果関係」を統計的に検定する方法である。ただし、それは「AがBを引き起こす」ではなく、「Aのデータを使えば、Bのデータを予測できるだろう」という関係をテストする。これがわかるだけでも、データを中心に物事考える際には一助となる。本稿では、時系列データにおけるデータの関係を把握する手法としてグレンジャーの因果性検定を紹介する。

 使うデータはVAR分析と同じく階差をとったキャベツ、たけのこ、豚肉の支出データである。

 まずは、パッケージ「vars」をRにロードする。

> install.packages("vars")
> library(vars)

 次にRにデータをロードする。

> d <- read.csv(' jikeiretsu6.csv')

 ロードしたデータには日付が入っているので、データだけにする。

> x <- data.frame(キャベツ=d$キャベツ,たけのこ=d$たけのこ,豚肉=d$豚肉)

 「causality」がグレンジャーの因果性検定を行うための関数である。キャベツからたけのこと豚肉へのグレンジャーの因果性検定をするには次のように入力する。

> causality(VAR(x, p=VARselect(x)$selection[1]),cause="キャベツ")

 次のような結果が出力される。

> causality(VAR(x, p=VARselect(x)$selection[1]),cause="キャベツ")
$Granger

Granger causality H0: キャベツ do not Granger-cause たけのこ 豚肉

data: VAR object VAR(x, p = VARselect(x)$selection[1])
F-Test = 1.2936, df1 = 12, df2 = 105, p-value = 0.2332

$Instant

H0: No instantaneous causality between: キャベツ and たけのこ 豚肉

data: VAR object VAR(x, p = VARselect(x)$selection[1])
Chi-squared = 9.8344, df = 2, p-value = 0.007319

 まず、$Grangerという部分がグレンジャー因果を示している。p値をみると0.2332となっており、一般的な有意水準である95%に届いていない(p値が0.05以下であれば95%有意である)。この場合は、「たけのこと豚肉の支出はキャベツに対してグレンジャー因果を持たない」、つまり、「たけのこと豚肉からキャベツは予測できない」という結論になる。

 同様に、「たけのこからキャベツと豚肉は予測できるか」「豚肉からキャベツとたけのこは予測できるか」についても見てみよう。

> causality(VAR(x, p=VARselect(x)$selection[1]),cause="たけのこ")
$Granger

Granger causality H0: たけのこ do not Granger-cause キャベツ 豚肉

data: VAR object VAR(x, p = VARselect(x)$selection[1])
F-Test = 1.5381, df1 = 12, df2 = 105, p-value = 0.1221

$Instant

H0: No instantaneous causality between: たけのこ and キャベツ 豚肉

data: VAR object VAR(x, p = VARselect(x)$selection[1])
Chi-squared = 1.0261, df = 2, p-value = 0.5987

> causality(VAR(x, p=VARselect(x)$selection[1]),cause="豚肉")
$Granger

Granger causality H0: 豚肉 do not Granger-cause キャベツ たけのこ

data: VAR object VAR(x, p = VARselect(x)$selection[1])
F-Test = 2.2216, df1 = 12, df2 = 105, p-value = 0.01552

$Instant

H0: No instantaneous causality between: 豚肉 and キャベツ たけのこ

data: VAR object VAR(x, p = VARselect(x)$selection[1])
Chi-squared = 9.9279, df = 2, p-value = 0.006985

 それぞれ、p値は0.1221(87.79%有意)と0.01552(98.45%有意)である。つまり、たけのこの支出からキャベツと豚肉の支出は予測できるとなる。3品の関係を表にまとめると下記のようになる。

 豚肉の支出からたけのことキャベツの支出は予測できるのに対し、キャベツやたけのこの支出からは豚肉の支出は予測し難い。ここからは豚肉の在庫や発注量によって、キャベツやたけのこの在庫や発注量をコントロールした方がよいといったことが考えられる。つまり、豚肉を起点として在庫や店頭での販売施策を考えた方が、キャベツやたけのこを中心に考えるよりよいのではないか、という示唆を得ることができる。グレンジャーの因果性検定は、通常の因果関係を証明するものではないが、データドリブンで考えるためには有用な手法といえよう。

印刷

関連記事

日経ビッグデータ関連記事

日経ビッグデータの最新号

8月号特集

「眼」が拓く深層学習ビジネス

保険見積もりを10分で作成、物流センター省人化、ロボットで顧客分析…

年間購読のご案内

申し込む

お問い合わせ