RJAGS में Bayesian रिग्रेशन

RJAGS के साथ Bayesian Modeling

Alicia Johnson

Associate Professor, Macalester College

Bayesian रिग्रेशन मॉडल

$Y_i$ = वयस्क $i$ का वज़न (kg)
$X_i$ = वयस्क $i$ की हाइट (cm)

$\;$

मॉडल

$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)$

RJAGS के साथ Bayesian Modeling

Prior से सीख

RJAGS के साथ Bayesian Modeling

देखे गए वज़न और हाइट डेटा से सीख

$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
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल DEFINE करें

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





    # Prior models for a, b, s




}"  
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल DEFINE करें

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)$ जहाँ $i$ 1 से 507 तक है
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल DEFINE करें

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)$ जहाँ $i$ 1 से 507 तक है
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल DEFINE करें

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)$ जहाँ $i$ 1 से 507 तक है
  • $m_i = a + b X_i$
    • नोट: ~ नहीं, <- इस्तेमाल करें
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल DEFINE करें

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)$ जहाँ $i$ 1 से 507 तक है
  • $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)$
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल COMPILE करें

# 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
RJAGS के साथ Bayesian Modeling

रिग्रेशन मॉडल SIMULATE करें

# 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)
RJAGS के साथ Bayesian Modeling

RJAGS के साथ Bayesian Modeling

Markov chain अस्थिरता का समाधान

  • हाइट प्रेडिक्टर को स्टैंडर्डाइज़ करें (मीन घटाएँ और स्टैंडर्ड डिविएशन से भाग दें)

  • चेन की लंबाई बढ़ाएँ

RJAGS के साथ Bayesian Modeling

RJAGS के साथ Bayesian Modeling

Posterior से सीख

RJAGS के साथ Bayesian Modeling

अभ्यास करते हैं!

RJAGS के साथ Bayesian Modeling

Preparing Video For Download...