SlideShare a Scribd company logo
Rで学ぶ回帰分析
 と単位根検定
  @teramonagi

   #Tokyo.R12
  2011/03/05
本日の内容
•自己紹介
•Rで学ぶ回帰分析
•Rで学ぶ単位根検定
             2
自己紹介

       3
自己紹介
•ID:teramonagi
•職業:クオンツ
•英語を頑張る

                 4
Rで学ぶ回帰分析
  (単回帰・線形)


             5
回帰分析って何?
•変数間の関係を定量的に
 分析すること
•ここでは2つの変数の関
 係を一次関数で表現
               6
Tokyo.Rでの関連資料




                7
実際にやってみる
•Rではlm関数を使って単
 回帰分析することができ
 る

                8
Carsデータ
•1920 年代
 の車の速度
 speed と停
 止に要する
 距離dist
             9
Rで実行



       10
回帰式
•speed =
 α+β×dist+誤差
–α:切片(intercept)
–β:回帰係数(cars$dist)
                     11
図示してみると…



plot(cars$dist,cars$speed)
abline(lm(cars$speed~cars$dist))   12
t Value?

t値=回帰係数/標準誤差
    ⇒大きいほどよい!
   目安は絶対値が2以上
意味:回帰係数は0じゃないっぽい
               13
株価でも当ててみるか
•日経平均  に対して
     (のようなもの)


 回帰分析を適用

•うまくいけば…
                14
株価の取得
•RFinanceYJをちょこちょ
 こいじった
