Granger因果による
時系列データの因果推定
株式会社リクルートコミュニケーションズ
尾崎 隆 (Takashi J. OZAKI, Ph. D.)
2015/8/6 1
今更ですが、自己紹介を…
ブログやってます
2015/8/6 2
今更ですが、自己紹介を…
 実はGranger因果を使った論文を大昔書いたことがあります
2015/8/6 3
(Ozaki, PLoS One, 2011)
今回のお題はこちらから(以下この2冊から全て引用)
2015/8/6 4
今回の大前提
2015/8/6 5
+
で、基本的にやっていきます
2015/8/6 6
(下準備:サンプルデータを取っておく)
下準備
2015/8/6 7
サンプルデータとして{RFinanceYJ}で株価時系列を取ってくる
> library(RFinanceYJ)
> st1<-quoteStockTsData('4751.t',since='2012-01-01',date.end='2013-07-31')
> st2<-quoteStockTsData('2432.t',since='2012-01-01',date.end='2013-07-31')
> st3<-quoteStockTsData('3632.t',since='2012-01-01',date.end='2013-07-31')
> st4<-quoteStockTsData('4755.t',since='2012-01-01',date.end='2013-07-31')
> st5<-quoteStockTsData('3793.t',since='2012-01-01',date.end='2013-07-31')
> stock1<-ts(st1$adj_close)
> stock2<-ts(st2$adj_close)
> stock3<-ts(st3$adj_close)
> stock4<-ts(st4$adj_close)
> stock5<-ts(st5$adj_close)
下準備
2015/8/6 8
2015/8/6 9
Granger因果の基礎:
VAR(ベクトル自己回帰)モデル
2015/8/6 10
※面倒なので単変量時系列、即ち
AR, MA, ARIMA過程の説明は飛ばします
自己回帰の発想は後で話します
VAR (Vector Auto Regressive)モデルとは
 VAR(p)過程
 ベクトル自己回帰過程
 ラグ次数pと各係数について
 「見かけ上無相関なモデル」(SUR)で各説明変数が相互に共
通なので推定は容易、ただOLSを解くだけ(AICで次数選択)
 多変量時系列モデリングの基本
 AR過程を並べるだけでパラメータいっぱい
 だいたいの多変量時系列はこれで十分表現できる
2015/8/6 11
Rでは{vars}パッケージで実践できる
 とりあえず株価3系列のVARモデルを推定してみる
