SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Dealing with latent
discrete parameters in
Stan
ITÔ, Hiroki
2016-06-04
Tokyo.Stan
Michael Betancourt’s Stan Lecture
About me
• An end user of statistical
software
• Researcher of forest
ecology
• Species composition of
forests
• Forest dynamics
Contents
1. Introduction
• Population Ecology
2. Examples
1. Capture-recapture data and data augmentation
2. Multistate model
Bayesian Population Analysis
using WinBUGS (BPA)
• My colleagues and I translated “Bayesian Population
Analysis using WinBUGS” by M. Kéry and M. Schaub into
Japanese.
• Many practical examples for population ecology
Stan translation of BPA models
https://github.com/stan-dev/example-models/tree/master/BPA
Population ecology
• A subfield of ecology
• Studies of population
• Changes in size (number of individuals) of
animals, plants and other organisms
• Estimation of population size, growth rate,
extinction probability, etc.
Population ecology
• Latent discrete parameters are often used.
• Unobserved status
• Present or absent
• Dead or alive
• But Stan does not support discrete parameters.
• Marginalizing out is required to deal with discrete
parameters.
Example 1
Capture-recapture data and data augmentation
(in Chapter 6 of BPA)
Capture-recapture data
Capture
Release
Recapture
🐞
①
🐞
②
🐞
③
🐞
④
🐞
⑤
🐞
⑥
🐞
⑦
🐞
⑧
🐞
⑨
🐞
①
🐞
③
🐞
④
🐞
⑧
🐞
⑩
🐞
⑪
🐞
⑫
🐞
⑬
Assume closed population: fixed size, no recruitment,
no death, no immigration nor emigration
Data
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 1 1 1
[3,] 1 0 0
[4,] 1 0 1
[5,] 1 0 1
[6,] 1 0 1
:
[85,] 0 1 0
[86,] 0 1 1
[87,] 1 1 0
Individuals
Survey occasions
Estimation
• Population size (total number of individuals
including unobserved)
• Detection (capture) probability
Data augmentation
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 1 1 1
[3,] 1 0 0
[4,] 1 0 1
:
[87,] 1 1 0
[88,] 0 0 0
:
[236,] 0 0 0
[237,] 0 0 0
Add 150
dummy records
Model
BUGS
model {
# Priors
omega ~ dunif(0, 1) # Inclusion probability
p ~ dunif(0, 1) # Detection probability
# Likelihood
for (i in 1:M){
z[i] ~ dbern(omega) # Inclusion indicators
for (j in 1:T) {
y[i, j] ~ dbern(p.eff[i, j])
p.eff[i, j] <- z[i] * p
}
}
# Derived quantities
N <- sum(z[])
}
Stan
data {
int<lower=0> M; // Size of augmented data set
int<lower=0> T; // Number of sampling occasions
int<lower=0,upper=1> y[M, T]; // Capture-history matrix
}
transformed data {
int<lower=0> s[M]; // Totals in each row
int<lower=0> C; // Size of observed data set
C <- 0;
for (i in 1:M) {
s[i] <- sum(y[i]);
if (s[i] > 0)
C <- C + 1;
}
}
parameters {
real<lower=0,upper=1> omega; // Inclusion probability
real<lower=0,upper=1> p; // Detection probability
}
model {
for (i in 1:M) {
real lp[2];
if (s[i] > 0) {
// Included
increment_log_prob(bernoulli_log(1, omega)
+ binomial_log(s[i], T, p));
} else {
// Included
lp[1] <- bernoulli_log(1, omega)
+ binomial_log(0, T, p);
// Not included
lp[2] <- bernoulli_log(0, omega);
increment_log_prob(log_sum_exp(lp));
}
}
}
generated quantities {
int<lower=C> N;
N <- C + binomial_rng(M, omega * pow(1 - p, T));
}
Results
Computing times
OpenBUGS Stan
Number of chains 3 4
Burn-in or warmup +
iterations / chain
500 + 1000 500 + 1000
Computing time (sec) 5.9 5.8
Effective sample size
of p
320 1867
Eff. sample size /
time (sec-1)
54.6 319.5
Environment: 2.8 GHz Xeon W3530, Ubuntu 14.04, No parallell computing.
Compilation time is not included in Stan.
Times were measured using system.time(). The values are mean of 3 measurements.
Data augmentation
Example 2
Multistate model
(in chapter 9 of BPA)
Multistate model
🐞
①
🐞
②
🐞
③
🐞
④
🐞
⑤
🐞⑥
🐞⑦
🐞⑧
🐞⑨
Site A
Site B
Capture
Release
Recapture
🐞①
🐞
②
🐞
⑤
🐞
⑥
🐞⑦
🐞⑫
🐞⑪
Site A
Site B
🐞
⑩
Data
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 3 3 2 3 1
[2,] 1 1 1 1 1 2
[3,] 1 1 1 1 3 3
[4,] 1 3 3 3 3 3
[5,] 1 3 3 3 3 3
[6,] 1 1 2 3 3 3
:
[798,] 3 3 3 3 2 3
[799,] 3 3 3 3 2 3
[800,] 3 3 3 3 2 3
Individuals
Survey occasion
Values
1: seen (captured) at site A, 2: seen (captured) at site B,
3: not seen (not captured)
Estimation
• Survival probability (at site A and B)
• Movement probability (from site A to B and B to A)
• Detection (capture) probability (at site A and B)
State transition
State at time t+1
Site A Site B Dead
Site A φA(1-ψAB) φAψAB 1-φA
State at
time t
Site B φBψBA φB(1-ψBA) 1-φB
Dead 0 0 1
φA: survival probability at site A, φB: survival probability at site B,
ψAB: movement probability from A to B,
ψBA: movement probability from B to A
Observation
Observation at time t
Site A Site B Not seen
Site A pA 0 1-pA
State at
time t
Site B 0 pB 1-pB
Dead 0 0 1
pA: detection probability at site A,
pB: detection probability at site B
Model
BUGS
model {
:
# Define probabilities of state S(t+1) given S(t)
ps[1, 1] <- phiA * (1 - psiAB)
ps[1, 2] <- phiA * psiAB
ps[1, 3] <- 1 - phiA
ps[2, 1] <- phiB * psiBA
ps[2, 2] <- phiB * (1 - psiBA)
ps[2, 3] <- 1 - phiB
ps[3, 1] <- 0
ps[3, 2] <- 0
ps[3, 3] <- 1
# Define probabilities of O(t) given S(t)
po[1, 1] <- pA
po[1, 2] <- 0
po[1, 3] <- 1 - pA
po[2, 1] <- 0
po[2, 2] <- pB
po[2, 3] <- 1 - pB
po[3, 1] <- 0
po[3, 2] <- 0
po[3, 3] <- 1
:
for (i in 1:nind) {
# Define latent state at first capture
z[i, f[i]] <- y[i, f[i]]
for (t in (f[i] + 1):n.occasions) {
# State process
z[i, t] ~ dcat(ps[z[i, t - 1], ])
# Observation process
y[i, t] ~ dcat(po[z[i, t], ])
}
}
f[]: array containing first capture occasion
ps[,]: state transition matrix
po[,]: observation matrix
Stan
Treating as a Hidden Markov model
Site B Site B Site A DeadSite A
Hidden Markov model
State
Observation
Seen at
site A
Dead
Not seen
Seen at
site B
Seen at
site A
Not seen Not seen
model {
real acc[3];
vector[3] gamma[n_occasions];
// See Stan Modeling Language User's Guide and Reference Manual
for (i in 1:nind) {
if (f[i] > 0) {
for (k in 1:3)
gamma[f[i], k] <- (k == y[i, f[i]]);
for (t in (f[i] + 1):n_occasions) {
for (k in 1:3) {
for (j in 1:3)
acc[j] <- gamma[t - 1, j] * ps[j, k]
* po[k, y[i, t]];
gamma[t, k] <- sum(acc);
}
}
increment_log_prob(log(sum(gamma[n_occasions])));
}
}
}
Results
Computing times
OpenBUGS Stan
Number of chains 3 4
Burn-in or warmup +
iterations / chain
500 + 2000 500 + 1000
Computing time (sec) 327.9 193.5
Effective sample size
of pA
140 649
Eff. sample size /
time (sec-1)
0.4 3.4
Environment: 2.8 GHz Xeon W3530, Ubuntu 14.04, No parallell computing.
Compilation time is not included in Stan.
Times were measured using system.time(). The values are mean of 3 measurements.
Binomial-mixture model
(in Chapter 12 of BPA)
Stan code
data {
int<lower=0> R; // Number of sites
int<lower=0> T; // Number of temporal replications
int<lower=0> y[R, T]; // Counts
int<lower=0> K; // Upper bounds of population size
}
model {
:
// Likelihood
for (i in 1:R) {
vector[K+1] lp;
for (n in max_y[i]:K) {
lp[n + 1] <- binomial_log(y[i], n, p)
+ poisson_log(n, lambda);
}
increment_log_prob(log_sum_exp(lp[(max_y[i] + 1):(K + 1)]));
}
:
}
Computing times
OpenBUGS
Stan
(K=100)
Number of chains 3 4
Burn-in or warmup +
iterations / chain
200 + 1000 500 + 1000
Computing time (sec) 25.4 1007.8
Effective sample size
of λ
3000 401
Eff. sample size /
time (sec-1)
118.3 0.4
Environment: 2.8 GHz Xeon W3530, Ubuntu 14.04, No parallell computing.
Compilation time is not included in Stan.
Times were measured using system.time(). The values are mean of 3 measurements.
Summary
• Stan can deal with models including discrete
parameters by marginalizing.
• Divide and sum up every cases
• However, the formulation used are less
straightforward.

Contenu connexe

Tendances

研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節
Koji Matsuda
 
ベイジアンネットワーク入門
ベイジアンネットワーク入門ベイジアンネットワーク入門
ベイジアンネットワーク入門
Keisuke OTAKI
 
はじパタ8章 svm
はじパタ8章 svmはじパタ8章 svm
はじパタ8章 svm
tetsuro ito
 

Tendances (20)

研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節研究室内PRML勉強会 8章1節
研究室内PRML勉強会 8章1節
 
いいからベイズ推定してみる
いいからベイズ推定してみるいいからベイズ推定してみる
いいからベイズ推定してみる
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
ベイジアンネットワーク入門
ベイジアンネットワーク入門ベイジアンネットワーク入門
ベイジアンネットワーク入門
 
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
 
レコメンド研究のあれこれ
レコメンド研究のあれこれレコメンド研究のあれこれ
レコメンド研究のあれこれ
 
友人関係と感染症伝搬をネットワークで理解する
友人関係と感染症伝搬をネットワークで理解する友人関係と感染症伝搬をネットワークで理解する
友人関係と感染症伝搬をネットワークで理解する
 
統計的学習の基礎_3章
統計的学習の基礎_3章統計的学習の基礎_3章
統計的学習の基礎_3章
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
敵対的サンプル・摂動サーベイ
敵対的サンプル・摂動サーベイ敵対的サンプル・摂動サーベイ
敵対的サンプル・摂動サーベイ
 
統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
(DL輪読)Variational Dropout Sparsifies Deep Neural Networks
(DL輪読)Variational Dropout Sparsifies Deep Neural Networks(DL輪読)Variational Dropout Sparsifies Deep Neural Networks
(DL輪読)Variational Dropout Sparsifies Deep Neural Networks
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
 
予測理論とpredictability
予測理論とpredictability予測理論とpredictability
予測理論とpredictability
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 
はじパタ8章 svm
はじパタ8章 svmはじパタ8章 svm
はじパタ8章 svm
 
セレンディピティと機械学習
セレンディピティと機械学習セレンディピティと機械学習
セレンディピティと機械学習
 
深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて
 

En vedette

分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM
. .
 
100人のための統計解析 和食レストラン編
100人のための統計解析   和食レストラン編100人のための統計解析   和食レストラン編
100人のための統計解析 和食レストラン編
. .
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
 

En vedette (18)

Replica exchange MCMC
Replica exchange MCMCReplica exchange MCMC
Replica exchange MCMC
 
RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門
 
階層ベイズモデルで割安mobile PCを探す
階層ベイズモデルで割安mobile PCを探す階層ベイズモデルで割安mobile PCを探す
階層ベイズモデルで割安mobile PCを探す
 
Satoyama woodland management
Satoyama woodland managementSatoyama woodland management
Satoyama woodland management
 
MLPI Lecture 3: Advanced Sampling Techniques
MLPI Lecture 3: Advanced Sampling TechniquesMLPI Lecture 3: Advanced Sampling Techniques
MLPI Lecture 3: Advanced Sampling Techniques
 
データ解析で割安賃貸物件を探せ!(山手線沿線編) LT
データ解析で割安賃貸物件を探せ!(山手線沿線編) LTデータ解析で割安賃貸物件を探せ!(山手線沿線編) LT
データ解析で割安賃貸物件を探せ!(山手線沿線編) LT
 
分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM分布から見た線形モデル・GLM・GLMM
分布から見た線形モデル・GLM・GLMM
 
100人のための統計解析 和食レストラン編
100人のための統計解析   和食レストラン編100人のための統計解析   和食レストラン編
100人のための統計解析 和食レストラン編
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング
 
状態空間モデルの実行方法と実行環境の比較
状態空間モデルの実行方法と実行環境の比較状態空間モデルの実行方法と実行環境の比較
状態空間モデルの実行方法と実行環境の比較
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRRとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~
 

Similaire à Dealing with latent discrete parameters in Stan

Simple representations for learning: factorizations and similarities
Simple representations for learning: factorizations and similarities Simple representations for learning: factorizations and similarities
Simple representations for learning: factorizations and similarities
Gael Varoquaux
 
DS Unit-1.pptx very easy to understand..
DS Unit-1.pptx very easy to understand..DS Unit-1.pptx very easy to understand..
DS Unit-1.pptx very easy to understand..
KarthikeyaLanka1
 
Exploring temporal graph data with Python: 
a study on tensor decomposition o...
Exploring temporal graph data with Python: 
a study on tensor decomposition o...Exploring temporal graph data with Python: 
a study on tensor decomposition o...
Exploring temporal graph data with Python: 
a study on tensor decomposition o...
André Panisson
 

Similaire à Dealing with latent discrete parameters in Stan (20)

Applied machine learning for search engine relevance 3
Applied machine learning for search engine relevance 3Applied machine learning for search engine relevance 3
Applied machine learning for search engine relevance 3
 
Actors for Behavioural Simulation
Actors for Behavioural SimulationActors for Behavioural Simulation
Actors for Behavioural Simulation
 
MUMS Undergraduate Workshop - Parameter Selection and Model Calibration for a...
MUMS Undergraduate Workshop - Parameter Selection and Model Calibration for a...MUMS Undergraduate Workshop - Parameter Selection and Model Calibration for a...
MUMS Undergraduate Workshop - Parameter Selection and Model Calibration for a...
 
Simple representations for learning: factorizations and similarities
Simple representations for learning: factorizations and similarities Simple representations for learning: factorizations and similarities
Simple representations for learning: factorizations and similarities
 
DS Unit-1.pptx very easy to understand..
DS Unit-1.pptx very easy to understand..DS Unit-1.pptx very easy to understand..
DS Unit-1.pptx very easy to understand..
 
Exploring temporal graph data with Python: 
a study on tensor decomposition o...
Exploring temporal graph data with Python: 
a study on tensor decomposition o...Exploring temporal graph data with Python: 
a study on tensor decomposition o...
Exploring temporal graph data with Python: 
a study on tensor decomposition o...
 
MSSISS riBART 20160321
MSSISS riBART 20160321MSSISS riBART 20160321
MSSISS riBART 20160321
 
Theory to consider an inaccurate testing and how to determine the prior proba...
Theory to consider an inaccurate testing and how to determine the prior proba...Theory to consider an inaccurate testing and how to determine the prior proba...
Theory to consider an inaccurate testing and how to determine the prior proba...
 
Flink Forward Berlin 2017: David Rodriguez - The Approximate Filter, Join, an...
Flink Forward Berlin 2017: David Rodriguez - The Approximate Filter, Join, an...Flink Forward Berlin 2017: David Rodriguez - The Approximate Filter, Join, an...
Flink Forward Berlin 2017: David Rodriguez - The Approximate Filter, Join, an...
 
PS
PSPS
PS
 
Gradient Boosted Regression Trees in scikit-learn
Gradient Boosted Regression Trees in scikit-learnGradient Boosted Regression Trees in scikit-learn
Gradient Boosted Regression Trees in scikit-learn
 
Efficient Process Model Discovery Using Maximal Pattern Mining
Efficient Process Model Discovery Using Maximal Pattern MiningEfficient Process Model Discovery Using Maximal Pattern Mining
Efficient Process Model Discovery Using Maximal Pattern Mining
 
Vu_HPSC2012_02.pptx
Vu_HPSC2012_02.pptxVu_HPSC2012_02.pptx
Vu_HPSC2012_02.pptx
 
Bayesian Experimental Design for Stochastic Kinetic Models
Bayesian Experimental Design for Stochastic Kinetic ModelsBayesian Experimental Design for Stochastic Kinetic Models
Bayesian Experimental Design for Stochastic Kinetic Models
 
Monitoring nonlinear profiles with {R}: an application to quality control
Monitoring nonlinear profiles with {R}: an application to quality controlMonitoring nonlinear profiles with {R}: an application to quality control
Monitoring nonlinear profiles with {R}: an application to quality control
 
Dual-time Modeling and Forecasting in Consumer Banking (2016)
Dual-time Modeling and Forecasting in Consumer Banking (2016)Dual-time Modeling and Forecasting in Consumer Banking (2016)
Dual-time Modeling and Forecasting in Consumer Banking (2016)
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Introduction to computing Processing and performance.pdf
Introduction to computing Processing and performance.pdfIntroduction to computing Processing and performance.pdf
Introduction to computing Processing and performance.pdf
 
RSC: Mining and Modeling Temporal Activity in Social Media
RSC: Mining and Modeling Temporal Activity in Social MediaRSC: Mining and Modeling Temporal Activity in Social Media
RSC: Mining and Modeling Temporal Activity in Social Media
 
Computing the Nucleon Spin from Lattice QCD
Computing the Nucleon Spin from Lattice QCDComputing the Nucleon Spin from Lattice QCD
Computing the Nucleon Spin from Lattice QCD
 

Dernier

怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
vexqp
 
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
wsppdmt
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling ManjurJual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
ptikerjasaptiker
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
wsppdmt
 
PLE-statistics document for primary schs
PLE-statistics document for primary schsPLE-statistics document for primary schs
PLE-statistics document for primary schs
cnajjemba
 
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
vexqp
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Klinik kandungan
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
ranjankumarbehera14
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
nirzagarg
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
nirzagarg
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
gajnagarg
 
Cytotec in Jeddah+966572737505) get unwanted pregnancy kit Riyadh
Cytotec in Jeddah+966572737505) get unwanted pregnancy kit RiyadhCytotec in Jeddah+966572737505) get unwanted pregnancy kit Riyadh
Cytotec in Jeddah+966572737505) get unwanted pregnancy kit Riyadh
Abortion pills in Riyadh +966572737505 get cytotec
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
nirzagarg
 
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
vexqp
 

