SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
Stan勉強会資料(前編)
2017/07/14 BDA研究会
専修大学大学院 文学研究科 北條大樹
Code: https://github.com/dastatis/Stan_Study
0. Stan基礎知識・イメージ編
Stanとは?
どう動いている?
Stanを導入する
Rでベイズ推定するには??
1. 自作コードを書く
• 長所・・・自分のモデルに合ったパラメータ推定が可能
• 短所・・・汎用性が低い。ミスが起きやすい。書くまでに時間がかかる
2. パッケージを使う
• 長所・・・既存のモデルを用いてパラメータ推定が可能。
• 短所・・・内部処理が不明。モデルの拡張ができない。
3. ベイズ推定ソフト(モジュール)を導入し、使う
• 長所・・・オーダーメイドモデルを作成可能。処理が明確。収束が速い。
• 短所・・・覚えるまでに時間がかかる。ミスが起きやすい。
Rでベイズ推定するには??
1. 自作コードを書く
• 長所・・・自分のモデルに合ったパラメータ推定が可能
• 短所・・・汎用性が低い。ミスが起きやすい。書くまでに時間がかかる
2. パッケージを使う
• 長所・・・既存のモデルを用いてパラメータ推定が可能。
• 短所・・・内部処理が不明。モデルの拡張ができない。
3. ベイズ推定ソフト(モジュール)を導入し、使う
• 長所・・・オーダーメイドモデルを作成可能。処理が明確。収束が速い。
• 短所・・・覚えるまでに時間がかかる。ミスが起きやすい。
今日はベイズ推定ソフトを徹底的に覚える
Rにおけるベイズ推定ソフト
ベイズ推定ソフトとは?
MCMC(マルコフ連鎖モンテカルロ法)を用いて、
事後分布を得ることのできるソフトウェア
具体的なソフトウェア
• BUGS(Bayesian inference Using Gibbs Sampling)
➡ すべての始まり(既に開発は終了)。
• JAGS(Just Another Gibbs Sampler)
➡ BUGSを使いやすくした感じ
• Stan (数学者 Stanislaw Ulamより)
➡ BUGSを進化させた感じ
https://en.wikipedia.org/wiki/Stanislaw_Ulam
Stan
• 2010年頃にリリース。現在も随時アップデート中。
• BDA3のAndrew Gelmanらによって設計
• BUGS等で苦手としていた潜在変数モデリング(IRT)等における、
収束速度や推定精度の向上
• 推定方法として、NUTSアルゴリズムに基づいたHMC法
(Hamiltonian Monte Carlo)を用いている(変分ベイズも導入)。
Stanの種類
• 様々なインターフェイスに対応。Rでなくても良い
• Stanの記法は、各インターフェイス間で共通
• 以降はRStanをStanとして紹介
Stanってどうやって動いているの?(あくまでイメージ)
*つまり
別々の世界で
動いているイメージが
ここでは大事
統治者
PC世界
分析者(俺)
Stanで分析するときの流れ(R)
データ読み込み→read.csv()
データ成形→dplyr 等々 みなさまのお好みの方法で
分析設定→data <- list()
分析実行→stan()
data{
}
parameters{
}
model{
}
結果表示・可視化→summary() ggplot2
【番外編】Stanで分析するときの流れ(Python)
データ読み込み・データ成形
分析設定→data は ディクショナリー型で入れる
分析実行→stan()
data{
}
parameters{
}
model{
}
結果表示・可視化➡ fit.plot()
Stanをうごかすためには?
用意するもの
• R
• Rstudio
• Rtools(Windows) or Xcode(Mac)
• Stan (“rstan” package)
Stanを動かす( Rstan ➡ Rtools or Xcode(C++) )
↑
RからStanを動かす命令を送る( R ➡ RStan )
↑
Rに命令を送る( Rstudio ➡ R )
Rを用意する。
https://cran.ism.ac.jp/
↑アクセス、Download R for 各OSからダウンロード&インスト
Rstudioを用意する。
https://www.rstudio.com/products/rstudio/download3/
↑にアクセス、ダウンロード・インスト
Rtools(Windows) or Xcode(Mac)を用意する
https://cran.ism.ac.jp/
1. ↑にアクセス、Download R for Windows
2. Rtoolsをクリック。
3. Rtools34.exe(自分のRに合うもの)をクリック・ダウンロード
(続く)
Rtools(Windows) or Xcode(Mac)を用意する
4. インストール画面でこのような画面が出てくるので、
チェックボックスにチェックを入れてから、インストールする
Rtools(Windows) or Xcode(Mac)を用意する
https://developer.apple.com/jp/xcode/
↑からダウンロード・インストール
Stan (“rstan” package) を用意する。
• Rstudioを起動する。
• Consoleに install.packages(“rstan”) を入力し、実行。
(rstan)はすべて半角小文字
• 下が表示されればインストールOK
ここまでまとめ
• 今回、Rでベイズ推定するためにStanというものを使う。
• StanはRの世界では動かない。RはStanの世界では動かない。
➡StanとRの内的処理は、“別々の世界”で行われている。
• RとStanの橋渡しのためにRstudioがあると便利。橋渡しその
ものは、rstanパッケージを使う。
• RstudioでRからStanに命令を送ったあと、PCそのもの(C++)に
命令を認識させる(変換する)必要がある。そのためにRtools &
Xcodeを使う。
1. Stan入門編
とりあえず、Stanを動かす。
Stanを動かすまで
Stan Code の構造
# R
library(rstan)
# rstan_options(auto_write = TRUE)
# options(mc.cores = parallel::detectCores())
• 赤枠をコメントアウトして( #を取って ) 実行すると、
読み込んだモデルを保存しておき、
並列処理化することができる(とりあえずここではしない)
とりあえずStanをうごかす1 ( binomial.R )
# R
model <- '
data{
int N;
int Y;
}
parameters{
real<lower=0, upper=1> theta;
}
model{
Y ~ binomial(N, theta);
}
'
• モデルを読み込む。今は何も考えず実行してみてください。
とりあえずStanをうごかす1
ここでうまくいかない場合。シングルクォーテーション ’ を
打ち直して見て下さい。コピーだと全角になることがあるよ
うです。
# R
N <- 10
Y <- 8
dat <- list(N=N, Y=Y)
fit <- stan(model_code = model, data = dat,
iter = 1000, warmup = 500,
chains = 3 , seed = 1234, thin = 1)
• データを読み込む(というより今回は作るが正しいかも)
• データをリスト型で用意する。
• 分析をStanに送る命令文(詳しくは後述)
とりあえずStanをうごかす1
• うまく、動くとコンパイル
され (右には載せてません)
そして、その後、推定され
ます。
• この回している感がすごい
好き・・・
とりあえずStanをうごかす1
# R
fit
• 今回は、推定結果を fit に代入したので、fitを実行すると、推
定結果が出てきます(10回中8回表が出たコインの例)。
とりあえずStanをうごかす1
# R
stan_dens(fit) # 事後分布可視化
• 事後分布を可視化してみる
• とりあえず、うごかすことができた
• やはり、ピークは0.8程度であることが確認出来る
とりあえずStanをうごかす1
library("rstan")
model <- '
data{
int N;
int Y;
}
parameters{
real<lower=0,
upper=1> theta;
}
model{
Y ~ binomial(N,
theta);
}
'#(右上に続く)
ここまでのコード
#(左下から)
N <- 10
Y <- 8
dat <- list(N=N, Y=Y)
fit <- stan(model_code = model,
data = dat,
iter = 1000,
warmup = 500,
chains = 3 ,
seed = 1234,
thin = 1)
fit
stan_dens(fit) # 事後分布可視化
• ここまでのRコードがどんなことをしているのか?
• Stanに何をさせているのか?
を読み解いていく。
まずは、読み込み。これは問題ない。
ここまでのコードを読み解く
# R
library(rstan)
# rstan_options(auto_write = TRUE)
# options(mc.cores = parallel::detectCores())
# R
model <- '
data{
int N;
int Y;
}
parameters{
real<lower=0, upper=1> theta;
}
model{
Y ~ binomial(N, theta);
}
'
• これが、ベイズモデルにあたる部分
• これさえ書ければ、何でも推定できる
• 今回は、Rコードに直接記述する方法でモデルを書いた。
ここまでのコードを読み解く
# R (.R file)
library(rstan)
model <- ‘
略
‘
data <- list()
fit <- stan(model)
• コードを一括管理
できる。
• コード全体がとて
も長くなる。
• 複数のモデルを比
較するのが大変
Rコードに直接記述する方法とは?
直接記述する方法
# R (.R file)
library(rstan)
data <- list()
fit <- stan(.stan)
【推奨】RコードとStanコードを別々に記述する方法
# Stan(.stan file)
data{
}
parameters{
}
model{
}
• コードを分けるため、モデルを複数比
較する際、管理しやすい。
• モデルの使い回しが容易に行える(モデ
ルコード単位で管理しているため)
• 簡単にモデルを書くことができる
(Rstudioのハイライトが使えるため)
【推奨】RコードとStanコードを別々に記述するには?
もしくはCtrl + Shift + N
もしくはCtrl + S
モデル名.stan で保存
無事Stanファイルができていれば、右下がStanになる。
これでStanモデル用のハイライトが使える。
.stan ファイルを作成する
• さきほどのモデルを今作った.stanファイルにそのまま貼り付
けてみる。
• ハイライト(色づけ)されるようになった。
• 少し打つと、予約語が自動的に出てくるようになった。
【推奨】RコードとStanコードを別々に記述するには?
• さらに、右上のチェックを押すことでモデルの文法をチェッ
クしてくれる。
注: あくまでも文法のチェックであり、数学的な正しさのチェックではない。また、
このチェックがOKでもエラーをはかれる事があります(後述)。
• ダメだと、こんな感じ。「 ; が抜けているよ(後述)」というエ
ラー
【推奨】RコードとStanコードを別々に記述するには?
正しいと、このように出る。
library("rstan")
N <- 10
Y <- 8
dat <- list(N=N, Y=Y)
fit <- stan(file = "binomial.stan",
data = dat,
iter = 1000,
warmup = 500,
chains = 3,
seed = 1234,
thin = 1)
fit
stan_dens(fit) # 事後分布可視化
• 今書いたコードを実行す
るには、先ほどのコード
を右のように変更する。
(.stanファイルを作成した
ため、モデルの部分がカッ
トされた。)
• このコードを実行するた
めには、作業ディレクト
リを.stanファイルのある
フォルダに設定して実行
してください。
【推奨】RコードとStanコードを別々に記述するには?
N <- 10
Y <- 8
dat <- list(N=N, Y=Y)
• 次は、データにあたる部分。
• 今回は、コインを10回投げたら(N=10)、8回表が出た(Y=8)。
• 分析用データとして、datをリスト形式で用意してあげる。
(pystanの場合、pythonでは辞書型で与えてあげる)
• リストの中には、モデルのdata{}で囲んだ部分に書いたものと全く同じも
のを入れる必要がある(大文字小文字、型等も揃える)。
話を戻して、ここまでのコードを読み解く
そのため、今回は、NとYをデータとして与える
必要がある。
また、下記のように与えても問題ない
dat <- list(N=10, Y=8)
fit <- stan(file = "binomial.stan",
data = dat,
iter = 1000,
warmup = 500,
chains = 3,
seed = 1234,
thin = 1)
次は、実際の推定部分
• file= どの.stanファイルを使うのか指定(ワーキングディレクトリ内)
• data= 分析データ
• iter= 何回乱数生成計算(MCMC)を行うか ( デフォルト=2000)
• warmup= iterのうち何回を初期値依存として、結果に反映させないか
(warmup<iter) (デフォ= iter/2)
• chain= 何本の乱数列で計算を行うか? (デフォ=4)
• seed= 初期値をいくつから始めるかのシード値
• thin= 結果をいくつずつ間引いて使うか (デフォ=1)
ここまでのコードを読み解く
fit
stan_dens(fit) # 事後分布可視化
• 今回、fitは結果を表示
• stan_dens()は、事後分布を表示する関数。各パラメータの事
後確率をカーネル密度推定し(なめらかに線を引いて) 、事後
分布をプロットする関数。
ここまでのコードを読み解く
• パッケージ読み込んで~
• データ作成(指定)して~
• データをリスト型で集
約して~
• Stanに渡して、MCMC~
• 結果表示して~
• 事後分布見てみる。
無事、ここまでのコードを読み解けたでしょうか?
library("rstan")
N <- 10
Y <- 8
dat <- list(N=N, Y=Y)
fit <- stan(file = "binomial.stan",
data = dat,
iter = 1000,
warmup = 500,
chains = 3,
seed = 1234,
thin = 1)
fit
stan_dens(fit) # 事後分布可視化
Stan コードについて
• ブロックごとに別れている
• 基本的には、左の3つ。
• 特殊なブロックもあるが、こ
れは追々、説明。
• functions{}
• transformed data{}
• transformed parameters{}
• generated quantities{}
• ここで、StanとRの世界は
別々だという話を思い出して
ください。
Stan Codeの構造
# Stan(.stan file)
data{
}
parameters{
}
model{
}
Stan コードについて
• それぞれの役割とイメージ
data{
# RからStanへ
}
parameters{
# StanからRへ
}
model{
# 事前分布&MCMC~♪
}
Stan Codeの構造
# Stan(.stan file)
data{
# Rの世界からStanの世界へ
# 送り込むデータについて記述する
}
parameters{
# Stanの世界からRの世界へ
# 送り込むパラメータ(推定するパ
ラメータ)について記述する
}
model{
# MCMCや事前分布について記述
# イメージとしては、dataブロック
とparametersブロックをつなぐと
ころ。
}
# Stan(.stan file)
data{
# Rの世界からStanの世界へ
# 送り込むデータについて記述する
}
parameters{
# Stanの世界からRの世界へ
# 送り込むパラメータ(推定するパ
ラメータ)について記述する
}
model{
# MCMCや事前分布について記述
# イメージとしては、dataブロック
とparametersブロックをつなぐと
ころ。
}
data{}とparameters{}について
• RからStanに、StanからRに、
つまり、別世界から送り込ま
れてきたdataや送り返す
parametersの交換所
• dataやparametersがどんな
形・大きさなのか?どうやっ
て受け渡しすれば良いのか?
を指定する必要がある。
• ここで、この受け渡しする入
れ物を型として、指定する必
要がある。
Stan Codeの構造(入れ物(型)のおはなし)
Stan Codeの構造(入れ物(型)のおはなし)
• 型の種類(アヒル本 表9.1.a 引用)
何の型? 例 説明
整数 int N 整数を表す変数
実数 real Y 実数を表す変数
整数の配列 int Y[N] N個の整数を要素とする配列
実数の配列 real Y[N, M, L] N×M×L個の実数を要素とする配列
整数or実数
(戸建て)
イメージ
整数の配列or実数の配列
(複数の戸建て)
Stan Codeの構造(入れ物(型)のおはなし)
• 型の種類(アヒル本 表9.1.bより引用)
何の型? 例 説明
ベクトル vector[K] V 1個の「長さKのベクトル」
ベクトルの配列 vector[K] V[N] N個の「長さKのベクトル」
ベクトルの配列 vector[K] V[N,M] N×M個の「長さKのベクトル」
行列 matrix[J,K] X 1個の「J行K列の行列」
行列の配列 matrix[J,K] X[N] N個の「J行K列の行列」
整数or実数
(スカラー)
イメージ
ベクトルの配列
(複数の複数階の戸建て)
ベクトル
(複数階の戸建て)
行列
(マンション)
J行
K列
N個
長さK 長さK長さK
Stan Codeの構造(入れ物(型)のおはなし)
• 実際の使用例
• 行ベクトル/列ベクトル
例 説明
int<lower=0> N 0以上を満たす整数を表す変数
real<upper=3> Y 3以下を満たす実数を表す変数
int<lower=0, upper=3> Y 0以上3以下を満たす整数を表す変数
列ベクトル行列
行
列
301,302,303
行ベクトル
(列)ベクトル vector[K] V 1個の「長さKの列ベクトル」
行ベクトル row_vector[K] V 1個の「長さKの行ベクトル」
102,
202,
302,
402号室
Stan Codeの構造(入れ物(型)のおはなし)
• Stan内蔵の特別なベクトルの型
例 説明
simplex[K] theta K個の要素すべてが[0,1]の範囲を満たし、
合計が1の列ベクトル
unit_vector[K] X K個の要素の二乗の合計が1の列ベクトル
ordered[K] X K個の要素が順序制約を満たす列ベクトル
𝑋1 < 𝑋2 < 𝑋3 < ⋯ < 𝑋 𝐾
positive_ordered[K] X K個の正の要素が順序制約を満たす列ベクトル
0 < 𝑋1 < 𝑋2 < 𝑋3 < ⋯ < 𝑋 𝐾
Stan Codeの構造(入れ物(型)のおはなし)
• Stan内蔵の特別な行列の型
例 説明
cov_matrix[D] cov D次元の分散共分散行列(対称行列・半正定値)
corr_matrix[D] cor D次元の相関行列(対称行列・半正定値・対角成分が1)
cholesky_factor_cov[D] CFCv D次元の分散共分散行列のコレスキー因子
(下三角行列・対角成分が正)
cholesky_factor_corr[D] CFCr D次元の相関行列のコレスキー因子
(下三角行列・対角成分が正・各行で要素の二乗和が1)
Stan Codeの構造(入れ物(型)のおはなし)
• アクセスの仕方(matrix[J,K] X と宣言した場合)
アクセス例 説明
X[j] or X[j, ] or X[j, : ] j行目の行ベクトル(要素はK個)
X[1,k] 1行k列の要素
X[1:2, 1:2] 2行2列の部分行列
行
列
X[j] or X[j, ] or X[j, : ] X[1,k] X[1:2, 1:2]
アクセスのイメージ
j
行
列
k
1
行
列
1
2
1 2
以上のように、data/parameters{}で型を宣言。
• これを踏まえて、さきほど
のモデルを再度、読み解い
てみる。
• では、次にmodel{}の部分
を見ていく。
# Stan(.stan file)
data{
int N;
int Y;
}
parameters{
real<lower=0, upper=1> theta;
}
model{
Y ~ binomial(N, theta);
}
コインを投げた回数(整数)と
コインの表が出た回数(整数)
のデータ(N,Y)を宣言
・今回は、二項分布に従う
モデルなので、そのパラ
メータとして、theta(𝜃)を宣
言する。
・もちろん、0~1の範囲しか
取らないので、範囲も指定。
・そして、実数もとりうる
ので、real型で宣言している。
Stan コードについて
• それぞれの役割とイメージ
data{
# RからStanへ
}
parameters{
# StanからRへ
}
model{
# 事前分布&MCMC~♪
}
【再掲】Stan Codeの構造
# Stan(.stan file)
data{
# Rの世界からStanの世界へ
# 送り込むデータについて記述する
}
parameters{
# Stanの世界からRの世界へ
# 送り込むパラメータ(推定するパ
ラメータ)について記述する
}
model{
# MCMCや事前分布について記述
# イメージとしては、dataブロック
とparametersブロックをつなぐと
ころ。
}
# Stan(.stan file)
data{
# Rの世界からStanの世界へ
# 送り込むデータについて記述する
}
parameters{
# Stanの世界からRの世界へ
# 送り込むパラメータ(推定するパ
ラメータ)について記述する
}
model{
# MCMCや事前分布について記述
# イメージとしては、dataブロック
とparametersブロックをつなぐと
ころ。
}
model{}について
• これまで用意してきたdataや
parameterを使って、事後分
布を導き出す。
• 事前分布や尤度については、
ここで記述する。
• つまり、~(サンプリング)は、
このブロックでしか行えない。
Stan Codeの構造(model{}のおはなし)
# Stan(.stan file)
data{
int N;
int Y;
}
parameters{
real<lower=0,upper=1> theta;
}
model{
Y ~ binomial(N, theta);
}
今回のモデル
• 10回(N)コインを投げて、8回
(Y)表が出る確率θを推定した
い。
• このとき、θは二項分布
(binomial)に従う。
• 左のように記述する。
Stan Codeの構造(model{}のおはなし)
model{} でMCMCを行っている
# Stan(.stan file)
data{
int N;
int Y;
}
parameters{
real<lower=0,upper=1> theta;
}
model{
Y ~ binomial(N, theta);
}
今回のモデル
• 10回(N)コインを投げて、8回
(Y)表が出る確率θを推定した
い。
• このとき、θは二項分布
(binomial)に従う。
• 左のように記述する。
Stan Codeの構造(model{}のおはなし)
model{} は計算(MCMC等)のための要
MCMCとは?
・詳細は次々回ぐらいにやると思いますので、あくまでもイメージを捉え
ることをここでは重視します。
Markov Chain Monte Calro (マルコフ連鎖モンテカルロ法)
• Stanで、事後確率を求めるために行われている計算の一つ
• MCMCの種類(一部のみ紹介)
• Gibbs sampling(ギブスサンプリング)
• Metropolis algorithm (メトロポリス法)
• Hamiltonian Monte Carlo(ハミルトニアンモンテカルロ(HMC)法)
• No-U-Turns Sampler(NUTSアルゴリズム)
• Stanに導入されているアルゴリズム
• HMC法によるNUTSアルゴリズム
• ADVI(automatic differentiation variational inference; 自動変分ベイズ)
どれがどう違うのか?
MCMCについて
• さまざまな事情からWebアップするうえでカット。
• くわしくは、「基礎からのベイズ統計学」(伊庭先生らの緑
本・豊田先生の緑本)などをご参考に。。。
MCMCを使用する際の注意点
・収束基準など、、、
MCMC法は最強なのか?
• 一つ前の状態にのみ依存し、
次の状態がきまるというルールにそって乱数生成して、
確率を近似してやる方法
• 確率を近似?
• 近似?
MCMC法は最強なのか?
• あくまでも近似である。
• 故に、確率が収束しているのか検討する必要がある。
• また、綺麗に乱数を生成できているのか調べる必要がある。
• 収束を確認する
• Gelman-Rubin収束判定
• 目視による確認(トレースプロット)
• 乱数生成に問題ないか?
• 自己相関のチェック
• 実行サンプルサイズのチェック
等々
これらの基準をクリアして、事後平均だったり事後分布を見ることに
意味がある
実践ベイズモデリング
ベイズモデリングのために必要なこと
• 記述統計・散布図・ヒストグラムを書く
• 簡単なモデル(既存のモデル)から考えていく。
例
• 単回帰分析 ➡ 重回帰分析 ➡ 階層モデル
• 自分書いたモデルを眺めまくる
• 仮定をおかないということは”仮定をおかない仮定を置くこと”
• 気付かないうちに仮定を置いていることも・・・
• 無情報は”無情報という有情報”を与えている。
• モデルを何度も壊して、変えて、直して、作って・・・
• 事前分布を変えてみる
• いろんなモデル同士を比較してみる
ベイズモデリングのために必要なこと
• そして、想像力
• 既存の分析モデルでできなかったことができるのがベイズ統計モデリン
グの良いところです。
• 収束さえしてしまえば、どんなモデルであっても問題ありません。ただ、
そのモデルから出てきたものが何を表しているのか検討する必要がある。
• どういう仮定をおいたもとででてきたものなのか?
• この正当性が客観的に担保できたうえで、どんなすごいモデルを作れるか?
さぁ、今こそベイズモデラーになりましょう

