Recommended
PPTX
PDF
PPTX
PDF
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
PDF
PDF
PPTX
PPTX
PDF
PPTX
PDF
機械学習によるハイスループット 第一原理計算の代替の可能性_日本化学会_20230323
PDF
PDF
PDF
PPTX
PPTX
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
PPTX
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
PPTX
PPTX
PPTX
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
PDF
PDF
PDF
More Related Content
PPTX
PDF
PPTX
PDF
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
PDF
PDF
PPTX
PPTX
What's hot
PDF
PPTX
PDF
機械学習によるハイスループット 第一原理計算の代替の可能性_日本化学会_20230323
PDF
PDF
PDF
PPTX
PPTX
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
PPTX
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
PPTX
PPTX
PPTX
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
PDF
Similar to ベイズ統計によるデータ解析
PDF
PDF
PDF
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
PDF
PDF
統計学における相関分析と仮説検定の基本的な考え方とその実践
PDF
RStanとShinyStanによるベイズ統計モデリング入門
PPTX
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
PPTX
PDF
Rでベイズをやってみよう!(コワい本1章)@BCM勉強会
PDF
PDF
PDF
PDF
ビジネス基礎講座:統計学入門 introduction to statistics
PDF
2016年12月18日AITC女子会 データ分析勉強会第7回「Rを使ったデータ分析の基礎・分析手法について知る」
PDF
LET2015 National Conference Seminar
PPTX
Lecture materials(20180820v1)
PDF
2016年11月19日 AITC女子会 データ分析勉強会第6回「Rを使ったデータ分析の基礎(入門編)」
PPT
PDF
Tokyor60 r data_science_part1
PDF
環境分野における統計学の活用(20170822v1)
ベイズ統計によるデータ解析 1. 2. 3. 4. 5. 6. 7. 例えば、こんなデータが取れたとして
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台の装置を動かして
なにかの濃度測定を一斉に行ったと仮定
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 平均や標準偏差は分布のパラメータ
f (X) = aX2 + bX + c
このような式だと、aやbの値でf (X)のグラフの形が決まる。
同じようにμやσの値でnormal(x)のグラフの形が決まる。
normal 𝑥 =
1
2𝜋𝜎2
𝑒
− 𝑥−𝜇 2
2𝜎2
このようなグラフの形を決める変数が、分布のパラメータ。
18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 計算結果
>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
31. 32. 33. 34. ベイズの計算は、何をしているのか(概念)
μ= 5, σ=1 μ= 5.5, σ=0.8 μ= 4.3, σ=1.2
μとσについて、様々な値を用いてグラフを描き、どのグラフがヒストグラム
と一致しているかを調べる。
このパラメータの選択が大変すぎて、高速な計算機が出現するまでベイズ統計
が利用されなかった。
*注:この説明は、敢えて話の流れを重視しております。実は、正確ではありません。
35. 36. 37. 38. 39. 40. 41. 42. 43. 前述の平均値の幅を求めるプログラム
プログラム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))
それらのパラメータの初期値は、こんな感じで設定だよ。
44. 前述の平均値の幅を求めるプログラム
プログラム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は
現時点では、どういう数字を
とるか、よく分からないよ。
45. 46. 計算結果
• 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).
47. 48. 49. 50. 51. 52. 53. 相関係数とは(復習的に。あとで使います)
• データ系列X = {x1, x2, x3,・・・・・xn}
Y = {y1, y2, y3,・・・・・yn}があったときに
r =
𝑠 𝑥𝑦
𝜎𝑥 𝜎 𝑦
𝑠 𝑥𝑦 =
1
𝑛 𝑖=1
𝑛
𝑥𝑖 − 𝜇 𝑥 𝑦𝑖 − 𝜇 𝑦 ← 共分散、μxはxの平均値
𝜎𝑥 =
1
𝑛 𝑖=1
𝑛
𝑥𝑖 − 𝑥 2 ← 標準偏差
相関係数求めるためには、共分散、それぞれの標準偏差が必要となる。
54. 55. ベイズ統計のおさらい
𝑃 𝐵 𝐴 ∝ 𝑃 𝐴 𝐵 𝑃 𝐵
条件Aが与えられた場合に条件Bが成立する確率は、条件Bが与えられた場
合に条件Aが成立する確率と条件Bが起きる確率の積で表される。
あるAという条件が決まっており、結果としてBという事柄が発生した。で
も、逆に考えると、Bという事柄が起きるというのは、条件Aが何だったら、
最も起こりやすいのか?
56. 57. 58. 観測値の尤度が
最大になるようにすればよい
• 𝑖 𝑝 𝑃𝑀𝑖, 𝑆𝑂4𝑖 𝜇 𝑃𝑀, 𝜇 𝑆𝑂4, 𝑠 𝑃𝑀
2
, 𝑠𝑆𝑂4
2
, 𝑠 𝑃𝑀,𝑆𝑂4
が最大になるような𝜇 𝑃𝑀, 𝜇 𝑆𝑂4, 𝑠 𝑃𝑀
2
, 𝑠𝑆𝑂4
2
, 𝑠 𝑃𝑀,𝑆𝑂4を探し出せばよ
い。
ちょっとまって、上の話は、データが全部ある時の話。
欠測値の話はどうなった?
欠測データについては、SO4(と、それに関連するパラメータ)が
無いので、上の式から、それらを抜いたものが尤度となる。
• 𝑖 𝑝 𝑃𝑀𝑖 𝜇 𝑃𝑀, 𝑠 𝑃𝑀
2
59. 実際の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);
}
意外と短い?
(といっても、自分で書いたわけじゃないけど)
60. 61. 推定結果(確認)
• まずは手元にあるデータのみを使って、プログラムの正確性を
確認。
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・・・プログラムは正常に働いている
62. 推定結果(本番)
• 欠測値データを補完して相関係数を推定
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が全体の相関係数ですね」と
爽やかに答えました。
63. 64. 65. 66. ベイズ推定は何をしているのか?
μ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時間とかかかります、はい。
67. 68. 69. 70.