Dernier (20)

怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
 
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
一比一原版(UCD毕业证书)加州大学戴维斯分校毕业证成绩单原件一模一样
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling ManjurJual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
Jual Cytotec Asli Obat Aborsi No. 1 Paling Manjur
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
 
PLE-statistics document for primary schs
PLE-statistics document for primary schsPLE-statistics document for primary schs
PLE-statistics document for primary schs
 
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
 
Data Analyst Tasks to do the internship.pdf
Data Analyst Tasks to do the internship.pdfData Analyst Tasks to do the internship.pdf
Data Analyst Tasks to do the internship.pdf
 
Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........Switzerland Constitution 2002.pdf.........
Switzerland Constitution 2002.pdf.........
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
 
Sequential and reinforcement learning for demand side management by Margaux B...
Sequential and reinforcement learning for demand side management by Margaux B...Sequential and reinforcement learning for demand side management by Margaux B...
Sequential and reinforcement learning for demand side management by Margaux B...
 
Cytotec in Jeddah+966572737505) get unwanted pregnancy kit Riyadh
Cytotec in Jeddah+966572737505) get unwanted pregnancy kit RiyadhCytotec in Jeddah+966572737505) get unwanted pregnancy kit Riyadh
Cytotec in Jeddah+966572737505) get unwanted pregnancy kit Riyadh
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt
 
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
怎样办理圣路易斯大学毕业证(SLU毕业证书)成绩单学校原版复制
 