※ある程度スパイクの少ない3系列に限定しました
2015/8/6 12
> vstock<-cbind(stock2,stock3,stock4) 株価3系列のマトリクスを組む
> VARselect(vstock,lag.max=5) VAR次数pを推定
$selection
AIC(n) HQ(n) SC(n) FPE(n)
1 1 1 1 VAR次数p = 1ということに
$criteria
1 2 3 4 5
AIC(n) 2.245074e+01 2.247979e+01 2.249565e+01 2.252026e+01 2.251009e+01
HQ(n) 2.249960e+01 2.256531e+01 2.261782e+01 2.267908e+01 2.270557e+01
SC(n) 2.257395e+01 2.269543e+01 2.280370e+01 2.292071e+01 2.300296e+01
FPE(n) 5.626414e+09 5.792362e+09 5.885075e+09 6.031926e+09 5.971320e+09
> vstock.var<-VAR(vstock,p=1) VAR(){vars}関数で次数p=1を与えて係数推定
{vars}:多変量時系列をモデリング・予測・因果性の推定
2015/8/6 13
> summary(vstock.var)
VAR Estimation Results:
=========================
Endogenous variables: stock2, stock3, stock4
Deterministic variables: const
Sample size: 389
Log Likelihood: -6010.006
Roots of the characteristic polynomial:
0.9926 0.9926 0.9615
Call:
VAR(y = vstock, p = 1)
Estimation results for equation stock2:
=======================================
stock2 = stock2.l1 + stock3.l1 + stock4.l1 + const
Estimate Std. Error t value Pr(>|t|)
stock2.l1 0.96768 0.01167 82.953 < 2e-16 ***
stock3.l1 -0.01560 0.01005 -1.552 0.121417
stock4.l1 -0.08362 0.02780 -3.008 0.002800 **
const 172.01591 48.83806 3.522 0.000479 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 80.51 on 385 degrees of freedom
Multiple R-Squared: 0.953, Adjusted R-squared: 0.9526
F-statistic: 2601 on 3 and 385 DF, p-value: < 2.2e-16 (以下省略)
VAR係数の概要はsummary()で
{vars}:多変量時系列をモデリング・予測・因果性の推定
2015/8/6 14
> plot(vstock.var)
VARモデルの推定残差・自己相関・偏自己相関はplot.varest()で
{vars}:多変量時系列をモデリング・予測・因果性の推定
2015/8/6 15
> vstock.prd<-predict(vstock.var,n.ahead=100,ci=0.95)
> plot(vstock.prd)
VARモデルの予測はpredict.varest()で
2015/8/6 16
いよいよここからGranger因果
Granger因果を考え出した人
2015/8/6 17
Clive W. J. Granger (1934-2009)
2003年ノーベル経済学賞
*Photo from Wikimedia Commons
**実は授賞理由は共和分に関する理論的研究の成果です
Granger因果の基本的な発想
2015/8/6 18
時系列Aの未来値予測が、
時系列Bを予測式に入れることに
よって改善する場合、
「Grangerの意味でBAなる因果関係にある」
と言う
Granger因果の基本的な発想
2015/8/6 19
時系列AのOLS残差が、
時系列Bを予測式に入れることで
OLS残差が小さくなる場合、
「Grangerの意味でBAなる因果関係にある」
と言う
Granger因果の基本的な発想
2015/8/6 20
時系列AのVARモデルのOLS残差が、
時系列BをVARモデルに入れることで
OLS残差が小さくなる場合、
「Grangerの意味でBAなる因果関係にある」
と言う
これなら定式化できる
Granger因果のイメージ
2015/8/6 21
時系列Aの生データ
Granger因果のイメージ
2015/8/6 22
時系列Aの生データ
時系列AのARモデル
Granger因果のイメージ
2015/8/6 23
時系列Aの生データ
時系列Aの
ARモデルの
OLS誤差
時系列AのARモデル
Granger因果のイメージ
2015/8/6 24
時系列Aの生データ
時系列Aの
ARモデルの
OLS誤差
時系列Bの生データ
時系列AのARモデル
イメージ
2015/8/6 25
時系列Aの生データ
時系列AとBのVARモデル
時系列Aの
ARモデルの
OLS誤差
時系列Bの生データ
時系列AのARモデル
Granger因果のイメージ
2015/8/6 26
時系列Aの生データ
時系列AとBのVARモデル
時系列Aの
ARモデルの
OLS誤差
時系列Bの生データ
時系列AのARモデル
時系列ABの
VARモデルの
OLS誤差
改善!
Granger因果のイメージ
2015/8/6 27
時系列AとBのVARモデル
時系列Bの生データ
時系列Aの生データ
「Grangerの意味でBAなる因果関係あり」
沖本本から定義の抜粋
2015/8/6 28
Granger因果の定義(1)
2015/8/6 29
Granger因果の定義(2)
2015/8/6 30
Granger因果の定義(3)
2015/8/6 31
※厳密な説明は例えばHamilton本pp.302-8などを参照のこと
Granger因果性検定はcausality()で
2015/8/6 32
> dstock<-diff(vstock,lag=1) Granger因果性検定なので1階階差を取る
> VARselect(dstock,lag.max=5)
> dstock.var<-VAR(dstock,p=1)
> causality(dstock.var,cause=“stock2”) stock2からの因果性を見る
$Granger
Granger causality H0: stock2 do not Granger-cause stock3 stock4
data: VAR object dstock.var
F-Test = 1.8703, df1 = 2, df2 = 1152, p-value = 0.1545
$Instant
H0: No instantaneous causality between: stock2 and stock3 stock4
data: VAR object dstock.var
Chi-squared = 124.7876, df = 2, p-value < 2.2e-16
一応有意なGranger因果が得られる例を…
2015/8/6 33
> data(Canada) {vars}パッケージ同梱の”Canada”データより
> var.2c <- VAR(Canada, p = 2, type = “const”)
> causality(var.2c, cause = “e”)”e”からの因果性を見る
$Granger
Granger causality H0: e do not Granger-cause prod rw U
data: VAR object var.2c
F-Test = 6.2768, df1 = 6, df2 = 292, p-value = 3.206e-06
$Instant
H0: No instantaneous causality between: e and prod rw U
data: VAR object var.2c
Chi-squared = 26.0685, df = 3, p-value = 9.228e-06
ちなみにcausality関数は実際にはこう動いてます(汗)
2015/8/6 34
function (x, cause = NULL, vcov. = NULL, boot = FALSE, boot.runs = 100)
{
if (!(class(x) == "varest")) {
stop("¥nPlease provide an object of class 'varest', generated by 'var()'.¥n")
}
K <- x$K
p <- x$p
obs <- x$obs
type <- x$type
obj.name <- deparse(substitute(x))
y <- x$y
y.names <- colnames(x$y)
if (is.null(cause)) {
cause <- y.names[1]
warning("¥nArgument 'cause' has not been specified;¥nusing first variable in 'x$y' (",
cause, ") as cause variable.¥n")
}
else {
if (!all(cause %in% y.names))
stop("Argument cause does not match variables names.¥n")
}
y1.names <- subset(y.names, subset = y.names %in% cause)
y2.names <- subset(y.names, subset = !(y.names %in% cause))
Z <- x$datamat[, -c(1:K)]
xMlm <- toMlm(x)
PI <- coef(xMlm)
PI.vec <- as.vector(PI)
R2 <- matrix(0, ncol = ncol(PI), nrow = nrow(PI))
g <- which(gsub("¥¥.l[[:digit:]]", "", rownames(PI)) %in%
cause)
j <- which(colnames(PI) %in% cause)
R2[g, -j] <- 1
w <- which(as.vector(R2) != 0)
N <- length(w)
R <- matrix(0, ncol = ncol(PI) * nrow(PI), nrow = N)
for (i in 1:N) R[i, w[i]] <- 1
sigma.pi <- if (is.null(vcov.))
vcov(xMlm)
else if (is.function(vcov.))
vcov.(xMlm)
else vcov.
df1 <- p * length(y1.names) * length(y2.names)
df2 <- K * obs - length(PI)
STATISTIC <- t(R %*% PI.vec) %*% solve(R %*% sigma.pi %*%
t(R)) %*% R %*% PI.vec/N
if (boot) {
co.names <- Bcoef(x)
k <- which(gsub("¥¥.l[[:digit:]]", "", colnames(co.names)) %in%
cause)
l <- which(rownames(co.names) %in% cause)
R2inv <- matrix(1, ncol = nrow(PI), nrow = ncol(PI))
R2inv[-l, k] <- 0
xres <- restrict(x, method = "man", resmat = R2inv)
pred <- sapply(xres$varresult, predict)
res <- residuals(xres)
if (is.null(vcov.)) {
Zmlm <- model.matrix(xMlm)
cross <- crossprod(Zmlm)
inside <- solve(R %*% sigma.pi %*% t(R))
boot.fun <- function(x = 1) {
Ynew <- pred + res * rnorm(n = obs, mean = 0,
sd = x)
PI.boot <- solve(cross, crossprod(Zmlm, Ynew))
PI.boot.vec <- as.vector(PI.boot)
t(R %*% PI.boot.vec) %*% inside %*% (R %*% PI.boot.vec)/N
}
}
else {
X <- x$datamat
if (x$type %in% c("const", "both"))
X <- X[, -grep("const", colnames(X))]
boot.fun <- function(x = 1) {
X[, 1:K] <- pred + res * rnorm(n = obs, sd = x,
mean = 1)
xMlm.boot <- update(xMlm, . ~ .)
sigma.pi.boot <- if (is.function(vcov.))
vcov.(xMlm.boot)
else {
vcov.
warning("vcov. should be function, not an object, when used with boot=TRUE")
}
PI.boot.vec <- as.vector(coef(xMlm.boot))
t(R %*% PI.boot.vec) %*% solve(R %*% sigma.pi.boot %*%
t(R)) %*% R %*% PI.boot.vec/N
}
}
res.rep <- replicate(boot.runs, boot.fun(x = 1))
pval <- mean(res.rep > as.numeric(STATISTIC))
}
names(STATISTIC) <- "F-Test"
if (!boot) {
PARAMETER1 <- df1
PARAMETER2 <- df2
names(PARAMETER1) <- "df1"
names(PARAMETER2) <- "df2"
PVAL <- 1 - pf(STATISTIC, PARAMETER1, PARAMETER2)
PARAM <- c(PARAMETER1, PARAMETER2)
}
else {
PARAMETER1 <- boot.runs
names(PARAMETER1) <- "boot.runs"
PVAL <- pval
PARAM <- PARAMETER1
}
METHOD <- paste("Granger causality H0:", paste(y1.names,
collapse = " "), "do not Granger-cause", paste(y2.names,
collapse = " "))
result1 <- list(statistic = STATISTIC, parameter = PARAM,
p.value = PVAL, method = METHOD, data.name = paste("VAR object",
obj.name))
class(result1) <- "htest"
sigma.u <- crossprod(resid(x))/(obs - ncol(Z))
colnames(sigma.u) <- y.names
rownames(sigma.u) <- y.names
select <- sigma.u[rownames(sigma.u) %in% y2.names, colnames(sigma.u) %in%
y1.names]
sig.vech <- sigma.u[lower.tri(sigma.u, diag = TRUE)]
index <- which(sig.vech %in% select)
N <- length(index)
Cmat <- matrix(0, nrow = N, ncol = length(sig.vech))
for (i in 1:N) {
Cmat[i, index[i]] <- 1
}
Dmat <- .duplicate(K)
Dinv <- ginv(Dmat)
lambda.w <- obs %*% t(sig.vech) %*% t(Cmat) %*% solve(2 *
Cmat %*% Dinv %*% kronecker(sigma.u, sigma.u) %*% t(Dinv) %*%
t(Cmat)) %*% Cmat %*% sig.vech
STATISTIC <- lambda.w
names(STATISTIC) <- "Chi-squared"
PARAMETER <- N
names(PARAMETER) <- "df"
PVAL <- 1 - pchisq(STATISTIC, PARAMETER)
METHOD <- paste("H0: No instantaneous causality between:",
paste(y1.names, collapse = " "), "and", paste(y2.names,
collapse = " "))
result2 <- list(statistic = STATISTIC, parameter = PARAMETER,
p.value = PVAL, method = METHOD, data.name = paste("VAR object",
obj.name))
class(result2) <- "htest"
result2
return(list(Granger = result1, Instant = result2))
}
<environment: namespace:vars>
causality関数のR内部実装(読めば色々理解できるかと思います)
2015/8/6 35
Granger因果の長所と短所
長所:時系列データのみから仮説フリーに因果性を推論できる
 元々は計量経済学上の要請
 従来は複雑な経済・ファイナンス理論的な仮説に基づいてAとB
