Hồi quy Bayesian trong RJAGS

Mô hình hóa Bayesian với RJAGS

Alicia Johnson

Associate Professor, Macalester College

Mô hình hồi quy Bayesian

$Y_i$ = cân nặng của người lớn $i$ (kg)
$X_i$ = chiều cao của người lớn $i$ (cm)

$\;$

Mô hình

$Y_i \sim N(m_i, s^2)$
$m_i = a + b X_i$

$a \sim N(0, 200^2)$
$b \sim N(1, 0.5^2)$
$s \sim \text{Unif}(0, 20)$

Mô hình hóa Bayesian với RJAGS

Hiểu nhanh về prior

Mô hình hóa Bayesian với RJAGS

Thông tin từ dữ liệu cân nặng & chiều cao quan sát

$Y_i \sim N(m_i, s^2)$
$m_i = a + b X_i$

wt_mod <- lm(wgt ~ hgt, bdims)
coef(wt_mod)
(Intercept)         hgt 
-105.011254    1.017617 
summary(wt_mod)$sigma
9.30804
Mô hình hóa Bayesian với RJAGS

ĐỊNH NGHĨA mô hình hồi quy

weight_model <- "model{
    # Likelihood model for Y[i]





    # Prior models for a, b, s




}"  
Mô hình hóa Bayesian với RJAGS

ĐỊNH NGHĨA mô hình hồi quy

weight_model <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {


    }

    # Prior models for a, b, s




}"  
  • $Y_i \sim N(m_i, s^2)$ với $i$ từ 1 đến 507
Mô hình hóa Bayesian với RJAGS

ĐỊNH NGHĨA mô hình hồi quy

weight_model <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
      Y[i] ~ dnorm(m[i], s^(-2))

    }

    # Prior models for a, b, s




}"  
  • $Y_i \sim N(m_i, s^2)$ với $i$ từ 1 đến 507
Mô hình hóa Bayesian với RJAGS

ĐỊNH NGHĨA mô hình hồi quy

weight_model <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
      Y[i] ~ dnorm(m[i], s^(-2))
      m[i] <- a + b * X[i]
    }

    # Prior models for a, b, s




}"  
  • $Y_i \sim N(m_i, s^2)$ với $i$ từ 1 đến 507
  • $m_i = a + b X_i$
    • LƯU Ý: dùng <- không dùng ~
Mô hình hóa Bayesian với RJAGS

ĐỊNH NGHĨA mô hình hồi quy

weight_model <- "model{
    # Likelihood model for Y[i]
    for(i in 1:length(Y)) {
      Y[i] ~ dnorm(m[i], s^(-2))
      m[i] <- a + b * X[i]
    }

    # Prior models for a, b, s
    a ~ dnorm(0, 200^(-2))
    b ~ dnorm(1, 0.5^(-2))
    s ~ dunif(0, 20)

}"  
  • $Y_i \sim N(m_i, s^2)$ với $i$ từ 1 đến 507
  • $m_i = a + b X_i$

    • LƯU Ý: dùng <- không dùng ~
  • $a \sim N(0, 200^2)$

  • $b \sim N(1, 0.5^2)$
  • $s \sim \text{Unif}(0, 20)$
Mô hình hóa Bayesian với RJAGS

BIÊN DỊCH mô hình hồi quy

# COMPILE the model    
weight_jags <- jags.model(textConnection(weight_model), 
    data = list(X = bdims$hgt, Y = bdims$wgt),
    inits = list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 2018))

dim(bdims)
507  25
head(bdims$hgt)

head(bdims$wgt)
174.0 175.3 193.5 186.5 187.2 181.5

65.6 71.8 80.7 72.6 78.8 74.8
Mô hình hóa Bayesian với RJAGS

MÔ PHỎNG mô hình hồi quy

# COMPILE the model    
weight_jags <- jags.model(textConnection(weight_model), 
    data = list(X = bdims$hgt, Y = bdims$wgt),
    inits = list(.RNG.name = "base::Wichmann-Hill", 
                 .RNG.seed = 2018))

# SIMULATE the posterior
weight_sim <- coda.samples(model = weight_jags, 
    variable.names = c("a", "b", "s"), 
    n.iter = 10000)
Mô hình hóa Bayesian với RJAGS

Mô hình hóa Bayesian với RJAGS

Xử lý bất ổn của chuỗi Markov

  • Chuẩn hóa biến dự đoán chiều cao (trừ trung bình và chia cho độ lệch chuẩn)

  • Tăng độ dài chuỗi

Mô hình hóa Bayesian với RJAGS

Mô hình hóa Bayesian với RJAGS

Nhận định hậu nghiệm

Mô hình hóa Bayesian với RJAGS

Cùng luyện tập nào!

Mô hình hóa Bayesian với RJAGS

Preparing Video For Download...