Dealing with latent discrete parameters in Stan

  • 1. Dealing with latent discrete parameters in Stan ITÔ, Hiroki 2016-06-04 Tokyo.Stan Michael Betancourt’s Stan Lecture
  • 2. About me • An end user of statistical software • Researcher of forest ecology • Species composition of forests • Forest dynamics
  • 3. Contents 1. Introduction • Population Ecology 2. Examples 1. Capture-recapture data and data augmentation 2. Multistate model
  • 4. Bayesian Population Analysis using WinBUGS (BPA) • My colleagues and I translated “Bayesian Population Analysis using WinBUGS” by M. Kéry and M. Schaub into Japanese. • Many practical examples for population ecology
  • 5. Stan translation of BPA models https://github.com/stan-dev/example-models/tree/master/BPA
  • 6. Population ecology • A subfield of ecology • Studies of population • Changes in size (number of individuals) of animals, plants and other organisms • Estimation of population size, growth rate, extinction probability, etc.
  • 7. Population ecology • Latent discrete parameters are often used. • Unobserved status • Present or absent • Dead or alive • But Stan does not support discrete parameters. • Marginalizing out is required to deal with discrete parameters.
  • 8. Example 1 Capture-recapture data and data augmentation (in Chapter 6 of BPA)
  • 10. Data [,1] [,2] [,3] [1,] 0 0 1 [2,] 1 1 1 [3,] 1 0 0 [4,] 1 0 1 [5,] 1 0 1 [6,] 1 0 1 : [85,] 0 1 0 [86,] 0 1 1 [87,] 1 1 0 Individuals Survey occasions
  • 11. Estimation • Population size (total number of individuals including unobserved) • Detection (capture) probability
  • 12. Data augmentation [,1] [,2] [,3] [1,] 0 0 1 [2,] 1 1 1 [3,] 1 0 0 [4,] 1 0 1 : [87,] 1 1 0 [88,] 0 0 0 : [236,] 0 0 0 [237,] 0 0 0 Add 150 dummy records
  • 13. Model
  • 14. BUGS model { # Priors omega ~ dunif(0, 1) # Inclusion probability p ~ dunif(0, 1) # Detection probability # Likelihood for (i in 1:M){ z[i] ~ dbern(omega) # Inclusion indicators for (j in 1:T) { y[i, j] ~ dbern(p.eff[i, j]) p.eff[i, j] <- z[i] * p } } # Derived quantities N <- sum(z[]) }
  • 15. Stan
  • 16. data { int<lower=0> M; // Size of augmented data set int<lower=0> T; // Number of sampling occasions int<lower=0,upper=1> y[M, T]; // Capture-history matrix } transformed data { int<lower=0> s[M]; // Totals in each row int<lower=0> C; // Size of observed data set C <- 0; for (i in 1:M) { s[i] <- sum(y[i]); if (s[i] > 0) C <- C + 1; } } parameters { real<lower=0,upper=1> omega; // Inclusion probability real<lower=0,upper=1> p; // Detection probability }
  • 17. model { for (i in 1:M) { real lp[2]; if (s[i] > 0) { // Included increment_log_prob(bernoulli_log(1, omega) + binomial_log(s[i], T, p)); } else { // Included lp[1] <- bernoulli_log(1, omega) + binomial_log(0, T, p); // Not included lp[2] <- bernoulli_log(0, omega); increment_log_prob(log_sum_exp(lp)); } } }
  • 18. generated quantities { int<lower=C> N; N <- C + binomial_rng(M, omega * pow(1 - p, T)); }
  • 20. Computing times OpenBUGS Stan Number of chains 3 4 Burn-in or warmup + iterations / chain 500 + 1000 500 + 1000 Computing time (sec) 5.9 5.8 Effective sample size of p 320 1867 Eff. sample size / time (sec-1) 54.6 319.5 Environment: 2.8 GHz Xeon W3530, Ubuntu 14.04, No parallell computing. Compilation time is not included in Stan. Times were measured using system.time(). The values are mean of 3 measurements.
  • 22. Example 2 Multistate model (in chapter 9 of BPA)
  • 23. Multistate model 🐞 ① 🐞 ② 🐞 ③ 🐞 ④ 🐞 ⑤ 🐞⑥ 🐞⑦ 🐞⑧ 🐞⑨ Site A Site B Capture Release Recapture 🐞① 🐞 ② 🐞 ⑤ 🐞 ⑥ 🐞⑦ 🐞⑫ 🐞⑪ Site A Site B 🐞 ⑩
  • 24. Data [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 3 3 2 3 1 [2,] 1 1 1 1 1 2 [3,] 1 1 1 1 3 3 [4,] 1 3 3 3 3 3 [5,] 1 3 3 3 3 3 [6,] 1 1 2 3 3 3 : [798,] 3 3 3 3 2 3 [799,] 3 3 3 3 2 3 [800,] 3 3 3 3 2 3 Individuals Survey occasion Values 1: seen (captured) at site A, 2: seen (captured) at site B, 3: not seen (not captured)
  • 25. Estimation • Survival probability (at site A and B) • Movement probability (from site A to B and B to A) • Detection (capture) probability (at site A and B)
  • 26. State transition State at time t+1 Site A Site B Dead Site A φA(1-ψAB) φAψAB 1-φA State at time t Site B φBψBA φB(1-ψBA) 1-φB Dead 0 0 1 φA: survival probability at site A, φB: survival probability at site B, ψAB: movement probability from A to B, ψBA: movement probability from B to A
  • 27. Observation Observation at time t Site A Site B Not seen Site A pA 0 1-pA State at time t Site B 0 pB 1-pB Dead 0 0 1 pA: detection probability at site A, pB: detection probability at site B
  • 28. Model
  • 29. BUGS
  • 30. model { : # Define probabilities of state S(t+1) given S(t) ps[1, 1] <- phiA * (1 - psiAB) ps[1, 2] <- phiA * psiAB ps[1, 3] <- 1 - phiA ps[2, 1] <- phiB * psiBA ps[2, 2] <- phiB * (1 - psiBA) ps[2, 3] <- 1 - phiB ps[3, 1] <- 0 ps[3, 2] <- 0 ps[3, 3] <- 1 # Define probabilities of O(t) given S(t) po[1, 1] <- pA po[1, 2] <- 0 po[1, 3] <- 1 - pA po[2, 1] <- 0 po[2, 2] <- pB po[2, 3] <- 1 - pB po[3, 1] <- 0 po[3, 2] <- 0 po[3, 3] <- 1 :
  • 31. for (i in 1:nind) { # Define latent state at first capture z[i, f[i]] <- y[i, f[i]] for (t in (f[i] + 1):n.occasions) { # State process z[i, t] ~ dcat(ps[z[i, t - 1], ]) # Observation process y[i, t] ~ dcat(po[z[i, t], ]) } } f[]: array containing first capture occasion ps[,]: state transition matrix po[,]: observation matrix
  • 32. Stan Treating as a Hidden Markov model
  • 33. Site B Site B Site A DeadSite A Hidden Markov model State Observation Seen at site A Dead Not seen Seen at site B Seen at site A Not seen Not seen
  • 34. model { real acc[3]; vector[3] gamma[n_occasions]; // See Stan Modeling Language User's Guide and Reference Manual for (i in 1:nind) { if (f[i] > 0) { for (k in 1:3) gamma[f[i], k] <- (k == y[i, f[i]]); for (t in (f[i] + 1):n_occasions) { for (k in 1:3) { for (j in 1:3) acc[j] <- gamma[t - 1, j] * ps[j, k] * po[k, y[i, t]]; gamma[t, k] <- sum(acc); } } increment_log_prob(log(sum(gamma[n_occasions]))); } } }
  • 36. Computing times OpenBUGS Stan Number of chains 3 4 Burn-in or warmup + iterations / chain 500 + 2000 500 + 1000 Computing time (sec) 327.9 193.5 Effective sample size of pA 140 649 Eff. sample size / time (sec-1) 0.4 3.4 Environment: 2.8 GHz Xeon W3530, Ubuntu 14.04, No parallell computing. Compilation time is not included in Stan. Times were measured using system.time(). The values are mean of 3 measurements.
  • 38. Stan code data { int<lower=0> R; // Number of sites int<lower=0> T; // Number of temporal replications int<lower=0> y[R, T]; // Counts int<lower=0> K; // Upper bounds of population size } model { : // Likelihood for (i in 1:R) { vector[K+1] lp; for (n in max_y[i]:K) { lp[n + 1] <- binomial_log(y[i], n, p) + poisson_log(n, lambda); } increment_log_prob(log_sum_exp(lp[(max_y[i] + 1):(K + 1)])); } : }
  • 39. Computing times OpenBUGS Stan (K=100) Number of chains 3 4 Burn-in or warmup + iterations / chain 200 + 1000 500 + 1000 Computing time (sec) 25.4 1007.8 Effective sample size of λ 3000 401 Eff. sample size / time (sec-1) 118.3 0.4 Environment: 2.8 GHz Xeon W3530, Ubuntu 14.04, No parallell computing. Compilation time is not included in Stan. Times were measured using system.time(). The values are mean of 3 measurements.
  • 40. Summary • Stan can deal with models including discrete parameters by marginalizing. • Divide and sum up every cases • However, the formulation used are less straightforward.