Más contenido relacionado

La actualidad más candente

StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章Shushi Namba
 
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章nocchi_airport
 
StanとRでベイズ統計モデリング読書会Ch.9
StanとRでベイズ統計モデリング読書会Ch.9StanとRでベイズ統計モデリング読書会Ch.9
StanとRでベイズ統計モデリング読書会Ch.9考司 小杉
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~. .
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング. .
 
これからの仮説検証・モデル評価
これからの仮説検証・モデル評価これからの仮説検証・モデル評価
これからの仮説検証・モデル評価daiki hojo
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにShushi Namba
 
R stan導入公開版
R stan導入公開版R stan導入公開版
R stan導入公開版考司 小杉
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータMiki Katsuragi
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布についてhoxo_m
 
Rで潜在ランク分析
Rで潜在ランク分析Rで潜在ランク分析
Rで潜在ランク分析Hiroshi Shimizu
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料nishioka1
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門shima o
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデルHiroshi Shimizu
 
心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理する心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理するHiroshi Shimizu
 
SapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドSapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドHiroshi Shimizu
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話Classi.corp
 

La actualidad más candente (20)

StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
 
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
 
StanとRでベイズ統計モデリング読書会Ch.9
StanとRでベイズ統計モデリング読書会Ch.9StanとRでベイズ統計モデリング読書会Ch.9
StanとRでベイズ統計モデリング読書会Ch.9
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング
 
