SlideShare a Scribd company logo
1 of 70
Download to read offline
ベイズ統計によるデータ解析
-実用に向けた紹介-
名古屋市環境科学調査センター
久恒 邦裕
第35回全国環境研協議会 東海・近畿・北陸支部
共同調査研究(越境/広域大気汚染)情報交換会資料
20171213版
自己紹介
・学生時代
専攻:物理化学 (溶液中のイオンの安定性の評価、溶媒和の構造解析)
・民間メーカー勤務(6年)
R&Dセンターで、塗料(建築材料・電子材料)の研究開発。
混ぜて、塗って、剥がして・・・・の日々。
(クレーマーに夜中まで軟禁されたり、楽しい経験有り)
・名古屋市環境科学調査センター勤務(2009年~)
PM2.5のイオン成分・金属成分の分析
酸性雨調査(以前に、イオン分析)
有害大気モニタリング(以前に、アルデヒド分析)
環境省エコ調査(大気系のLC/MS/MS分析)
と、いうわけで・・・・
おことわり
統計学は完全独学なので
難しいことは自身が発展途上中です。
間違いを見つけた方は、優しく指摘してください。
☆というわけで、二次配布はご遠慮ください。 誰もこんな資料
配らねーよ
本日のお話
• 毎度おなじみ、ベイズ統計について
• 本日は、何を考えているのか、を中心にお話しできれば
• 具体的な使い方は【StanとRでベイズ統計モデリング、松浦健太
郎著、共立出版】などをご覧ください。丁寧な説明があります。
• それを読む前に、理解しておいていただきたいことを念押しする
内容になった・・・・・なればいいなぁ。
• イメージ重視で概念的なところもあって、厳密な部分で曖昧な供
述の部分があります。ご容赦ください。
ベイズ統計について
• これまでの統計学と、目指すところは一緒。目的地に車で行く
か、電車で行くか、の違い。(ただし、電車では行けないけど、
車では行けるところ、とかはある)
• 単純な問題、データ数が膨大な問題は、多くの場合に結論が同
じになる。
• 数年前まではマイナー分野だったけど、現在ははっきり言って
主流になりつつある。上記の理由で、住み分けができていると
いう印象。
• ベイズ統計がすごい、ということは無くて、周辺の理論的な発
展がすごく、ベイズがそれに組み込まれている、という状況。
本題に入ります。
例えば、こんなデータが取れたとして
5.097619 4.739361 5.043244 4.900209 2.144241 5.696769 4.599765 5.660213 4.725296 5.413399 6.060124 4.651123 6.825011 5.470168 5.183248
6.638745 4.585580 4.667343 5.976032 4.210353 5.185514 6.493493 7.273484 4.066497 3.902228 5.452190 5.158625 5.670559 4.299030 3.233771
4.124408 4.816949 3.177765 5.413869 5.487815 5.700734 3.392919 6.173498 5.116845 5.711175 5.663199 3.236745 5.948633 5.813683 4.379466
5.121760 5.407056 6.411262 5.912322 7.168033 5.311681 4.584248 5.287710 5.319160 5.718889 3.863626 5.338596 7.049403 4.188569 6.656043
6.362131 5.624633 4.162418 6.983732 5.500695 5.760462 5.422008 4.340230 3.922458 5.251651 4.629502 4.333435 4.348886 5.319397 6.809805
4.765379 6.678206 3.876237 6.169109 5.620210 6.842464 4.848263 7.919140 1.766848 6.357274 6.476970 4.761353 5.808619 4.153477 3.824963
3.946617 4.931306 8.043766 4.491263 4.034097 6.112363 4.393849 5.677416 4.745125 5.404468 3.776096 3.812235 5.986581 4.754237 4.633297
4.130216 4.679160 5.235021 5.704180 5.162655 5.032664 4.695279 4.315680 5.029518 5.264364 5.258068 5.384935 4.993829 3.447141 5.353625
4.609873 6.471006 4.966741 4.801584 2.921762 3.885551 5.629536 5.186492 5.594274 5.268044 5.405003 5.666580 5.319052 5.128434 5.319156
4.152650 6.704329 2.267780 4.461929 5.485227 5.418058 5.895172 4.675607 5.059135 5.436931 5.975803 4.695386 3.988178 5.985443 4.420043
ある地点で、同時に150台の装置を動かして
なにかの濃度測定を一斉に行ったと仮定
データの要約
(ヒストグラム・度数分布表)
平均: 5.1
標準偏差:1.0
この物質濃度の
真値が知りたい!!
(心の声)
大体、平均値は5.1なんで、物質濃度の真値も、これくらいの値かなぁ。
用語の説明
• (相加)平均
数値の合計を、数値の個数で割ったもの
• 分散
各数字と平均との差の二乗を加算して、数値の個数で割ったもの
• 標準偏差
分散の平方根
真値を求めて
-測定数を増やしてみる-
データ数 150 ⇒ 100000
平均: 5.1
標準偏差:1.0
平均: 5.0
標準偏差:1.0
統計的に究極(に近い)データ
• 現実の世界でも、こういうデータが取れるといいのですが。
• こういうのは<母集団>という名前で仮定されます。
データ数 ⇒ ∞
X軸の区画 ⇒ 0
正規分布(Normal distribution)
またはガウス分布(Gaussian distribution)
normal 𝑥 =
1
2𝜋𝜎2
𝑒
− 𝑥−𝜇 2
2𝜎2
μ:平均
σ:標準偏差
μ
σ
平均・標準偏差による形状の変化
平均 : 5
標準偏差:0.7
平均 : 3
標準偏差:3
平均 : 10
標準偏差:1.3
平均とは
平均は、データの位置を決める
平均: 4.95
標準偏差:0.90
平均: 9.91
標準偏差:0.98
標準偏差とは
平均: 4.84
標準偏差:1.00
平均: 4.73
標準偏差:2.76
標準偏差は、データの広がり(形)を決める
用語の説明(part2)
• (相加)平均
分布の位置を決めるもの
• 分散
分布の広がりを決めるもの
• 標準偏差
分布の広がりを決めるもの
平均や標準偏差は分布のパラメータ
f (X) = aX2 + bX + c
このような式だと、aやbの値でf (X)のグラフの形が決まる。
同じようにμやσの値でnormal(x)のグラフの形が決まる。
normal 𝑥 =
1
2𝜋𝜎2
𝑒
− 𝑥−𝜇 2
2𝜎2
このようなグラフの形を決める変数が、分布のパラメータ。
正規分布(Normal distribution)
またはガウス分布(Gaussian distribution)
normal 𝑥 =
1
2𝜋𝜎2
𝑒
− 𝑥−𝜇 2
2𝜎2
μ:平均
σ:標準偏差
μ
σ
これらは、分布のパラメータと
呼ばれます。
データからのパラメータの類推の背景
• 不完全なデータ(左)から、完全なデータ(右)へ
どうにかして、これを類推しようと試みる。
データの要約(改めて)
平均: 5.1
標準偏差:1.0
大体、平均値は5.1くらいで
データのバラツキが1.0くらい。
このバラツキは、測定装置に起因。
こんなデータが得られるような
分布のパラメータを、探す行為、とも言える。
パラメータの大前提
• 従来の統計学(古典統計学)
パラメータは、絶対不変の一つの数字だ!!
データは、確率分布で表現される。
つまり<2017年12月15日午前9時のPM2.5濃度>
というのには、唯一の正解である真値がある。
この真値は、神のみぞ知る値だが、誤差とかいっぱい含む
不完全な測定データから、真値を精度よく
入手(推定)することが、統計的処理の役割である。
パラメータの大前提
• ベイズ統計学
パラメータは、確率分布で表現される!!
データは、得られた数字が現実だ。
つまり<2017年12月15日午前9時のPM2.5濃度>
というのには、唯一の正解である真値がある。
この真値は、神のみぞ知る値だが、誤差とかいっぱい含む
不完全な測定データから、真値を精度よく
入手(推定)することが、統計的処理の役割である。
でも、もちろん・・・・
• 100000個もデータをとることなんてできない。
• まあ、150個も、非現実的ではあるのですが・・・・・
• とりあえずは、この仮定に従うとして
例題
• この150個のデータの平均値の真値としてあり得そうな値は
どれくらいなのか?
【解法】
1. (標本データを母集団だとみなして、95%区間を計算)
2. 従来の統計手法により、95%信頼区間を計算
3. ベイズ統計により95%確信区間を計算
標本データを母集団だとみなして
95%区間を計算
平均: 5.1
標準偏差:1.0
この面積が全体の95%となる
x軸の区間を求める。
データは95%の確率で<3.1~7.2>に含まれる
だからきっと、真値もここらへん・・・・・
いやいや、単純すぎる
• それなら、データ数が5でも、150でも、もし同じ平均、標
準偏差だったら、同じ結果になってしまう。
• でも、データ数による信頼性の違いって、あるのでは?
従来の統計手法により95%信頼区間を計算
平均: 5.1
標準偏差:1.0
この平均値が得られる可能性をサンプルサイ
ズ(今なら150データ)や、統計的背景知
識(t分布)から類推
真値は95%の確率で<4.95~5.29>に含まれる
150個/回の測定データを100回観測したとき、そのうち95回は95%信頼区間に真値を含む。
今回の<4.95~5.29>の範囲に真値が含まれる確率は95%である。
【真値は5.1である確率が最も高く、4.95や5.29である可能性も、わずかながらにある】
ということではない!!
というのは、厳密に表現すれば
95%信頼区間の意味
平均値の真値が5(緑色)となる正規分布からランダムに数字を100個取り出
して、95%信頼区間を計算。この操作を100回繰り返して、1回ごとの信頼区
間をバープロットにしたのが上の図。
100回のうち、95回は信頼区間に真値の5を含む(黒色)が、5回は信頼区
間に真値の5が含まれない(赤色)。ある1回の試行が黒色のケースか、赤色の
ケースかは、神のみぞ知る。
95%信頼区間を求めるプログラム
basedata <- 〇〇 ← 最初に示した150個の数字の羅列を
“basedata”という名前で保存します。
t.test(basedata) ← これだけで、95%信頼区間が出ます。
計算結果
>t.test(basedata)
One Sample t-test
data: basedata
t = 60.384, df = 149, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
4.954923 5.290185
sample estimates:
mean of x
5.122554
なんか、扱いづらい・・・・
• ちょっと解りづらい表現。
• 例えば、<誤差の伝搬>を考える場合
X = a ±b、Y =c±d のとき
XYの誤差は(a2・d2 + c2・b2)1/2 で表現できる。
• でも、95%信頼区間には、この式は使えない。信頼区間は、
いわゆる誤差ではないから!
• これをするなら、一番最初にやった標本を母集団とする考え方
で得られた95%区間を利用しないといけない。
ベイズ統計により95%確信区間を計算
平均: 5.1
標準偏差:1.0
このデータが得られる可能性をサンプルサ
イズ(今なら150データ)や、統計的背
景知識(正規分布)から類推
真値は95%の確率で<4.95~5.29>に含まれる
真値は5.1である確率が最も高く、4.95や5.29である可能性も、わずかながらにある
従来の統計との違い
• 95%信頼区間と95%確信区間は、似た言葉だがその性質が
大きく異なる。パラメータが取りうる数字の値を、直感的に示
してくれる。
• もちろん、誤差の伝搬にも利用可能。
ベイズの計算は、何をしているのか(概念)
μ= 5, σ=1 μ= 5.5, σ=0.8 μ= 4.3, σ=1.2
μとσについて、様々な値を用いてグラフを描き、どのグラフがヒストグラム
と一致しているかを調べる。
このパラメータの選択が大変すぎて、高速な計算機が出現するまでベイズ統計
が利用されなかった。
*注:この説明は、敢えて話の流れを重視しております。実は、正確ではありません。
もっと一般化すると
世の中にある確率分布は、正規分布
だけではない。
例えば、左にグラフはガンマ分布と
呼ばれる確率分布。
f (x) = 𝑥 𝛼−1 𝑒
−
𝑥
𝛽
𝛼−1 ! 𝛽 𝛼 (x ≧ 0)
ある地点の年間の濃度データなど
環境データではよく見る形のような気もする・・・・
αとβが、グラフの形を決める
ガンマ関数のあてはめを調べることも
α=3.5, β=1 α=7, β=0.8 α=17, β=0.3
パラメータの値による一致度
一致度が
高い
一致度が
低い
一致度が
低い
多いときは、10000~500000
パターンのパラメータの一致度を調べる。
そのため、パラメータの数が増えると
計算時間が指数関数的に上昇していく
(課題)
重要なので、2度言います
従来の統計学では、平均値
は動かず、データがその都
度、ばらついているという
発想。
ベイズ統計学では、データ
は動かさず、平均値(パラ
メータ)を動かすという発
想。
プログラムの紹介
• いまから、ベイズ推定のためのプログラムを紹介。
• ただし、プログラムファイルを2個作る必要があります。
• そのため、プログラム1とプログラム2と上に書きますので、
区別してください(無茶ぶり)
前述の平均値の幅を求めるプログラム
プログラム1
data <- list(Y = basedata,
N = length(basedata))
basedataという名前のデータ(150個の数字)を
Yという変数に代入するよ。
Yの大きさ(150)は、Nという変数に代入だよ
前述の平均値の幅を求めるプログラム
プログラム2
data {
int N;
real Y[N];
}
さっきのNとY(Y[N]は、YはN個の数字があるよ、の意味)は
データとして、ちゃんと与えてね、の意味
前述の平均値の幅を求めるプログラム
プログラム2
data {
int N;
real Y[N];
}
parameters {
real mu;
real sigma;
}
自分で勝手に
mu(平均値を想定)と
sigma(標準偏差を想定)の
パラメータを
作っちゃうよ
前述の平均値の幅を求めるプログラム
プログラム1
data <- list(Y = basedata,
N = length(basedata))
inits <- list(list(mu = 4.5, sigma = 0.8),
list(mu = 4.8, sigma = 1.1),
list(mu = 5.2, sigma = 1.3),
list(mu = 5.5, sigma = 0.7))
それらのパラメータの初期値は、こんな感じで設定だよ。
前述の平均値の幅を求めるプログラム
プログラム2(続き)
model {
for (n in 1:N){
Y[n] ~ normal(mu, sigma);
}
mu ~ normal(0,100);
sigma ~ normal(0,100);
}
今までのデータと
パラメータを使って
想像しているモデルを
指定するよ。
データYの数字は、平均mu、
標準偏差sigmaの正規分布か
ら抽出されたとみなすよ。
muとかsigmaは
現時点では、どういう数字を
とるか、よく分からないよ。
前述の平均値の幅を求めるプログラム
プログラム1(続き)
stanmodel <- stan_model(file='stanmodel1.stan')
d.fit <- sampling(stanmodel, data = data, warmup = 400, init
= inits, iter = 10000, chains = 4, thin = 5, cores = 3)
プログラム2を、PCに理解させるよ
ゴチャゴチャと設定して、プログラムを実行だよ!
計算結果
• 3秒ほどで、結果が出ます。
Inference for Stan model: stanmodel1.
4 chains, each with iter=10000; warmup=400; thin=5;
post-warmup draws per chain=1920, total post-warmup draws=7680.
mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
mu 5.12 0.00 0.09 4.95 5.06 5.12 5.18 5.29 7680 1
sigma 1.05 0.00 0.06 0.93 1.00 1.04 1.09 1.18 7382 1
lp__ -81.27 0.01 1.04 -84.17 -81.64 -80.95 -80.53 -80.26 7608 1
Samples were drawn using NUTS(diag_e) at Wed Dec 06 15:53:46 2017.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains
(at convergence, Rhat=1).
ベイズ統計が、どういう風に使えるか
• ちょっとしたたとえ話を紹介
• 元ネタはネットにあったり、書籍に載っていたりするので、わ
りと有名な話なのかもしれません。
ある事件の流れ
• 20XX年のPM2.5の成分分析用の常時監視のサンプルが、一部無く
なっていることをYさんが見つける。
• 調査の結果、高濃度サンプルの詳細を検討するためと称して、I さんが
勝手に他機関に郵送したことが発覚。
• ちょうどその頃、郵送したサンプルが竜巻によって消失。
• その連絡を受けて絶句していたころ、所長から「20XX年のサンプル
の、PM2.5の質量濃度と硫酸イオンの相関係数を教えてほしい」と話が。
• 絶望に浸るYさん。そして、その頃、I さんは責任を問われ名古屋港に
沈められていた。
• 「じゃあ、ベイズ統計で推定してみましょう」と、颯爽とHさん現る。
↑いまここ
本題:欠測値があるデータの統計的推定
• PM2.5の成分分析用サンプルの採取は、4季節ごとに2週間、6地
点で行っております(年間で4×14×6=336程度のデータ数)。
使ったのは2014年度の実データ、諸事情で337データがありました。
• このうち、PM2.5が15µg/m3以上となった(高濃度と判定された)
のは170サンプル。つまり、手元には167サンプルがあります。
• PM2.5のデータは、337個分あります。しかし、SO4のデータは167
個分しか入手できません。
• とりあえず、167サンプルを分析して相関係数を調べてみました。
手元にあるデータでやってみる
>
cor.test(data_1$PM,data_1$SO4,method="pearson")
Pearson's product-moment correlation
data: data_1$PM and data_1$SO4
t = 10.0782, df = 165, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to
0
95 percent confidence interval:
0.5135489 0.7032153
sample estimates:
cor
0.6172719
↑ この値を報告しておけばOK?
でも、経験的には、ちょっと低い気もする・・・・・・
この、データのない部分を、手元にある
データだけで推定できないか?
PM2.5の質量濃度の値
(横軸)は337個分あ
る。SO4の値(縦軸)
のみが、半分くらいし
か手元にはない。
どう考えるか?
この、データのない部分を、手元にある
データだけで推定できないか?
PM2.5の質量濃度の値
(横軸)は337個分あ
る。SO4の値(縦軸)
のみが、半分くらいし
か手元にはない。
どう考えるか?
相関係数とは(復習的に。あとで使います)
• データ系列X = {x1, x2, x3,・・・・・xn}
Y = {y1, y2, y3,・・・・・yn}があったときに
r =
𝑠 𝑥𝑦
𝜎𝑥 𝜎 𝑦
𝑠 𝑥𝑦 =
1
𝑛 𝑖=1
𝑛
𝑥𝑖 − 𝜇 𝑥 𝑦𝑖 − 𝜇 𝑦 ← 共分散、μxはxの平均値
𝜎𝑥 =
1
𝑛 𝑖=1
𝑛
𝑥𝑖 − 𝑥 2 ← 標準偏差
相関係数求めるためには、共分散、それぞれの標準偏差が必要となる。
いま仮に・・・・・
• PM2.5のデータおよびSO4のデータが正規分布するとします
(↑かなり強引)
• すると、二変量正規分布なので以下のように書くことができる。
•
PM
SO4
= Ν
𝜇 𝑃𝑀
𝜇 𝑆𝑂4
,
𝜎 𝑃𝑀
2
𝑠 𝑃𝑀,𝑆𝑂4
𝑠 𝑃𝑀,𝑆𝑂4 𝜎𝑆𝑂4
2
• 右辺の変数が推定できれば、相関係数は計算できる!
• どうやって推定するのか・・・・・ベイズですよ、ベイズ
俺に任せろ!
ベイズ統計のおさらい
𝑃 𝐵 𝐴 ∝ 𝑃 𝐴 𝐵 𝑃 𝐵
条件Aが与えられた場合に条件Bが成立する確率は、条件Bが与えられた場
合に条件Aが成立する確率と条件Bが起きる確率の積で表される。
あるAという条件が決まっており、結果としてBという事柄が発生した。で
も、逆に考えると、Bという事柄が起きるというのは、条件Aが何だったら、
最も起こりやすいのか?
ベイズ統計のおさらい
一般的な考え方
サイコロの1の目は6分の1の確率で出る(条件)
⇒サイコロを60回振ると、1の目が10回出る(事柄)
ベイズ的な考え方
サイコロを60回振ったら、1の目が10回出た(事柄)
⇒1の目の出る確率が、いくつだったらこういう現象が起こ
るのか?
⇒ あ、6分の1じゃないかな?(条件)
ベイズ統計のおさらい
一般的な考え方
PM2.5質量濃度とSO4の相関係数は決まっている(条件)
⇒相関係数(相関関係)に従った測定値が観測される(事柄)
(実際には、その測定値から相関係数を推測する)
ベイズ的な考え方
測定値が観測された(事柄)
⇒相関係数がどれくらいだと、こういう測定値になるのかな?
⇒ この測定値が最も起こり得る相関係数
(つまり各成分の分散とか両成分の共分散)は
何だろうな♪(条件)
観測値の尤度が
最大になるようにすればよい
• 𝑖 𝑝 𝑃𝑀𝑖, 𝑆𝑂4𝑖 𝜇 𝑃𝑀, 𝜇 𝑆𝑂4, 𝑠 𝑃𝑀
2
, 𝑠𝑆𝑂4
2
, 𝑠 𝑃𝑀,𝑆𝑂4
が最大になるような𝜇 𝑃𝑀, 𝜇 𝑆𝑂4, 𝑠 𝑃𝑀
2
, 𝑠𝑆𝑂4
2
, 𝑠 𝑃𝑀,𝑆𝑂4を探し出せばよ
い。
ちょっとまって、上の話は、データが全部ある時の話。
欠測値の話はどうなった?
欠測データについては、SO4(と、それに関連するパラメータ)が
無いので、上の式から、それらを抜いたものが尤度となる。
• 𝑖 𝑝 𝑃𝑀𝑖 𝜇 𝑃𝑀, 𝑠 𝑃𝑀
2
実際のStanプログラムは以下の通り。
data{
int<lower=0> N;
vector[2] d[N];
int<lower=0> Nmiss;
real d2[Nmiss];
}
parameters {
vector[2] mu;
real<lower=0> var_PM;
real<lower=0>
var_SO4;
real cov;
}
transformed parameters{
matrix[2,2] sigma;
sigma[1,1] <- var_PM;
sigma[2,1] <- cov;
sigma[1,2] <- cov;
sigma[2,2] <- var_SO4;
}
model{
for(i in 1:N)
d[i] ~ multi_normal(mu, sigma);
for(j in 1:Nmiss)
d2[j] ~ normal(mu[1], sqrt(sigma[1,1]));
}
generated quantities{
real cor;
cor <- cov / sqrt(var_PM *
var_SO4);
}
意外と短い?
(といっても、自分で書いたわけじゃないけど)
何がしたかったのか、おさらい
左側の限られたデー
タを使って、全体の
相関係数を推測。
ちなみに、限られた
データを使って計算
した相関係数は0.617。
推定結果(確認)
• まずは手元にあるデータのみを使って、プログラムの正確性を
確認。
mean se_mean sd 2.50% 25% 50% 75% 97.50%
mu[1] 10.02 0.01 0.23 9.59 9.88 10.03 10.18 10.46
mu[2] 2.12 0 0.08 1.96 2.07 2.12 2.17 2.28
var_PM 8.71 0.04 0.98 7.05 8.01 8.61 9.31 10.75
var_SO4 1 0 0.11 0.8 0.92 0.99 1.07 1.24
cov 1.82 0.01 0.28 1.32 1.62 1.8 2 2.44
sigma[1,1] 8.71 0.04 0.98 7.05 8.01 8.61 9.31 10.75
sigma[1,2] 1.82 0.01 0.28 1.32 1.62 1.8 2 2.44
sigma[2,1] 1.82 0.01 0.28 1.32 1.62 1.8 2 2.44
sigma[2,2] 1 0 0.11 0.8 0.92 0.99 1.07 1.24
cor 0.62 0 0.05 0.51 0.59 0.62 0.65 0.71
lp__ -300.66 0.06 1.6 -304.55 -301.42 -300.34 -299.46 -298.58
普通に計算すると0.617・・・プログラムは正常に働いている
推定結果(本番)
• 欠測値データを補完して相関係数を推定
mean se_mean sd 2.50% 25% 50% 75% 97.50%
mu[1] 16.09 0.01 0.42 15.25 15.8 16.09 16.37 16.92
mu[2] 3.39 0.01 0.16 3.07 3.28 3.39 3.5 3.71
var_PM 56.33 0.16 4.56 47.74 53.25 55.88 59.33 65.11
var_SO4 3.1 0.02 0.53 2.17 2.73 3.06 3.43 4.19
cov 11.77 0.07 1.5 8.95 10.79 11.7 12.69 14.85
sigma[1,1] 56.33 0.16 4.56 47.74 53.25 55.88 59.33 65.11
sigma[1,2] 11.77 0.07 1.5 8.95 10.79 11.7 12.69 14.85
sigma[2,1] 11.77 0.07 1.5 8.95 10.79 11.7 12.69 14.85
sigma[2,2] 3.1 0.02 0.53 2.17 2.73 3.06 3.43 4.19
cor 0.89 0 0.02 0.84 0.88 0.9 0.91 0.93
lp__ -881.55 0.07 1.73 -886.03 -882.42 -881.18 -880.28 -879.4
Hさんは、「0.89が全体の相関係数ですね」と
爽やかに答えました。
ここで朗報です!
竜巻で行方不明になっていたサンプルが戻ってきました!
さっそく、全サンプルの分析を行って、相関係数を計算してみま
した。
> cor.test(data_0$PM,data_0$SO4,method="pearson")
Pearson's product-moment correlation
data: data_0$PM and data_0$SO4
t = 34.3472, df = 335, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8564308 0.9041103
sample estimates:
cor
0.8825182
欠測データのある状態で
推定した相関係数は
0.89
一致しております!!!
ベイズ推定は何をしているのか?
このようなPM2.5の分布がある。
PM2.5の平均μPMや標準偏差σPMが
どんな数字だったら、上のグラフと
よく一致するだろうか?
(正規分布と仮定・・・無理があるけ
ど)
このようなSO4(欠測有)の分布がある。
SO4の平均μSO4や標準偏差σSO4が
どんな数字だったら、上のグラフと
よく一致するだろうか?
(正規分布と仮定・・・無理があるけ
ど)
PM2.5とSO4は
上記のような関係がある。
共分散sPM,SO4が
何だったら
よく一致するのか
ベイズ統計は、何をしているのか?
(例えば)上のような、プロットの分布の形のうち
どれが現実的にあり得そうなのか?
ベイズ推定は何をしているのか?
μPM σPM μSO
4
σSO
4
sPM,SO
4
1 1 1 1 1
μPM σPM μSO
4
σSO
4
sPM,SO
4
1.1 1 1 1 1
どっちの
一致度が
高いか? μPM σPM μSO
4
σSO
4
sPM,SO
4
1.1 1 1 1 1
μPM σPM μSO
4
σSO
4
sPM,SO
4
1.2 1 1 1 1
どっちの
一致度が
高いか?
μPM σPM μSO
4
σSO
4
sPM,SO
4
1.3 1 1 1 1
μPM σPM μSO
4
σSO
4
sPM,SO
4
1.2 1 1 1 1
どっちの
一致度が
高いか?
μPM σPM μSO
4
σSO
4
sPM,SO
4
0.9 1 1 1 1
μPM σPM μSO
4
σSO
4
sPM,SO
4
1.2 1 1 1 1
どっちの
一致度が
高いか?
こういう勝ち抜き戦を繰り返し行います。もちろん、すべてのパラメータ
に対して。今回の場合は1000回程度、1分くらいで計算が終わりますが、
複雑なモデルでは50000回くらいで20時間とかかかります、はい。
ここで注意です!
実際の値 欠測値がある状態での推定値
SO4の平均(mu[2]) 4.36 3.39
SO4の分散(var_SO4) 10.44 3.1
共分散(cov) 21.22 11.77
今回はあくまで<相関係数>を推定したのであって、個別
のSO4の値を推定したのではありません。
個々のパラメータは
けっこう違っていることに注意
まとめ
• 欠測値のあるデータセット(架空データではない、実際のデー
タ)について、相関係数を推定した。
• 多変量正規分布を仮定してベイズ推定したところ、欠測値を補
完して正しい相関係数にかなり近い値を推定で来た。
• ただし、すべてのパラメータが精度よく推定できたわけではな
く、推定に用いた仮定を、把握することが大切。
• 万能ではもちろんないものの、従来の統計学ではできないこと
の一端を紹介しました。
なんでベイズ使うの?
(今後のモチベーションのために)
• 結果の不確かさ、も一緒に出てくるので、話にメリハリがつけ
やすい。
全体のまとめ(ベイズ統計について)
• パラメータが確率分布である、という認識が重要
• そのうえで、モデルを考える想像力
☆ ある商品の売り上げ =
デザイン + 機能 + 広告効果 + 価格設定 + ・・・・・
☆ スポーツ成功度 =
素質 + 努力 + 運 + ・・・・・・
☆ 大気汚染濃度 =
汚染物質発生量 + 汚染発生源との距離 + 風 + ・・・・・・
• それを、プログラムに落とし込む力