•結果をdropboxにUP済
nikkei225 <-
  read.csv("http://dl.dropbox.com/u/99
  23352/stockprice_sample.csv")
                                         15
株価を予測できる
魔法の変数X導入



           16
この場合の回帰式
•日経平均(のようなもの) =
        α+β×X+誤差
 –α:切片(intercept)
 –β:回帰係数(x)
                    17
謎の変数Xによる回帰結果




           18
キタ━ (゚∀゚) ━!!!

             19
魔法の変数Xの



作り方を教えよう   20
変数Xの作り方
x <- cumsum(rnorm(nrow(nikkei225)))

• cumsum:累積和計算
• rnorm:正規分布に従う乱数
• nrow:行数取得
                      …ということは
                                  21
どう見てもランダ
ムウォークです。
  本当に(ry
       22
別の例
   以下のようにデータを作る
N <- 10^4
x <- cumsum(rnorm(N))
y <- cumsum(rnorm(N))
matplot(matrix(c(x,y),ncol=2)
  ,type=“l”,ylab=“Value”,xlab=“Time“)
plot(x,y)
abline(lm(y~x))
summary(lm(y~x))
                                        23
Matplotの結果



             24
Plotの結果



          25
回帰の結果



        26
あ、あれ?

        27
元々、関係ないも
の同士を回帰し
  たのに
       28
あたかも“関係が
ある“という結果
になってしまった
       29
何でこんなことに?
•ざっくりでいうとランダ
 ムウォーク(=単位根
 過程)同士を回帰する
 とまずい
           30
見せかけの回帰
•関係のない単位根過程同
 士を回帰させた時に、回帰
 の説明力が高く見える現象

            31
見せかけの回帰
• Granger and Newbold(1974)
  –シミュレーションで発見
•Phillips(1986)
 –解析的に振舞いを証明

                              32
やってはいけない
• トレンドのあるものをそのまま回帰分
  析に使ってはいけないことが多い
• 株価、地価、GDP等のデータをそのま
  ま使うのは結構丌味いケースが多い
• そんなケースを見極めたい(=単位根
  過程を検出したい)
                   33
そこで単位根検定!

 …Let’s go to the next lesson
                            34
(補足)こういう時の処方箋
•VARモデルを使って回帰
•変数の差分を使って回帰

この処方箋も“万能ではない“
                35
Rで学ぶ単位根検定

        36
単位根検定とは
• 単位根検定とは変数がランダム
  ウォーク(単位根過程)であるか否
  かを検定する方法

• ランダムウォーク(単位根過程)

                    37
単位根検定とは
• 具体的には



としてβ=1の帰無仮説検定を行う
(※Dickey-Fuller検定の場合、定数・ト
 レンド項は非考慮)
                            38
単位根検定とは
•やり方いろいろ
–Dickey-Fuller検定
–拡張Dickey-Fuller検定
–Phillips-Perron検定
(使うモデルが違う)
                     39
単位根検定とは
•やり方いろいろ
–Dickey-Fuller検定
–拡張Dickey-Fuller検定
–Phillips-Perron検定
(使うモデルが違う)
                     40
単位根検定してみる
 •Phillips-Perron検定
> #単位根ない
> PP.test(rnorm(1000))
      Phillips-Perron Unit Root Test
data: rnorm(1000)
Dickey-Fuller = -30.8597, Truncation lag
  parameter = 7, p-value =0.01
                                           41
単位根検定してみる
 •Phillips-Perron検定
> #単位根あるやつ
> PP.test(cumsum(rnorm(1000)))
      Phillips-Perron Unit Root Test
data: cumsum(rnorm(1000))
Dickey-Fuller = -1.8941, Truncation lag
  parameter = 7, p-value = 0.6232
                                          42
株価に単位根検定
> PP.test(nikkei225$close)
      Phillips-Perron Unit Root Test
data: nikkei225$close
Dickey-Fuller = -2.0921, Truncation lag
  parameter = 6, p-value = 0.5393


単位根過程っぽい                                  43
変数Xに単位根検定
> PP.test(x)
      Phillips-Perron Unit Root Test
data: x
Dickey-Fuller = -0.6462, Truncation lag
  parameter = 6, p-value =0.9752


単位根過程っぽい                                  44
やってはいけない
  ケースに該当する
   疑いが強い
(※)誤差項にEngle-Granger共和分検定を実施し、共和分の関係があるかもチェック。
   最後に少しだけ解説載せました
                                                 45
差分系列だと?
• 株価・変数Xの差分系列に単
  位根検定
• 差分系列:「今日のデータ ー
  昨日のデータ」のように差分化
  した系列
• どうせなら他の検定方法をやっ
  てみる
                   46
拡張Dickey-Fuller検定
•tseriesパッケージ導入

install.packages("tseries")
library(tseries)

                              47
株価の差分に単位根検定
> adf.test(diff(nikkei225$close))
      Augmented Dickey-Fuller Test
data: diff(nikkei225$close)
Dickey-Fuller = -7.8962, Lag order = 8,
  p-value = 0.01
alternative hypothesis: stationary

単位根過程じゃないっぽい
                                          48
変数Xの差分に単位根検定
> adf.test(diff(x))
      Augmented Dickey-Fuller Test
data: diff(x)
Dickey-Fuller = -7.7904, Lag order = 8,
  p-value = 0.01
alternative hypothesis: stationary

単位根過程じゃないっぽい
                                          49
両方共単位根過
程ではないので
見せかけの回帰
には該当しない
      50
最後にこの差分
系列で回帰分析
 してみよう!
      51
差分系列の回帰



          52
全然意味ない

         53
まとめ
• 時系列データを回帰分析する
  前には注意が必要
• 単位根過程同士で回帰をす
  ると見せかけの回帰になる
• それを避けるためにもとりあ
  えず単位根検定しとけ
              54
(おまけ)共和分関係
• 単位根を持つ系列同士に長期的な関係が
  あるケース
• 単位根過程単独では予想できない動きもこ
  の組み合わせならば予測可能になる
• Engle-Granger共和分検定で検出
• Grangerはこの業績で2003年ノーベル経
  済学賞
• 購買力平価説の検定に使われたりする

                        55

More Related Content

Rで学ぶ回帰分析と単位根検定