これからの仮説検証・モデル評価
これからの仮説検証・モデル評価これからの仮説検証・モデル評価
これからの仮説検証・モデル評価
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするために
 
R stan導入公開版
R stan導入公開版R stan導入公開版
R stan導入公開版
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
Rで潜在ランク分析
Rで潜在ランク分析Rで潜在ランク分析
Rで潜在ランク分析
 
Stanでガウス過程
Stanでガウス過程Stanでガウス過程
Stanでガウス過程
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
WAICとWBICのご紹介
WAICとWBICのご紹介WAICとWBICのご紹介
WAICとWBICのご紹介
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
 
心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理する心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理する
 
MCMC法
MCMC法MCMC法
MCMC法
 
SapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライドSapporoR#6 初心者セッションスライド
SapporoR#6 初心者セッションスライド
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話
 

Similar a Stan勉強会資料(前編)

2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案yushin_hirano
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章Tomonobu_Hirano
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章Haruki Eguchi
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Yuto Takei
 
NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭t dev
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用Nobuaki Oshiro
 
Data-Intensive Text Processing with MapReduce ch4
Data-Intensive Text Processing with MapReduce ch4Data-Intensive Text Processing with MapReduce ch4
Data-Intensive Text Processing with MapReduce ch4Sho Shimauchi
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門Shintaro Fukushima
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)Toshiyuki Shimono
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jlShintaro Fukushima
 
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践LINE Corporation
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門Yuya Matsumura
 
