Successfully reported this slideshow.
Your SlideShare is downloading. ×

20160311 基礎からのベイズ統計学輪読会第6章 公開ver

Ad

第6章
正規分布に関する推測
基礎からのベイズ統計学 輪読会 第4回
2016/03/11
@kashitan

Ad

この本の
輪読会資料です
基礎からのベイズ統計学
豊⽥ 秀樹 (著)
朝倉書店 (2015/6/25)
ISBN-10: 4254122128

Ad

⾃⼰紹介
> me
$Name
[1] "Takashi Kitano"
$Twitter
[1] "@kashitan"
$Occupation
[1] "データマエショリスト@某通信会社"

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Check these out next

1 of 118 Ad
1 of 118 Ad

More Related Content

20160311 基礎からのベイズ統計学輪読会第6章 公開ver

  1. 1. 第6章 正規分布に関する推測 基礎からのベイズ統計学 輪読会 第4回 2016/03/11 @kashitan
  2. 2. この本の 輪読会資料です 基礎からのベイズ統計学 豊⽥ 秀樹 (著) 朝倉書店 (2015/6/25) ISBN-10: 4254122128
  3. 3. ⾃⼰紹介 > me $Name [1] "Takashi Kitano" $Twitter [1] "@kashitan" $Occupation [1] "データマエショリスト@某通信会社"
  4. 4. 本書の構成 1. 確率に関するベイズの定理 2. 確率変数と確率分布 3. ベイズ推定 4. メトロポリス・ヘイスティングス法 5. ハミルトニアンモンテカルロ法 6. 正規分布に関する推測 7. さまざまな分布を⽤いた推測 8. ⽐率・相関・信頼性 9. 付録
  5. 5. 本書の構成 1. 確率に関するベイズの定理 2. 確率変数と確率分布 3. ベイズ推定 4. メトロポリス・ヘイスティングス法 5. ハミルトニアンモンテカルロ法 6. 正規分布に関する推測 7. さまざまな分布を⽤いた推測 8. ⽐率・相関・信頼性 9. 付録 基本部 サンプリング部 実践部
  6. 6. 本書の構成 1. 確率に関するベイズの定理 2. 確率変数と確率分布 3. ベイズ推定 4. メトロポリス・ヘイスティングス法 5. ハミルトニアンモンテカルロ法 6. 正規分布に関する推測 7. さまざまな分布を⽤いた推測 8. ⽐率・相関・信頼性 9. 付録 基本部 サンプリング部 実践部 本発表の範囲
  7. 7. 第6章⽬次 1. 正規分布モデルにおける基本的な推測 1.1.平均に関する推測 1.2.分散に関する推測 1.3.分位に関する推測 2. 2群の平均値の⽐較 2.1.独⽴な2群の平均値差に関する推測 2.2.対応のある2群の平均値差に関する推測 3. 章末問題
  8. 8. 第6章⽬次 1. 正規分布モデルにおける基本的な推測 1.1.平均に関する推測 1.2.分散に関する推測 1.3.分位に関する推測 2. 2群の平均値の⽐較 2.1.独⽴な2群の平均値差に関する推測 2.2.対応のある2群の平均値差に関する推測 3. 章末問題
  9. 9. 6.1.1 平均に関する推測 ある企業Oは、売り上げの向上を⽬的に製品カタログの⾒直しを始めました。従来 のカタログAと新たに作成したカタログBの⽐較を⾏うため、20⼈の顧客にカタロ グBをしようしてもらい、そのときの平均購⼊⾦額を従来のものと⽐較しようと考 えました。カタログAをしようしていた期間の顧客の平均購⼊⾦額は2500円であ り、20⼈の顧客それぞれの購⼊⾦額は表6.1に⽰したようになりました。 顧客 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 購⼊ ⾦額 3060 2840 1780 3280 3550 2450 2200 3070 2100 4100 3630 3060 3280 1870 2980 3120 2150 3830 4300 1880
  10. 10. 6.1.1 平均に関する推測 1.カタログBにおける平均購⼊⾦額が従来のものと⽐べて⾼い確率はどのくらいで しょうか。 2.企業Oは刷新時にかかるコストを勘案してカタログBにおける平均購⼊⾦額が 3000円を超える確率が70%以上であるときのみ、カタログを刷新する予定で あるとします。カタログBにおける平均購⼊⾦額が3000円を超える確率はどの くらいでしょうか。 3.カタログBにおける平均購⼊⾦額の2500円に対する効果量※ が0.8より⼤きく なる確率はどのくらいでしょうか
  11. 11. 6.1.1 平均に関する推測 カタログAの平均購⼊⾦額 カタログBの平均購⼊⾦額
  12. 12. 6.1.1 平均に関する推測 効果量は、平均値間の差や、⽬標値と平均値との差 を標準偏差の単位で評価する指標(p.127)
  13. 13. 6.1.1 平均に関する推測 カタログBを使⽤した20⼈の顧客それぞれの購⼊⾦額Xが • 平均 μ • 分散 σ2 の正規分布に従うと仮定
  14. 14. 6.1.1 平均に関する推測 カタログBを使⽤した20⼈の顧客それぞれの購⼊⾦額Xが • 平均 μ • 分散 σ2 の正規分布に従うと仮定 今回興味があるパラメータ
  15. 15. 6.1.1 平均に関する推測 「カタログBにおける平均購⼊⾦額が⼀定の値cより⾼い」とい う研究仮説「μ > c」を検討するため、以下の⽣成量を定義 「es > 0.8」を検討する⽣成量を以下のように定義
  16. 16. 6.1.1 平均に関する推測
  17. 17. 6.1.1 平均に関する推測 ###6.1.1 正規分布の平均に関する推測 library(rstan) source("data611.R") scr<-"model611.stan" data <-list(N=N, x=x) par<-c("mu","mu_over","mu_over2","es_over") war<-1000               #バーンイン期間 ite<-11000              #サンプル数 see<-12345              #シード dig<-3                  #有効数字 cha<-1                  #チェーンの数 fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha)
  18. 18. 6.1.1 平均に関する推測 ###6.1.1 正規分布の平均に関する推測 library(rstan) source("data611.R") scr<-"model611.stan" data <-list(N=N, x=x) par<-c("mu","mu_over","mu_over2","es_over") war<-1000               #バーンイン期間 ite<-11000              #サンプル数 see<-12345              #シード dig<-3                  #有効数字 cha<-1                  #チェーンの数 fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha) N <- 20 x <- c(3060, 2840, 1780, 3280, 3550, 2450, 2200,        3070, 2100, 4100, 3630, 3060, 3280, 1870,        2980, 3120, 2150, 3830, 4300, 1880)
  19. 19. 6.1.1 平均に関する推測 ###6.1.1 正規分布の平均に関する推測 library(rstan) source("data611.R") scr<-"model611.stan" data <-list(N=N, x=x) par<-c("mu","mu_over","mu_over2","es_over") war<-1000               #バーンイン期間 ite<-11000              #サンプル数 see<-12345              #シード dig<-3                  #有効数字 cha<-1                  #チェーンの数 fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha) > data $N [1] 20 $x  [1] 3060 2840 1780 3280 3550 2450 2200 3070 2100  4100 3630 3060 3280 1870 2980 3120 2150 [18] 3830 4300 1880
  20. 20. 6.1.1 平均に関する推測 data {  int  N;     real x[N];  } parameters { real    mu; real    sigma; } model { for(n in 1:N) { x[n] ~ normal(mu,sigma); } }
  21. 21. 6.1.1 平均に関する推測 data {  int  N;     real x[N];  } parameters { real    mu; real    sigma; } model { for(n in 1:N) { x[n] ~ normal(mu,sigma); } } 変数宣⾔のみを⾏うブロック Stan外部からの⼊⼒データについての変数を記述
  22. 22. 6.1.1 平均に関する推測 data {  int  N;     real x[N];  } parameters { real    mu; real    sigma; } model { for(n in 1:N) { x[n] ~ normal(mu,sigma); } } サンプリングしたいパラメータの宣⾔を⾏う
 ブロック
  23. 23. 6.1.1 平均に関する推測 data {  int  N;     real x[N];  } parameters { real    mu; real    sigma; } model { for(n in 1:N) { x[n] ~ normal(mu,sigma); } } モデルを記述するブロック
  24. 24. 6.1.1 平均に関する推測 generated quantities{ real mu_over; real mu_over2; real es; real es_over; mu_over  <- step(mu - 2500); mu_over2 <- step(mu - 3000); es       <- (mu - 2500)/sigma; es_over  <- step(es - 0.8); }
  25. 25. 6.1.1 平均に関する推測 generated quantities{ real mu_over; real mu_over2; real es; real es_over; mu_over  <- step(mu - 2500); mu_over2 <- step(mu - 3000); es       <- (mu - 2500)/sigma; es_over  <- step(es - 0.8); } ⽣成量を記述するブロック
  26. 26. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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).
  27. 27. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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). カタログBにおける平均購⼊⾦額のEAP推定値
  28. 28. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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). Uμ>2500のEAP推定値 μ > 2500が正しい確率は98.7%
  29. 29. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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). Uμ>3000のEAP推定値 μ > 3000が正しい確率は34.3% カタログ刷新は控えた⽅が 賢明
  30. 30. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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). Ues > 0.8のEAP推定値 es > 0.8が正しい確率は14.8%
  31. 31. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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). μの95%確信区間 カタログBにおける平均購⼊⾦額が2557円から3304円の間 に存在する確率が95%
  32. 32. 6.1.1 平均に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model611. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.              mean se_mean      sd     2.5%      25%      50%      75%    97.5% n_eff  Rhat mu       2926.340   3.015 191.703 2557.658 2801.398 2925.455 3048.533 3304.018  4043 1.001 mu_over     0.987   0.002   0.115    1.000    1.000    1.000    1.000    1.000  3328 1.000 mu_over2    0.343   0.006   0.475    0.000    0.000    0.000    1.000    1.000  5382 1.001 es_over     0.148   0.005   0.355    0.000    0.000    0.000    0.000    1.000  4656 1.000 Samples were drawn using NUTS(diag_e) at Wed Mar  9 19:51:43 2016. 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). 収束判定指標 1.1ないし1.2以下であればよいとされる
  33. 33. 6.1.1 平均に関する推測 > traceplot(fit,inc_warmup=F)
  34. 34. 6.1.1 平均に関する推測 > plot(fit, pars=par) ci_level: 0.8 (80% intervals) outer_level: 0.95 (95% intervals)
  35. 35. 第6章⽬次 1. 正規分布モデルにおける基本的な推測 1.1.平均に関する推測 1.2.分散に関する推測 1.3.分位に関する推測 2. 2群の平均値の⽐較 2.1.独⽴な2群の平均値差に関する推測 2.2.対応のある2群の平均値差に関する推測 3. 章末問題
  36. 36. 6.1.2 分散に関する推測 T社は⼤⼿⾃動⾞メーカーの下請けとして、ベアリングを製造しています。⼯場で 使っている機器は製造品の内径の平均を⼀定に保てることが技術的な持ち味なので すが、残念ながら内径のばらつき具合はある時期を境に⼤きくなることがわかって います。⼯場では、同じ機器を10年間使っています。ここのところ製品の内径のば らつき具合が以前より⼤きいような気がします。そこで、検品してみてこれまでの 精度が得られていないようであれば、買い換えを検討することにしました。これま でのベアリングの内径の平均は規格に準拠した145mmであり、分散は0.10でし た。検品⽤のベアリング40個の内径が表6.3に⽰されるものであった(以下略) no 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 内径 145.55145.41144.26145.05145.84145.06145.19 145.3 144.47144.84145.18 145 144.95144.88145.25145.38145.28144.66145.26144.47 no 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 内径 145.24144.29145.21144.77145.51144.33144.47144.9144.76145.46145.04144.98145.41145.45144.83144.71144.65144.21145.1 145.1
  37. 37. 6.1.2 分散に関する推測 1.検品⽤のベアリングの内径の分散が0.10を超える確率はどのくらいでしょうか 2.内径の分散が0.15を超える確率はどのくらいでしょうか。
  38. 38. 6.1.2 分散に関する推測 これまでのベアリングの分散 検品⽤ベアリングの分散
  39. 39. 6.1.2 分散に関する推測 ベアリングの内径Xが • 平均 145.0 • 分散 σ2 の正規分布に従うと仮定
  40. 40. 6.1.2 分散に関する推測 ベアリングの内径Xが • 平均 145.0 • 分散 σ2 の正規分布に従うと仮定 今回興味があるパラメータ
  41. 41. 6.1.2 分散に関する推測 「検品⽤のベアリングの内径の分散が⼀定の値cより⼤きい」と いう研究仮説「σ2 > c」を検討するため、以下の⽣成量を定義
  42. 42. 6.1.2 分散に関する推測 ###6.1.2 正規分布の分散に関する推測 source("data612.R") scr<-"model612.stan" data <-list(N=N, x=x) var(x) data par<-c("sigmasq","sigmasq_over","sigmasq_over2") war<-1000               ite<-11000             see<-12345               dig<-3                  cha<-1                  fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha)
  43. 43. 6.1.2 分散に関する推測 data {  int  N;     real x[N];   } parameters { real    sigma; } transformed parameters { real sigmasq; sigmasq <- pow(sigma,2); } model { for(n in 1:N){ x[n] ~ normal(145.00, sigma); } }
  44. 44. 6.1.2 分散に関する推測 data {  int  N;     real x[N];   } parameters { real    sigma; } transformed parameters { real sigmasq; sigmasq <- pow(sigma,2); } model { for(n in 1:N){ x[n] ~ normal(145.00, sigma); } } パラメータブロックで宣⾔した変数に対し 変換を施すオプションブロック
  45. 45. 6.1.2 分散に関する推測 generated quantities{   real sigmasq_over;   real sigmasq_over2;     sigmasq_over  <- step(sigmasq - 0.10);   sigmasq_over2 <- step(sigmasq - 0.15); }
  46. 46. 6.1.2 分散に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model612. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                mean se_mean    sd  2.5%   25%  50%   75% 97.5% n_eff Rhat sigmasq       0.166   0.001 0.040 0.106 0.137 0.16 0.188  0.26  3183    1 sigmasq_over  0.987   0.001 0.112 1.000 1.000 1.00 1.000  1.00  7391    1 sigmasq_over2 0.613   0.006 0.487 0.000 0.000 1.00 1.000  1.00  5711    1 Samples were drawn using NUTS(diag_e) at Wed Mar  9 23:57:40 2016. 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. 47. 6.1.2 分散に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model612. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                mean se_mean    sd  2.5%   25%  50%   75% 97.5% n_eff Rhat sigmasq       0.166   0.001 0.040 0.106 0.137 0.16 0.188  0.26  3183    1 sigmasq_over  0.987   0.001 0.112 1.000 1.000 1.00 1.000  1.00  7391    1 sigmasq_over2 0.613   0.006 0.487 0.000 0.000 1.00 1.000  1.00  5711    1 Samples were drawn using NUTS(diag_e) at Wed Mar  9 23:57:40 2016. 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). 検品⽤ベアリングの分散のEAP推定値
  48. 48. 6.1.2 分散に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model612. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                mean se_mean    sd  2.5%   25%  50%   75% 97.5% n_eff Rhat sigmasq       0.166   0.001 0.040 0.106 0.137 0.16 0.188  0.26  3183    1 sigmasq_over  0.987   0.001 0.112 1.000 1.000 1.00 1.000  1.00  7391    1 sigmasq_over2 0.613   0.006 0.487 0.000 0.000 1.00 1.000  1.00  5711    1 Samples were drawn using NUTS(diag_e) at Wed Mar  9 23:57:40 2016. 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). Uσ2>0.10のEAP推定値 σ2 > 0.10が正しい確率は98.7%
  49. 49. 6.1.2 分散に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model612. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                mean se_mean    sd  2.5%   25%  50%   75% 97.5% n_eff Rhat sigmasq       0.166   0.001 0.040 0.106 0.137 0.16 0.188  0.26  3183    1 sigmasq_over  0.987   0.001 0.112 1.000 1.000 1.00 1.000  1.00  7391    1 sigmasq_over2 0.613   0.006 0.487 0.000 0.000 1.00 1.000  1.00  5711    1 Samples were drawn using NUTS(diag_e) at Wed Mar  9 23:57:40 2016. 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). Uσ2>0.15のEAP推定値 σ2 > 0.15が正しい確率は61.3%
  50. 50. 6.1.2 分散に関する推測 > traceplot(fit,inc_warmup=F)
  51. 51. 6.1.2 分散に関する推測 > plot(fit, pars=par) ci_level: 0.8 (80% intervals) outer_level: 0.95 (95% intervals)
  52. 52. 第6章⽬次 1. 正規分布モデルにおける基本的な推測 1.1.平均に関する推測 1.2.分散に関する推測 1.3.分位に関する推測 2. 2群の平均値の⽐較 2.1.独⽴な2群の平均値差に関する推測 2.2.対応のある2群の平均値差に関する推測 3. 章末問題
  53. 53. 6.1.3 分位に関する推測 K君は⾛り幅跳びのオリンピック代表を⽬指して、⽇々練習に励んでいます。K君が 出場する次の⼤会はオリンピックの代表選考会として⾮常に重要なもので、⼤会の 上位25%の選⼿だげか最終選考に残れます。K君としては、具体的なボーダーライ ンを意識して練習に励みたいところです。前年度のこの⼤会の出場者全20名の記録 を表6.5に⽰しました。 選⼿ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 記録 775 779 799 794 770 790 775 778 808 802 776 775 799 787 825 785 775 762 782 788
  54. 54. 6.1.3 分位に関する推測 1.これらの記録から、具体的な⽬標をK君に伝えてあげましょう。 2.K君の練習記録が平均8m05cm、標準偏差10cmのとき、K君が最終選考に残 る確率はどのくらいでしょう。
  55. 55. 6.1.3 分位に関する推測 K君の練習記録 前年度の出場者の箱ひげ図
  56. 56. 6.1.3 分位に関する推測 ⾛り幅跳びの記録Xが • 平均μ • 分散σ2 の正規分布に従うと仮定
  57. 57. 6.1.3 分位に関する推測 今回興味があるのは0.75分位数
  58. 58. 6.1.3 分位に関する推測 正規分布の0.75分位数を⽣成量として以下のように定義    は標準正規分布の0.75分位数 ( では以下のコマンドで算出することができる) > qnorm(0.75, mean=0.0, sd=1.0) [1] 0.6744898
  59. 59. 6.1.3 分位に関する推測 K君の練習記録の分布が昨年度の⼤会の0.75分位数を超える確率 を以下の⽣成量として定義 ψは平均805、標準偏差10の正規分布の分布関数
  60. 60. 6.1.3 分位に関する推測 ###6.1.3 正規分布の分位に関する推測 source("data613.R")    scr<-"model613.stan"   data <-list(N=N, x=x)  par <- c("quantile_3rd", "prob_over")  war <- 1000                ite <- 11000               see <- 12345                dig <- 3                   cha <- 1                   fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha)
  61. 61. 6.1.3 分位に関する推測 data {                          int     N;       real  x[N];     } parameters {                     real    mu;    real    sigma;  } model {   for(n in 1:N){     x[n]~normal(mu, sigma); } } generated quantities { real quantile_3rd; real<lower=0, upper=1> prob_over; quantile_3rd <- mu + 0.675 * sigma; prob_over <- 1 - normal_cdf(quantile_3rd, 805, 10); }
  62. 62. 6.1.3 分位に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model613. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                 mean se_mean    sd    2.5%     25%     50%     75%   97.5% n_eff Rhat quantile_3rd 797.066   0.061 4.110 789.950 794.218 796.732 799.642 806.162  4541    1 prob_over      0.769   0.002 0.124   0.454   0.704   0.796   0.860   0.934  4072    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:07:03 2016. 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).
  63. 63. 6.1.3 分位に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model613. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                 mean se_mean    sd    2.5%     25%     50%     75%   97.5% n_eff Rhat quantile_3rd 797.066   0.061 4.110 789.950 794.218 796.732 799.642 806.162  4541    1 prob_over      0.769   0.002 0.124   0.454   0.704   0.796   0.860   0.934  4072    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:07:03 2016. 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). 昨年度の記録の0.75分位数が
 789.95mから806.16mの間に存在する確率が95%
  64. 64. 6.1.3 分位に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model613. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.                 mean se_mean    sd    2.5%     25%     50%     75%   97.5% n_eff Rhat quantile_3rd 797.066   0.061 4.110 789.950 794.218 796.732 799.642 806.162  4541    1 prob_over      0.769   0.002 0.124   0.454   0.704   0.796   0.860   0.934  4072    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:07:03 2016. 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). K君が最終選考に残る平均的な確率は76.9%
  65. 65. 6.1.3 分位に関する推測 > traceplot(fit,inc_warmup=F)
  66. 66. 6.1.3 分位に関する推測 > plot(fit, pars=par) ci_level: 0.8 (80% intervals) outer_level: 0.95 (95% intervals)
  67. 67. 第6章⽬次 1. 正規分布モデルにおける基本的な推測 1.1.平均に関する推測 1.2.分散に関する推測 1.3.分位に関する推測 2. 2群の平均値の⽐較 2.1.独⽴な2群の平均値差に関する推測 2.2.対応のある2群の平均値差に関する推測 3. 章末問題
  68. 68. 6.2.1 独⽴な2群の平均値差に関する推測 ⼤学⽣のRさんは、授業で⾃分の体内時計に関する実験を⾏うことになりました。 そこで、安静時(対照群)と運動後(実験群)で⾃分の体内時計がどのように変化 をするかを調べるために、ストップウォッチを利⽤した実験を⾏います。スタート ボタンを押した後、時計を⾒ずに30秒経ったと思った時点でストップウォッチを押 して、時間を計測します。計測回数は、各群20回です。Rさんは実験群の運動とし て、うさぎ跳びをして脈が速くなっている状況を設定しました。対照群と実験群の データをまとめると表6.7のようになります。 実験 群 30.8629.7531.5532.29 29.9 31.7131.3529.0330.3731.5529.2632.29 29.9 30.1830.7232.2830.72 29.9 31.5531.55 対照 群 31.3633.3433.1631.3636.19 29.8 31.1135.2331.3631.2731.6331.63 32 31.1131.6331.3631.8131.6329.2133.37
  69. 69. 6.2.1 独⽴な2群の平均値差に関する推測 1.Rさんの安静時と運動後では、体内時計に違いがあるでしょうか 2.2つの群の⺟平均の差が1秒以上となる確率はどのくらいでしょうか
  70. 70. 6.2.1 独⽴な2群の平均値差に関する推測
  71. 71. 6.2.1 独⽴な2群の平均値差に関する推測 2つの群の平均値の差を以下のような⽣成量として定義 「μ2-μ1>0」を検討するために、 という⽣成量を定義
  72. 72. 6.2.1 独⽴な2群の平均値差に関する推測 2群の平均値の差がある⼀定の値cより⼤きいという研究仮説を検 討する⽣成量を以下のように定義
  73. 73. 6.2.1 独⽴な2群の平均値差に関する推測 ###6.2.1 独立な2群の平均値差に関する推測 source("data621.R") scr <- "model621.stan" data <- list(N1=N1, N2=N2, x1=x1, x2=x2) par <- c("mu1", "mu2", "sigma1", "sigma2", "delta", "delta_over", "delta_over1") war <- 1000                ite <- 11000               see <- 1234                dig <- 3                   cha <- 1                   fit <- stan(file=scr, data=data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha)
  74. 74. 6.2.1 独⽴な2群の平均値差に関する推測 data { int<lower=0> N1; int<lower=0> N2; real<lower=0> x1[N1]; real<lower=0> x2[N2]; } parameters { real mu1; real mu2; real<lower=0> sigma1; real<lower=0> sigma2; } transformed parameters { real<lower=0> sigma1sq; real<lower=0> sigma2sq; sigma1sq <- pow(sigma1,2); sigma2sq <- pow(sigma2,2); }
  75. 75. 6.2.1 独⽴な2群の平均値差に関する推測 model { x1 ~ normal(mu1,sigma1); x2 ~ normal(mu2,sigma2); } generated quantities{ real delta; real delta_over; real delta_over1; delta <- mu2 - mu1; delta_over <- step(delta); delta_over1 <- if_else(delta>1,1,0); }
  76. 76. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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).
  77. 77. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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). 実験群の平均時間
  78. 78. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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). 対照群の平均時間
  79. 79. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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). 実験群と対照群の標準偏差(対照群の⽅が散らばりが⼤きい)
  80. 80. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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). 実験群の⽅が1.13秒早い
  81. 81. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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). 「μ2-μ1 > 0」が正しい確率は99%
  82. 82. 6.2.1 独⽴な2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model621. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu1         30.835   0.004 0.251 30.347 30.671 30.834 30.999 31.328  5046    1 mu2         31.969   0.005 0.396 31.181 31.710 31.971 32.227 32.755  5876    1 sigma1       1.095   0.003 0.199  0.785  0.956  1.065  1.205  1.562  4197    1 sigma2       1.739   0.004 0.308  1.257  1.519  1.699  1.912  2.458  4877    1 delta        1.134   0.007 0.470  0.212  0.823  1.141  1.441  2.055  5199    1 delta_over   0.990   0.001 0.102  1.000  1.000  1.000  1.000  1.000  5504    1 delta_over1  0.615   0.006 0.487  0.000  0.000  1.000  1.000  1.000  7102    1 Samples were drawn using NUTS(diag_e) at Thu Mar 10 23:23:07 2016. 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). 「μ2-μ1 > 1」が正しい確率は61.5%
  83. 83. 6.2.1 独⽴な2群の平均値差に関する推測 Rで事後分布を描画するには以下のコードを実⾏する library(ggplot2) # サンプリングした値の抽出 delta <- rstan::extract(fit, permuted=TRUE)$delta # ヒストグラムのプロット ggplot(data.frame(delta = delta), aes(delta)) +   geom_histogram(aes(y=..density..), bins=30, alpha=0.5)
  84. 84. 6.2.1 独⽴な2群の平均値差に関する推測 Rで事後分布を描画するには以下のコードを実⾏する library(ggplot2) # サンプリングした値の抽出 delta <- rstan::extract(fit, permuted=TRUE)$delta # ヒストグラムのプロット ggplot(data.frame(delta = delta), aes(delta)) +   geom_histogram(aes(y=..density..), bins=30, alpha=0.5) magrittrやtidyrパッケージにも同名の関数があるので 動作しない場合は明⽰的に”rstan::”を指定する
  85. 85. 6.2.1 独⽴な2群の平均値差に関する推測 μ2-μ1>0 μ2-μ1>1
  86. 86. 6.2.1 独⽴な2群の平均値差に関する推測 • 伝統的な統計学の場合 群Aと群Bは同じ⺟集団から抽出されたと仮定 同じ⺟集団だから群Aと群Bの平均値は同じ 検定統計量を計算 検定統計量が有意⽔準以下であれば群Aと群Bが 同じ⺟集団であることはめったに起きない 同じ⺟集団であることはめったに起きないから 群Aと群Bは異なるといっていい群A 群B
  87. 87. 6.2.1 独⽴な2群の平均値差に関する推測 • 伝統的な統計学の場合 条件によって適⽤する⼿法 が異なる Studentの t検定 Welchの t検定 等分散が 認められる 等分散が 認められない ⺟分散の
 ⽐のF検定
  88. 88. 6.2.1 独⽴な2群の平均値差に関する推測 • 伝統的な統計学の場合 条件によって適⽤する⼿法 が異なる Studentの t検定 Welchの t検定 等分散が 認められる 等分散が 認められない ⺟分散の
 ⽐のF検定 わかりづらい 説明しても
 理解してもらえない
  89. 89. 6.2.1 独⽴な2群の平均値差に関する推測 • ベイズ統計学の場合 群Aと群Bの平均値を直接推定 群Aと群Bの平均値の差が0でない確率を
 直接推定 0でない確率が⾼ければ群Aと群Bは異なる といっていい 群A 群B 平均値μ1 平均値μ2 推定 推定
  90. 90. 6.2.1 独⽴な2群の平均値差に関する推測 • ベイズ統計学の場合 群Aと群Bの平均値を直接推定 群Aと群Bの平均値の差が0でない確率を
 直接推定 0でない確率が⾼ければ群Aと群Bは異なる といっていい 群A 群B 平均値μ1 平均値μ2 推定 推定 簡単! 理解しやすい!
  91. 91. 第6章⽬次 1. 正規分布モデルにおける基本的な推測 1.1.平均に関する推測 1.2.分散に関する推測 1.3.分位に関する推測 2. 2群の平均値の⽐較 2.1.独⽴な2群の平均値差に関する推測 2.2.対応のある2群の平均値差に関する推測 3. 章末問題
  92. 92. 6.2.2 対応のある2群の平均値差に関する推測 Y社の営業部には2年⽬の社員が20⼈います。毎年の傾向として、4⽉から9⽉にか けての営業成績(契約件数)はほとんど変わりはありません。そこで今年から6⽉ の終わりに営業成績を向上させるための研修を実施し、その結果を測定することに しました。20⼈の4⽉から6⽉までの営業成績と7⽉から9⽉までの成績は表6.9のよ うになりました。 4-6 ⽉ 6 11 10 13 17 10 10 7 9 1 14 7 7 11 12 12 14 12 7 13 7-9 ⽉ 7 11 14 13 16 12 8 15 12 3 17 11 9 11 14 12 11 15 11 17
  93. 93. 6.2.2 対応のある2群の平均値差に関する推測 1.Y社の営業部が⾏った研修は効果があったか上層部に報告する必要があります。 効果があったといえるでしょうか。
  94. 94. 6.2.2 対応のある2群の平均値差に関する推測
  95. 95. 6.2.2 対応のある2群の平均値差に関する推測 対応があるデータの場合は同時分布を利⽤する ここでは、2つの変数が • 平均 μ1、μ2 • 分散 σ1 2 、σ2 2 • 相関係数 ρ の2変量正規分布に従うと仮定
  96. 96. 6.2.2 対応のある2群の平均値差に関する推測 以下の3つの⽣成量を定義
  97. 97. 6.2.2 対応のある2群の平均値差に関する推測 以下の3つの⽣成量を定義 契約件数が2件を上回れば研修の効果があったと考える
  98. 98. 6.2.2 対応のある2群の平均値差に関する推測 ###6.2.2 対応のある2群の平均値差に関する推測 source("data622.R") scr <- "model622.stan" data <- list(N=N, x=x) par <- c("mu","Sigma","rho","delta","delta_over","delta_over2","rho_over","rho_over05") war <- 1000               ite <- 11000               see <- 12345                dig <- 3                   cha <- 1                   fit <- stan(file = scr, data = data, iter=ite, seed=see, warmup=war,             pars=par,chains=cha)
  99. 99. 6.2.2 対応のある2群の平均値差に関する推測 data { int<lower=0> N; vector[2] x[N]; } parameters { vector[2] mu; vector<lower=0>[2] sigma; real<lower=-1,upper=1> rho; } transformed parameters { vector<lower=0>[2] sigmasq; matrix[2,2] Sigma; sigmasq[1] <- pow(sigma[1],2); sigmasq[2] <- pow(sigma[2],2); Sigma[1,1] <- sigmasq[1]; Sigma[2,2] <- sigmasq[2]; Sigma[1,2] <- sigma[1]*sigma[2]*rho; Sigma[2,1] <- sigma[1]*sigma[2]*rho; }
  100. 100. 6.2.2 対応のある2群の平均値差に関する推測 model { for(i in 1:N){ x[i] ~ multi_normal(mu,Sigma); } } generated quantities{ real delta; real delta_over; real delta_over2; real rho_over; real rho_over05; delta <- mu[2] - mu[1]; delta_over <- step(delta); delta_over2 <- if_else(delta>2,1,0); rho_over <- step(rho); rho_over05 <- if_else(rho>0.5,1,0); }
  101. 101. 6.2.2 対応のある2群の平均値差に関する推測 model { for(i in 1:N){ x[i] ~ multi_normal(mu,Sigma); } } generated quantities{ real delta; real delta_over; real delta_over2; real rho_over; real rho_over05; delta <- mu[2] - mu[1]; delta_over <- step(delta); delta_over2 <- if_else(delta>2,1,0); rho_over <- step(rho); rho_over05 <- if_else(rho>0.5,1,0); } normalでないことに注意
  102. 102. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1
  103. 103. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 研修前の平均契約件数は10.16件
  104. 104. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 研修後の平均契約件数は11.96件
  105. 105. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 相関係数は0.694(研修前に成績が良かった⼈は研修後も成績が良い)
  106. 106. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 研修後は平均して契約件数が1.8件伸びる
  107. 107. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 μ2-μ1>0が正しい確率は99.4%
  108. 108. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 μ2-μ1>2が正しい確率は37.3%
  109. 109. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 μ2-μ1>2が正しい確率は37.3%
  110. 110. 6.2.2 対応のある2群の平均値差に関する推測 以下の2つの⽣成量を定義
  111. 111. 6.2.2 対応のある2群の平均値差に関する推測 model { for(i in 1:N){ x[i] ~ multi_normal(mu,Sigma); } } generated quantities{ real delta; real delta_over; real delta_over2; real rho_over; real rho_over05; delta <- mu[2] - mu[1]; delta_over <- step(delta); delta_over2 <- if_else(delta>2,1,0); rho_over <- step(rho); rho_over05 <- if_else(rho>0.5,1,0); } この部分
  112. 112. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 相関係数ρ>0が正しい確率は99.9%
  113. 113. 6.2.2 対応のある2群の平均値差に関する推測 > print(fit,pars=par,digits_summary=dig) Inference for Stan model: model622. 1 chains, each with iter=11000; warmup=1000; thin=1;  post-warmup draws per chain=10000, total post-warmup draws=10000.               mean se_mean    sd   2.5%    25%    50%    75%  97.5% n_eff Rhat mu[1]       10.169   0.015 0.867  8.466  9.608 10.175 10.737 11.860  3495    1 mu[2]       11.960   0.014 0.838 10.302 11.415 11.970 12.520 13.612  3634    1 Sigma[1,1]  15.281   0.101 5.674  7.692 11.399 14.154 17.833 29.417  3175    1 Sigma[1,2]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,1]  10.328   0.083 4.590  4.080  7.202  9.443 12.377 22.016  3033    1 Sigma[2,2]  14.220   0.089 5.296  7.257 10.596 13.098 16.643 27.593  3550    1 rho          0.694   0.002 0.125  0.401  0.625  0.715  0.783  0.880  3985    1 delta        1.791   0.008 0.672  0.456  1.358  1.793  2.228  3.116  7350    1 delta_over   0.994   0.001 0.077  1.000  1.000  1.000  1.000  1.000  5688    1 delta_over2  0.373   0.005 0.484  0.000  0.000  0.000  1.000  1.000  8076    1 rho_over     0.999   0.000 0.024  1.000  1.000  1.000  1.000  1.000  6003    1 rho_over05   0.929   0.004 0.257  0.000  1.000  1.000  1.000  1.000  4659    1 相関係数ρ>0.5が正しい確率は92.9%
  114. 114. 6.2.2 対応のある2群の平均値差に関する推測 ρ>0 ρ > 0.5
  115. 115. まとめ
  116. 116. 平均や分散などの EAP推定値の算出 研究仮説が正しい
 確率の評価 相関係数の無相関検定 ⾃主規制 ⾃主規制 ⾃主規制
  117. 117. http://amstat.tandfonline.com/doi/abs/10.1080/00031305.2016.1154108

×