との間に因果関係があるかないかを論じてきた
 だが、それでは時系列データのみに着目して計量分析を行う
利点がない
 データドリブン&仮説フリーではやれないの?
 Grangerが打ち建てたのは「何の理論にも基づかない、仮説
フリーで予測を基準とする因果性」のアイデア
2015/8/6 36
短所:真の意味での「因果」ではない
 Granger因果性は通常の因果性が存在する
必要条件であるが、十分条件ではない
 VARモデルに依存する以上、あくまでも「時間差」(ラグ)に着目した指標
 時系列上のラグが不明確なケースでは使えない
 逆に言えば、ラグの存在する時系列同士ならGranger因果性検定さえ通過して
しまえば何でも因果関係があることになりかねない
 例えば、「稲妻が光る雷鳴が轟く」
 確かに「稲妻が光」ってから「雷鳴は轟」く
 だが雷鳴が轟くのは稲妻が光ることそれ自体によるものではない
 あくまでも高電圧放電が空気中を伝わることで空気が瞬時に高温に熱せられ、
その空気の振動により雷鳴が発生する
 真に因果関係を持つのは「高電圧放電による空気の過熱雷鳴」であり、「稲
光」ではない
2015/8/6 37
短所:単位根過程に対してGranger因果は使えない
 単位根過程(ランダムウォークを含む非定常な時系列)を含むVARモ