私のチームのリーダブルコード
私のチームのリーダブルコード私のチームのリーダブルコード
私のチームのリーダブルコードKeisuke Tameyasu
 
リテラル文字列型までの道
リテラル文字列型までの道リテラル文字列型までの道
リテラル文字列型までの道Satoshi Sato
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)Yuya Matsumura
 
Designing data intensive applications-ch4
Designing data intensive applications-ch4Designing data intensive applications-ch4
Designing data intensive applications-ch4Motohiro Kanda
 

Similar a Stan勉強会資料(前編) (20)

2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
Data-Intensive Text Processing with MapReduce ch4
Data-Intensive Text Processing with MapReduce ch4Data-Intensive Text Processing with MapReduce ch4
Data-Intensive Text Processing with MapReduce ch4
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
 
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
 
Tokyo r28 1
Tokyo r28 1Tokyo r28 1
Tokyo r28 1
 
MongoDB3.2の紹介
MongoDB3.2の紹介MongoDB3.2の紹介
MongoDB3.2の紹介
 
私のチームのリーダブルコード
私のチームのリーダブルコード私のチームのリーダブルコード
私のチームのリーダブルコード
 
リテラル文字列型までの道
リテラル文字列型までの道リテラル文字列型までの道
リテラル文字列型までの道
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
 
