Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
とある金融屋の統計技師が
時系列解析してみた
~To my dear wife, Phoenix~
第33回 勉強会@東京(#TokyoR)
@teramonagi
2
本資料は個人的な勉強会のために作成したもの
です。本情報の内容については万全を期しており
ますが、その内容を保証するものではありません。
これらの情報によって生じたいかなる損害につい
ても、情報提供者は一切の責任を負いません。な
お、本資料...
自己紹介
• ID:@teramonagi
3
とある弁当屋の統計技師
4
データサイエンティスト
日本が誇る
最強の 使い
石田基広氏著
発売予定:2013/9/26
税込価格:1,365円
共立出版
とある弁当屋の統計技師
丸善出版に心配されるヤヴァさ5
データサイエンティスト
とある弁当屋の統計技師
6
データサイエンティスト
• “とある弁当屋”で、データサイエンティスト
が活躍する統計の入門書!
• データの要約、(単|重|ロジスティック)回帰
モデルまでの基本をしっかりカバー!
• 更に、これらの内容をがっつり...
その他、同著者のおススメ本
7
~初心者向け~
とりあえずR言語への
とっかかりとなる一冊
~中・上級者向け~
辞書的に手元に
置いておきたい一冊
8
本題へ
本資料の概要
• (重)回帰分析の係数が(時系列
データに関して言えば)、分析に使
用するデータ期間に応じて相当動く
という事を理解する
• どの程度ズレ得るのかを
実際にやってみる
9
まずはデータのダウンロード
• 米国金融市場より
–米国債10年金利
–S&P500指数
–IBMの株価
–Pacific Gas & Electricの株価
を取得
10
まずはデータのダウンロード
11
# quantmodパッケージのインストール
install.packages(“quantmod”)
library(quantmod)
# quantmod0.4系だとauto.assign=TRUEがいる...
まずはデータのダウンロード
12
> head(data)
T10Y SP500 IBM PCG
2003-01-02 4.07 909.03 68.98 10.56
2003-01-03 4.05 908.59 69.90 10.41
200...
データの変換(変化率・差分)
13
#データの変換関数群。変化率(ROC) or 差分(diff)
converter <- list(
function(x){diff(x)},
function(x){ROC(x, type="discre...
データの変換
14
> head(data.converted)
T10Y SP500 IBM PCG
2003-01-03 -0.02 -4.840e-04 0.013337 -0.014204
2003-01-06 0.04 2.247e-...
そもそもなぜ変換がいるのか?
15TJOssanのサイトを見て下さい
※ http://tjo.hatenablog.com/entry/2013/08/16/095536 より
そもそもなぜ変換がいるのか?
16
http://www.slideshare.net/teramonagi/r-7066155より
拙著でよければ、あるいはこちら
x
Density
T10Y
-0.05 0.05 0.10
0.38*** 0.30
***
-0.10 0.00 0.05 0.10
-0.40.0
0.13
***
-0.050.10
x
Density
SP500
0.72*** 0....
回帰モデル
株価変化率
||
α+β×SP500変化率+γ×金利変化
18
株価変化率が、どう金利変化に依存する
のかを評価したい(γを評価したい)
ローリング回帰とは
時系列データ
(時間方向)
時系列データ全体
回帰分析1
回帰分析4
回帰分析2
回帰分析3
各回帰分析期間に対し、回帰係数を算
出、回帰係数の時系列変化を取得する
ローリング回帰
20
# windowサイズ250(営業日)でのローリング回帰(IBM, PCG)
# …からの回帰係数(切片・SP500・10年金利)取得
size.window <- 250
coefs.pcg <- rollapplyr(...
結果の表示 with rCharts
21
# rChartsのインストール
install.packages("devtools")
library(devtools)
install_github('rCharts', 'ramnathv'...
回帰係数γの時系列変化表示
22
とある弁当屋の乱子氏による解説
23
一般にPCGに代表される電力・ガスの公益関連
株は巨大設備・施設等の固定資産が多く、その
支払いを有利子負債でファイナンスしているわ。
従って金利が低下した場合は支払利息が減って
業績面でプラス(株価上昇材...
24
乱子すげぇ!!!
わかりやすい!!!
買うしかない!!!
Enjoy!!!
25
Upcoming SlideShare
Loading in …5
×

とある金融屋の統計技師が時系列解析してみた

23,428 views

Published on

第33回R勉強会@東京(#TokyoR)の資料

Published in: Technology
  • Be the first to comment

とある金融屋の統計技師が時系列解析してみた

  1. 1. とある金融屋の統計技師が 時系列解析してみた ~To my dear wife, Phoenix~ 第33回 勉強会@東京(#TokyoR) @teramonagi
  2. 2. 2 本資料は個人的な勉強会のために作成したもの です。本情報の内容については万全を期しており ますが、その内容を保証するものではありません。 これらの情報によって生じたいかなる損害につい ても、情報提供者は一切の責任を負いません。な お、本資料における意見、見解等はすべて筆者の 個人的なものであり、筆者の属する組織の意見、 見解等ではないことをあらかじめご了承ください。 CAUTION
  3. 3. 自己紹介 • ID:@teramonagi 3
  4. 4. とある弁当屋の統計技師 4 データサイエンティスト 日本が誇る 最強の 使い 石田基広氏著 発売予定:2013/9/26 税込価格:1,365円 共立出版
  5. 5. とある弁当屋の統計技師 丸善出版に心配されるヤヴァさ5 データサイエンティスト
  6. 6. とある弁当屋の統計技師 6 データサイエンティスト • “とある弁当屋”で、データサイエンティスト が活躍する統計の入門書! • データの要約、(単|重|ロジスティック)回帰 モデルまでの基本をしっかりカバー! • 更に、これらの内容をがっつり勉強するた めのサポートサイトも開設(予定)! • この秋、これを買わずしてデータ サイエンティストは語れない •今すぐ予約だ!
  7. 7. その他、同著者のおススメ本 7 ~初心者向け~ とりあえずR言語への とっかかりとなる一冊 ~中・上級者向け~ 辞書的に手元に 置いておきたい一冊
  8. 8. 8 本題へ
  9. 9. 本資料の概要 • (重)回帰分析の係数が(時系列 データに関して言えば)、分析に使 用するデータ期間に応じて相当動く という事を理解する • どの程度ズレ得るのかを 実際にやってみる 9
  10. 10. まずはデータのダウンロード • 米国金融市場より –米国債10年金利 –S&P500指数 –IBMの株価 –Pacific Gas & Electricの株価 を取得 10
  11. 11. まずはデータのダウンロード 11 # quantmodパッケージのインストール install.packages(“quantmod”) library(quantmod) # quantmod0.4系だとauto.assign=TRUEがいる # 0.5系からはなくてもOKらしい # 10年国債金利(アメリカ), S&P500(アメリカの株価指数, IBM, PCGの株価を取得 # 今回はアメリカ市場データを用いている # …からのデータのマージ&欠損(NA)の除去 data <- na.omit( merge( getSymbols(“DGS10”, src=“FRED”, auto.assign=FALSE), getSymbols(“SP500”, src=“FRED”, auto.assign=FALSE), getSymbols(“IBM”, src=“yahoo”, auto.assign=FALSE, from=“2003-01-01”)[,6], getSymbols(“PCG”, src=“yahoo”, auto.assign=FALSE, from=“2003-01-01”)[,6] )) colnames(data) <- c(“T10Y”, “SP500”, “IBM”, “PCG”) head(data) ※裏では時系列処理のxtsパッケージ等も呼ばれてます
  12. 12. まずはデータのダウンロード 12 > head(data) T10Y SP500 IBM PCG 2003-01-02 4.07 909.03 68.98 10.56 2003-01-03 4.05 908.59 69.90 10.41 2003-01-06 4.09 929.01 71.56 10.92 2003-01-07 4.04 922.93 73.63 10.63 2003-01-08 4.00 909.93 72.08 10.93 2003-01-09 4.19 927.58 74.48 11.02
  13. 13. データの変換(変化率・差分) 13 #データの変換関数群。変化率(ROC) or 差分(diff) converter <- list( function(x){diff(x)}, function(x){ROC(x, type="discrete")}, function(x){ROC(x, type="discrete")}, function(x){ROC(x, type="discrete")} ) #dataの各列に対して各convertを適用し,data.frameとして整形 data.converted <- na.omit( do.call("cbind",lapply( 1:length(converter), function(i) {converter[[i]](data[,i])} ) ) )
  14. 14. データの変換 14 > head(data.converted) T10Y SP500 IBM PCG 2003-01-03 -0.02 -4.840e-04 0.013337 -0.014204 2003-01-06 0.04 2.247e-02 0.023748 0.048991 2003-01-07 -0.05 -6.544e-03 0.028926 -0.026556 2003-01-08 -0.04 -1.408e-02 -0.021051 0.028222 2003-01-09 0.19 1.939e-02 0.033296 0.008234 2003-01-10 -0.03 -1.078e-05 0.007787 0.000000
  15. 15. そもそもなぜ変換がいるのか? 15TJOssanのサイトを見て下さい ※ http://tjo.hatenablog.com/entry/2013/08/16/095536 より
  16. 16. そもそもなぜ変換がいるのか? 16 http://www.slideshare.net/teramonagi/r-7066155より 拙著でよければ、あるいはこちら
  17. 17. x Density T10Y -0.05 0.05 0.10 0.38*** 0.30 *** -0.10 0.00 0.05 0.10 -0.40.0 0.13 *** -0.050.10 x Density SP500 0.72*** 0.55*** x Density IBM -0.050.10 0.37*** -0.4 -0.2 0.0 0.2 -0.100.05 -0.05 0.05 0.10 x Density PCG 相関構造の可視化(概要把握) 17 # 相関構造の可視化(psychパッケージのpairs.panels関数も似た感じ) install.packages("PerformanceAnalytics") library(PerformanceAnalytics) chart.Correlation(data.converted, histogram=TRUE)
  18. 18. 回帰モデル 株価変化率 || α+β×SP500変化率+γ×金利変化 18 株価変化率が、どう金利変化に依存する のかを評価したい(γを評価したい)
  19. 19. ローリング回帰とは 時系列データ (時間方向) 時系列データ全体 回帰分析1 回帰分析4 回帰分析2 回帰分析3 各回帰分析期間に対し、回帰係数を算 出、回帰係数の時系列変化を取得する
  20. 20. ローリング回帰 20 # windowサイズ250(営業日)でのローリング回帰(IBM, PCG) # …からの回帰係数(切片・SP500・10年金利)取得 size.window <- 250 coefs.pcg <- rollapplyr( data.converted, size.window, function(x){ coef(lm(PCG~SP500+T10Y, data=x)) }, by.column = FALSE) names(coefs.pcg) <- c("PCG.intercept", "PCG.SP500", "PCG.T10Y") coefs.ibm <- rollapplyr( data.converted, size.window, function(x){ coef(lm(IBM~SP500+T10Y, data=x)) }, by.column = FALSE) names(coefs.ibm) <- c("IBM.intercept", "IBM.SP500", "IBM.T10Y") ※裏では時系列処理のxtsパッケージ等も呼ばれてます ※rollapplyrはxtsパッケージの機能
  21. 21. 結果の表示 with rCharts 21 # rChartsのインストール install.packages("devtools") library(devtools) install_github('rCharts', 'ramnathv') library(rCharts) # γのPLOT,数が多いので500個だけ coefs.plotted <- merge(coefs.pcg, coefs.ibm) coefs.plotted <- coefs.plotted[floor(seq(1, nrow(coefs.plotted), length.out=500)),] coefs.plotted <- na.omit(data.frame(date=as.character(index(coefs.plotted)), coefs.plotted)) m1 <- mPlot(x="date", y=c("PCG.T10Y","IBM.T10Y"), type='Line', data=coefs.plotted) m1$set(pointSize = 3, lineWidth = 2) m1 ※出力はhtml+javascriptでインタラクティブでびゅーてぃふるなグラフが作成可能
  22. 22. 回帰係数γの時系列変化表示 22
  23. 23. とある弁当屋の乱子氏による解説 23 一般にPCGに代表される電力・ガスの公益関連 株は巨大設備・施設等の固定資産が多く、その 支払いを有利子負債でファイナンスしているわ。 従って金利が低下した場合は支払利息が減って 業績面でプラス(株価上昇材料)となり、逆に金 利が上昇した場合は支払利息が増えて業績面 でマイナス(株価下落材料)となる傾向があるわ。 γはその傾向を反映してマイナスになっているの ね。 一方、IBMは特段強く金利からの影響は受けて いないように見えるわね。
  24. 24. 24 乱子すげぇ!!! わかりやすい!!! 買うしかない!!!
  25. 25. Enjoy!!! 25

×