デルのOLS推定では、F検定が使えない(漸近的にF分布から外れる)
 沖本本p.122
 このためF検定に依拠するGranger因果性検定は、単位根過程を含
むVARモデルに対しては適用できない
 一階階差VARモデルを用いるという解決策もあるが、その原理を鑑みるに本
質的にその感度は下がると見るべき(株価データでの実践例は実は非推奨
だったりする…)
 さらに時系列A、Bが共和分の関係にある場合、一階階差VARモデル
自体が定義できないため(共和分の定義による)、Granger因果性
検定はそもそも成立しない
 それらの場合はインパルス応答など別の手法を用いる必要がある
2015/8/6 38
2015/8/6 39
※偏Granger因果というテクニック
第三者効果?
2015/8/6 40
ABなる因果関係がある際に、
ACBなる因果関係があるとすると、
ABなる因果関係は実はないのではないか?
第三者効果?
2015/8/6 41
ABなる因果関係がある際に、
ACBなる因果関係があるとすると、
ABなる因果関係は実はないのではないか?
偏相関のアナロジーでキャンセルしたい
煩雑なので詳しくは原典をどうぞ…(ブログにちろっと書きました)
2015/8/6 42
最後に
2015/8/6 43
計量時系列分析の世界には因果推論の手法として、他にも
• インパルス応答
• 分散分解
などの手法がありますが、これらはおいおい…
おしまい