Designing data intensive applications-ch4
Designing data intensive applications-ch4Designing data intensive applications-ch4
Designing data intensive applications-ch4
 

Más de daiki hojo

Bayesian Sushistical Modeling
Bayesian Sushistical ModelingBayesian Sushistical Modeling
Bayesian Sushistical Modelingdaiki hojo
 
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)daiki hojo
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]daiki hojo
 
あなたの心にBridgeSampling
あなたの心にBridgeSamplingあなたの心にBridgeSampling
あなたの心にBridgeSamplingdaiki hojo
 
GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT
GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT
GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT daiki hojo
 
MCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージ
MCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージMCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージ
MCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージdaiki hojo
 
Stanの事後処理 LTver
Stanの事後処理 LTverStanの事後処理 LTver
Stanの事後処理 LTverdaiki hojo
 
楽にggplotを描く・整える
楽にggplotを描く・整える楽にggplotを描く・整える
楽にggplotを描く・整えるdaiki hojo
 

Más de daiki hojo (8)

Bayesian Sushistical Modeling
Bayesian Sushistical ModelingBayesian Sushistical Modeling
Bayesian Sushistical Modeling
 
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
 
あなたの心にBridgeSampling
あなたの心にBridgeSamplingあなたの心にBridgeSampling
あなたの心にBridgeSampling
 
GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT
GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT
GoogleCalenderをShinyを実装してみた(序) Tokyo.R #66 LT
 
MCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージ
MCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージMCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージ
MCMCしすぎて締め切り間近に焦っているあなたに贈る便利なgg可視化パッケージ
 
Stanの事後処理 LTver
Stanの事後処理 LTverStanの事後処理 LTver
Stanの事後処理 LTver
 
楽にggplotを描く・整える
楽にggplotを描く・整える楽にggplotを描く・整える
楽にggplotを描く・整える
 

Último

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Último (7)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

Stan勉強会資料(前編)