読者です 読者をやめる 読者になる 読者になる

暇人の研究室

金融工学やR言語・統計学について書いてます。

<

【R言語】自己相関係数の算出方法

 

株価収益率などの時系列データではデータの値と観測時点が記録されおり、時系列分析では、このデータの並び順に意味を見出すことが分析において重要になってきます。

 

 

なので、通常の分析では「異なる2つの変数」の相関関係を計算するのに対して時系列分析では「今のデータと〇日前のデータ」といった感じに時間差を考慮した自分自身との相関関係を自己相関関係といい、これを数値化したものが自己相関係数です。

 

 

なおずらす度合いをラグと言い、もし1時点ずらして計算した自自己相関係数があった場合これはラグ1の自己相関係数と呼ばれます。

 

 

詳しくは↓記事で

www.dmjtmj-stock.com

 

 

時系列関係は別に1時点だけではなく数地点ずらした場合にも考えることができます。そしてラグnと自己相関係数の推移をグラフで視覚的イメージ化したものをコレログラムと言います。

 

 

ざっと自己相関係数について説明したところで本題である、Rによる自己相関係数の計算とコレログラフを描画を行なっていきます。

 

 

使用するデータ

2005年から2016年の任天堂の株価収益率

(※今回はこのデータをr.nintenというオブジェクトに入れています)

 

>acf(ts.ninten,plot=F)  ##コレログラムを出力せず数値を計算する

 

その結果、下のようなものが出力されます。

 

f:id:oruka199665:20170328214842j:plain

 

これによってラグが1から34までの自己相関係数できました。次はコレログラムを描画していきます。

 

> acf(r.ninten)

f:id:oruka199665:20170328215143p:plain

 

この青い線はこのラグの自己相関係数が0であるという帰無仮説に対しての95%信頼区間です。なので、点線を超えているものは有意水準5%を棄却し、有意であると判断できます。

 

 

つまりこのグラフの意味は1日前の収益率にしか有意な相関関係がないという事を意味しています。一応もしこれがラグ7の値まで有意であったとしても単純に7日前の値と有意な自己相関関係があるという訳にはなりません。(ラグ1による間接的関係があるため)

 

 

そして、今回のデータにおいてラグ1の自己相関関係があるということの意味は

 

・任天堂の今日の株価と昨日の株価には関係がある

・任天堂の昨日の株価と一昨日の株価には関係がある

が成り立つという事になります。

 

 

次に一昨日と今日の株価に関係があるのかを調べていきます。そのためには昨日の影響を取り除いた今日と一昨日の数値の関係を調べる必要があります。(このような今日の値と一昨日の値には昨日の値の影響が若干関係しているという考えを推移律といいます。)そのための自己相関係数を偏自己相関係数と言います。

 

 

Rで偏自己相関係数を計算するにはさっきにacf関数に引数をつけるだけで計算できます。

 

 

>acf(r.ninten,plot=F,type="p")  ## 偏自己相関係数の数値を計算

>acf(r.ninten,type="p")  ## 偏自己相関係数のグラフを出力

 

 

その結果が下のようになります。

 

f:id:oruka199665:20170328221849j:plain

 

f:id:oruka199665:20170328221743p:plain

 

 

偏自己相関係数では推移律による間接的な影響が引かれるため、ラグnの自己相関係数の値は基本的に小さくなります。

 

 

青線はさっきと同じように95%信頼区間であり、このグラフからラグ1のみが有意であり、したがって任天堂の収益率は1日前の収益率とのみ直接的な関係があるという事になります。