SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
とある金融屋の統計技師が
時系列解析してみた
~To my dear wife, Phoenix~
第33回 勉強会@東京(#TokyoR)
@teramonagi
2
本資料は個人的な勉強会のために作成したもの
です。本情報の内容については万全を期しており
ますが、その内容を保証するものではありません。
これらの情報によって生じたいかなる損害につい
ても、情報提供者は一切の責任を負いません。な
お、本資料における意見、見解等はすべて筆者の
個人的なものであり、筆者の属する組織の意見、
見解等ではないことをあらかじめご了承ください。
CAUTION
自己紹介
• 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がいる
# 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
> 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
#データの変換関数群。変化率(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
> 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
そもそもなぜ変換がいるのか?
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.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)
回帰モデル
株価変化率
||
α+β×SP500変化率+γ×金利変化
18
株価変化率が、どう金利変化に依存する
のかを評価したい(γを評価したい)
ローリング回帰とは
時系列データ
(時間方向)
時系列データ全体
回帰分析1
回帰分析4
回帰分析2
回帰分析3
各回帰分析期間に対し、回帰係数を算
出、回帰係数の時系列変化を取得する
ローリング回帰
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パッケージの機能
結果の表示 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
とある弁当屋の乱子氏による解説
23
一般にPCGに代表される電力・ガスの公益関連
株は巨大設備・施設等の固定資産が多く、その
支払いを有利子負債でファイナンスしているわ。
従って金利が低下した場合は支払利息が減って
業績面でプラス(株価上昇材料)となり、逆に金
利が上昇した場合は支払利息が増えて業績面
でマイナス(株価下落材料)となる傾向があるわ。
γはその傾向を反映してマイナスになっているの
ね。
一方、IBMは特段強く金利からの影響は受けて
いないように見えるわね。
24
乱子すげぇ!!!
わかりやすい!!!
買うしかない!!!
Enjoy!!!
25

Mais conteúdo relacionado

Mais procurados

階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
takehikoihayashi
 

Mais procurados (20)

因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
 
Stanでガウス過程
Stanでガウス過程Stanでガウス過程
Stanでガウス過程
 
Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
 
これからの仮説検証・モデル評価
これからの仮説検証・モデル評価これからの仮説検証・モデル評価
これからの仮説検証・モデル評価
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
DID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactDID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpact
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数
 
心理学者のためのGlmm・階層ベイズ
心理学者のためのGlmm・階層ベイズ心理学者のためのGlmm・階層ベイズ
心理学者のためのGlmm・階層ベイズ
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
ベイズモデリングで見る因子分析
ベイズモデリングで見る因子分析ベイズモデリングで見る因子分析
ベイズモデリングで見る因子分析
 
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 

Mais de Nagi Teramo

healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れるhealthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる
Nagi Teramo
 
続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)
Nagi Teramo
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
Nagi Teramo
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
 

Mais de Nagi Teramo (20)

第86回R勉強会@東京 LT資料
第86回R勉強会@東京 LT資料第86回R勉強会@東京 LT資料
第86回R勉強会@東京 LT資料
 
Rでを作る
Rでを作るRでを作る
Rでを作る
 
Reproducebility 100倍 Dockerマン
Reproducebility 100倍 DockerマンReproducebility 100倍 Dockerマン
Reproducebility 100倍 Dockerマン
 
healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れるhealthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる
 
闇と向き合う
闇と向き合う闇と向き合う
闇と向き合う
 
機械の体を手に入れるのよ、 鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、 鉄郎!!!
 
続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
 
Ultra Lightning Talk × 3
Ultra Lightning Talk × 3Ultra Lightning Talk × 3
Ultra Lightning Talk × 3
 
F#談話室(17)
F#談話室(17)F#談話室(17)
F#談話室(17)
 
RFinanceJはじめました
RFinanceJはじめましたRFinanceJはじめました
RFinanceJはじめました
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
 
お前の逐モン、GETだぜ!
お前の逐モン、GETだぜ!お前の逐モン、GETだぜ!
お前の逐モン、GETだぜ!
 
Trading volume mapping R in recent environment
Trading volume mapping R in recent environment Trading volume mapping R in recent environment
Trading volume mapping R in recent environment
 
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
 
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
 
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
 
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
 
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

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