การสร้างแบบจำลอง Bayesian ด้วย RJAGS
Alicia Johnson
Associate Professor, Macalester College
$Y$ = ปริมาณ (จำนวนผู้ใช้) ในวันหนึ่ง
$Y \sim N(m, s^2)$
ในทางเทคนิค...

$Y$ = ปริมาณ (จำนวนผู้ใช้) ในวันหนึ่ง
$Y \sim \text{Pois}(l)$
$Y$ คือจำนวนเหตุการณ์อิสระที่เกิดขึ้นในช่วงเวลาคงที่ (0, 1, 2,...)
พารามิเตอร์อัตรา $l$ แทนจำนวนเหตุการณ์โดยทั่วไปต่อช่วงเวลา
($l > 0$)

$Y$ = ปริมาณ (จำนวนผู้ใช้) ในวันหนึ่ง
$Y \sim \text{Pois}(l)$
$Y$ คือจำนวนเหตุการณ์อิสระที่เกิดขึ้นในช่วงเวลาคงที่ (0, 1, 2,...)
พารามิเตอร์อัตรา $l$ แทนจำนวนเหตุการณ์โดยทั่วไปต่อช่วงเวลา
($l > 0$)

$Y$ = ปริมาณ (จำนวนผู้ใช้) ในวันหนึ่ง
$Y \sim \text{Pois}(l)$
$Y$ คือจำนวนเหตุการณ์อิสระที่เกิดขึ้นในช่วงเวลาคงที่ (0, 1, 2,...)
พารามิเตอร์อัตรา $l$ แทนจำนวนเหตุการณ์โดยทั่วไปต่อช่วงเวลา
($l > 0$)

$Y$ = ปริมาณ (จำนวนผู้ใช้) ในวันหนึ่ง
$Y \sim \text{Pois}(l)$
$Y$ คือจำนวนเหตุการณ์อิสระที่เกิดขึ้นในช่วงเวลาคงที่ (0, 1, 2,...)
พารามิเตอร์อัตรา $l$ แทนจำนวนเหตุการณ์โดยทั่วไปต่อช่วงเวลา
($l > 0$)

$Y_i \sim \text{Pois}(l_i)$ โดยที่ $l_i > 0$

$Y_i \sim \text{Pois}(l_i)$ โดยที่ $l_i > 0$
$l_i = a + b X_i + c Z_i$
$\;$

$Y_i \sim \text{Pois}(l_i)$ โดยที่ $l_i > 0$
$l_i = a + b X_i + c Z_i$
$\;$
ปัญหาที่พบ:
การเชื่อม $l_i$ กับโมเดลเชิงเส้นโดยตรงทำให้ $l_i$ มีค่าติดลบได้

$Y_i \sim \text{Pois}(l_i)$ โดยที่ $l_i > 0$
$log(l_i) = a + b X_i + c Z_i$
$\;$
วิธีแก้ปัญหา:
ใช้ ฟังก์ชันเชื่อม แบบ log เพื่อเชื่อม $l_i$ กับโมเดลเชิงเส้น ดังนั้น:
$$l_i = e^{a + b X_i + c Z_i}$$

$Y_i \sim \text{Pois}(l_i)$ โดยที่ $l_i > 0$
$log(l_i) = a + b X_i + c Z_i$
$\;$
วิธีแก้ปัญหา:
ใช้ ฟังก์ชันเชื่อม แบบ log เพื่อเชื่อม $l_i$ กับโมเดลเชิงเส้น ดังนั้น:
$$l_i = e^{a + b X_i + c Z_i}$$

$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$
poisson_model <- "model{
# Likelihood model for Y[i]
# Prior models for a, b, c
}"
$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$
poisson_model <- "model{
# Likelihood model for Y[i]
# Prior models for a, b, c
a ~ dnorm(0, 200^(-2))
b[1] <- 0
b[2] ~ dnorm(0, 2^(-2))
c ~ dnorm(0, 2^(-2))
}"
$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$
poisson_model <- "model{
# Likelihood model for Y[i]
for(i in 1:length(Y)) {
Y[i] ~ dpois(l[i])
}
# Prior models for a, b, c
a ~ dnorm(0, 200^(-2))
b[1] <- 0
b[2] ~ dnorm(0, 2^(-2))
c ~ dnorm(0, 2^(-2))
}"
$Y_i \sim \text{Pois}(l_i)$
$log(l_i) = a + b X_i + c Z_i$
$a \sim N(0, 200^2)$
$b \sim N(0, 2^2)$
$c \sim N(0, 2^2)$
poisson_model <- "model{
# Likelihood model for Y[i]
for(i in 1:length(Y)) {
Y[i] ~ dpois(l[i])
log(l[i]) <- a + b[X[i]] + c*Z[i]
}
# Prior models for a, b, c
a ~ dnorm(0, 200^(-2))
b[1] <- 0
b[2] ~ dnorm(0, 2^(-2))
c ~ dnorm(0, 2^(-2))
}"
$Y \sim \text{Pois}(l_i)$
การสร้างแบบจำลอง Bayesian ด้วย RJAGS