Upload
tera-monagi
View
22.204
Download
0
Embed Size (px)
DESCRIPTION
単回帰分析を復習した後、単純に回帰分析を適用してはいけない『やってはいけないケース』を紹介。 そしてそれがなぜ起こるのかを実例を通して紹介した後、この問題を検出するための方法の1つという観点から単位根検定の紹介をします。
Citation preview
Rで学ぶ回帰分析と単位根検定
@teramonagi
#Tokyo.R122011/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/9923352/stockprice_sample.csv")
15
株価を予測できる
魔法の変数X導入
16
この場合の回帰式•日経平均(のようなもの) =
α+β×X+誤差
–α:切片(intercept)–β:回帰係数(x)
17
謎の変数Xによる回帰結果
18
キタ━ (゚∀゚) ━!!!
19
魔法の変数Xの
作り方を教えよう20
変数Xの作り方
•cumsum:累積和計算
• rnorm:正規分布に従う乱数
•nrow:行数取得
x <- cumsum(rnorm(nrow(nikkei225)))
…ということは21
どう見てもランダムウォークです。
本当に(ry22
別の例
N <- 10^4x <- 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