More Related Content

What's hot

ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾Yoshitake Takebayashi
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門Miyoshi Yuya
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介Naoki Hayashi
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数daiki hojo
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Hiroshi Shimizu
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定Akira Masuda
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知Yuya Takashina
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法Ken'ichi Matsui
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデルYohei Sato
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法MapR Technologies Japan
 
Rで架空データの発生
Rで架空データの発生Rで架空データの発生
Rで架空データの発生Makoto Hirakawa
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定2 4.devianceと尤度比検定
2 4.devianceと尤度比検定logics-of-blue
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれHiroshi Shimizu
 
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度YukinoriKambe
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論Koichiro Gibo
 
媒介分析について
媒介分析について媒介分析について
媒介分析についてHiroshi Shimizu
 

What's hot (20)

Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
 
異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法異常検知 - 何を探すかよく分かっていないものを見つける方法
異常検知 - 何を探すかよく分かっていないものを見つける方法
 
Rで架空データの発生
Rで架空データの発生Rで架空データの発生
Rで架空データの発生
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定2 4.devianceと尤度比検定
2 4.devianceと尤度比検定
 
因果推論の基礎
因果推論の基礎因果推論の基礎
因果推論の基礎
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論
 
媒介分析について
媒介分析について媒介分析について
媒介分析について
 