More Related Content

PDF
ベイズモデリングと仲良くするために
PPTX
ベイズファクターとモデル選択
PDF
質的変数の相関・因子分析
PDF
階層モデルの分散パラメータの事前分布について
PPTX
社会心理学者のための時系列分析入門_小森
PDF
『バックドア基準の入門』@統数研研究集会
PDF
Stanコードの書き方 中級編
PDF
臨床疫学研究における傾向スコア分析の使い⽅ 〜観察研究における治療効果研究〜
ベイズモデリングと仲良くするために
ベイズファクターとモデル選択
質的変数の相関・因子分析
階層モデルの分散パラメータの事前分布について
社会心理学者のための時系列分析入門_小森
『バックドア基準の入門』@統数研研究集会
Stanコードの書き方 中級編
臨床疫学研究における傾向スコア分析の使い⽅ 〜観察研究における治療効果研究〜

What's hot (20)

PDF
Prophet入門【理論編】Facebookの時系列予測ツール
PPTX
ようやく分かった!最尤推定とベイズ推定
PDF
負の二項分布について
PDF
相関と因果について考える:統計的因果推論、その(不)可能性の中心
PDF
心理学におけるベイズ統計の流行を整理する
PDF
ベータ分布の謎に迫る
PDF
最適輸送入門
PDF
pymcとpystanでベイズ推定してみた話
PPTX
重回帰分析で交互作用効果
PDF
Rで架空データの発生
PDF
グラフィカルモデル入門
PDF
Stan超初心者入門
PPT
100614 構造方程式モデリング基本の「き」
PDF
因果探索: 基本から最近の発展までを概説
PDF
クラシックな機械学習入門:付録:よく使う線形代数の公式
PDF
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
PDF
計量経済学と 機械学習の交差点入り口 (公開用)
PDF
正準相関分析
PPTX
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
PDF
Probabilistic Graphical Models 輪読会 #1
Prophet入門【理論編】Facebookの時系列予測ツール
ようやく分かった!最尤推定とベイズ推定
負の二項分布について
相関と因果について考える:統計的因果推論、その(不)可能性の中心
心理学におけるベイズ統計の流行を整理する
ベータ分布の謎に迫る
最適輸送入門
pymcとpystanでベイズ推定してみた話
重回帰分析で交互作用効果
Rで架空データの発生
グラフィカルモデル入門
Stan超初心者入門
100614 構造方程式モデリング基本の「き」
因果探索: 基本から最近の発展までを概説
クラシックな機械学習入門:付録:よく使う線形代数の公式
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
計量経済学と 機械学習の交差点入り口 (公開用)
正準相関分析
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Probabilistic Graphical Models 輪読会 #1
Ad