Similar to ベイズ統計によるデータ解析

(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)Morpho, Inc.
 
R Study Tokyo03
R Study Tokyo03R Study Tokyo03
R Study Tokyo03Yohei Sato
 
64ビット高性能線形擬似乱数発生法の開発
64ビット高性能線形擬似乱数発生法の開発64ビット高性能線形擬似乱数発生法の開発
64ビット高性能線形擬似乱数発生法の開発Shin Harase
 
【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】
【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】
【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】Naoki Hayashi
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎ShoutoYonekura
 
K070k80 点推定 区間推定
K070k80 点推定 区間推定K070k80 点推定 区間推定
K070k80 点推定 区間推定t2tarumi
 
Or学会用20160915.ver2
Or学会用20160915.ver2Or学会用20160915.ver2
Or学会用20160915.ver2Ryoma Nakagawa
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法Hidetoshi Matsui
 
実験計画法入門 Part 4
実験計画法入門 Part 4実験計画法入門 Part 4
実験計画法入門 Part 4haji mizu
 
効用最大化理論の観点から見る強化学習
効用最大化理論の観点から見る強化学習効用最大化理論の観点から見る強化学習
効用最大化理論の観点から見る強化学習Kenta Ishii
 
大規模地震シミュレーション1
大規模地震シミュレーション1大規模地震シミュレーション1
大規模地震シミュレーション1RCCSRENKEI
 