Similar to Granger因果による 時系列データの因果推定(因果フェス2015) (20)

PPTX
Time series analysis with python 1 3
PPTX
ブートストラップ法とその周辺とR
PPTX
第五回統計学勉強会@東大駒場
PDF
みどりぼん3章前半
PPTX
Feature Selection with R / in JP
PDF
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
PDF
星野「調査観察データの統計科学」第3章
PDF
Analysis of clinical trials using sas 勉強用 isseing333
PDF
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
PDF
一般化線形混合モデル isseing333
PDF
統計的因果推論への招待 -因果構造探索を中心に-
PDF
Rで学ぶロバスト推定
PPTX
PPTX
Rで学ぶ観察データでの因果推定
PDF
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
PPTX
統計的学習の基礎_3章
PDF
修士論文発表:「非負値行列分解における漸近的Bayes汎化誤差」
PDF
Rで学ぶ回帰分析と単位根検定
PDF
Rで計量時系列分析~CRANパッケージ総ざらい~
PDF
みどりぼん9章前半
Time series analysis with python 1 3
ブートストラップ法とその周辺とR
第五回統計学勉強会@東大駒場
みどりぼん3章前半
Feature Selection with R / in JP
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
星野「調査観察データの統計科学」第3章
Analysis of clinical trials using sas 勉強用 isseing333
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
一般化線形混合モデル isseing333
統計的因果推論への招待 -因果構造探索を中心に-
Rで学ぶロバスト推定
Rで学ぶ観察データでの因果推定
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
統計的学習の基礎_3章
修士論文発表:「非負値行列分解における漸近的Bayes汎化誤差」
Rで学ぶ回帰分析と単位根検定
Rで計量時系列分析~CRANパッケージ総ざらい~
みどりぼん9章前半
Ad

More from Takashi J OZAKI (16)

PDF
直感的な単変量モデルでは予測できない「ワインの味」を多変量モデルで予測する
PDF
Taste of Wine vs. Data Science
PDF
Tech Lab Paak講演会 20150601
PDF
なぜ統計学がビジネスの 意思決定において大事なのか?
PDF
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
PDF
『手を動かしながら学ぶ ビジネスに活かすデータマイニング』で目指したもの・学んでもらいたいもの
PDF
Jc 20141003 tjo
PDF
データ分析というお仕事のこれまでとこれから(HCMPL2014)
PDF
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
PDF
Visualization of Supervised Learning with {arules} + {arulesViz}
PDF
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
PDF
ビジネスの現場のデータ分析における理想と現実
PDF
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
PDF
最新業界事情から見るデータサイエンティストの「実像」
PPTX
21世紀で最もセクシーな職業!?「データサイエンティスト」の実像に迫る
PPTX
Simple perceptron by TJO
直感的な単変量モデルでは予測できない「ワインの味」を多変量モデルで予測する
Taste of Wine vs. Data Science
Tech Lab Paak講演会 20150601
なぜ統計学がビジネスの 意思決定において大事なのか?
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
『手を動かしながら学ぶ ビジネスに活かすデータマイニング』で目指したもの・学んでもらいたいもの
Jc 20141003 tjo
データ分析というお仕事のこれまでとこれから(HCMPL2014)
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
Visualization of Supervised Learning with {arules} + {arulesViz}
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
ビジネスの現場のデータ分析における理想と現実
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
最新業界事情から見るデータサイエンティストの「実像」
21世紀で最もセクシーな職業!?「データサイエンティスト」の実像に迫る
Simple perceptron by TJO

Granger因果による 時系列データの因果推定(因果フェス2015)