Data assim r
Data assim rData assim r
Data assim rXiangze
 
金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデルKei Nakagawa
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践id774
 
カステラ本勉強会 第三回
カステラ本勉強会 第三回カステラ本勉強会 第三回
カステラ本勉強会 第三回ke beck
 
Visualizing Data Using t-SNE
Visualizing Data Using t-SNEVisualizing Data Using t-SNE
Visualizing Data Using t-SNETomoki Hayashi
 
ベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-oldベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-oldNaoki Hayashi
 

Similar to ベイズ統計によるデータ解析 (20)

(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
 
NL20161222invited
NL20161222invitedNL20161222invited
NL20161222invited
 
R Study Tokyo03
R Study Tokyo03R Study Tokyo03
R Study Tokyo03
 
Tokyor24 doradora09
Tokyor24 doradora09Tokyor24 doradora09
Tokyor24 doradora09
 
64ビット高性能線形擬似乱数発生法の開発
64ビット高性能線形擬似乱数発生法の開発64ビット高性能線形擬似乱数発生法の開発
64ビット高性能線形擬似乱数発生法の開発
 
【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】
【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】
【招待講演】パラメータ制約付き行列分解のベイズ汎化誤差解析【StatsML若手シンポ2020】
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
K070k80 点推定 区間推定
K070k80 点推定 区間推定K070k80 点推定 区間推定
K070k80 点推定 区間推定
 
Or学会用20160915.ver2
Or学会用20160915.ver2Or学会用20160915.ver2
Or学会用20160915.ver2
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
実験計画法入門 Part 4
実験計画法入門 Part 4実験計画法入門 Part 4
実験計画法入門 Part 4
 
効用最大化理論の観点から見る強化学習
効用最大化理論の観点から見る強化学習効用最大化理論の観点から見る強化学習
効用最大化理論の観点から見る強化学習
 
大規模地震シミュレーション1
大規模地震シミュレーション1大規模地震シミュレーション1
大規模地震シミュレーション1
 
Data assim r
Data assim rData assim r
Data assim r
 
金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
カステラ本勉強会 第三回
カステラ本勉強会 第三回カステラ本勉強会 第三回
カステラ本勉強会 第三回
 
Visualizing Data Using t-SNE
Visualizing Data Using t-SNEVisualizing Data Using t-SNE
Visualizing Data Using t-SNE
 
ベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-oldベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-old
 

ベイズ統計によるデータ解析