12-MCMC convergencia

Implementaremos un modelo de regresión en JAGS, la base de datos que usaremos contiene información de mediciones de radón (activity) y del suelo en el que se hicieron las mediciones (floor = \(0\) casas con sótano, floor = \(1\) casas sin sótano), las mediciones corresponden a \(919\) hogares muestreados de \(85\) condados de Minnesota. El objetivo es construir un modelo de regresión en el que la medición de radón es la variable dependiente y el tipo de suelo es la covariable.

El modelo es como sigue:

\[y_i \sim N(\alpha + \beta x_i, \sigma^2)\]

La distribuciones iniciales que usaremos son: \[\beta \sim N(0, 1000)\] \[\sigma^2 \sim U(0, 1000)\]

modelo_regresion.txt <-
    '
    model{
      for(i in 1 : n) {
        y[i] ~ dnorm(y.hat[i], tau.y) 
        y.hat[i] <- a + b * x[i]
      }
      a ~ dnorm(0, 0.01)
      b ~ dnorm(0, 0.001)
      tau.y <- pow(sigma.y, -2)
      sigma.y ~ dunif(0, 100)
    }
    '
cat(modelo_regresion.txt, file = 'modelo_regresion.bugs')

# cargamos los datos con load radon
radon <- readr::read_csv("data/radon.csv")

# Iniciamos preparando los datos para el análisis, trabajaremos en
# escala logarítmica, hay algunos casos con medición cero, para éstos
# hacemos una pequeña correción redondeándolos a 0.1.
y <- log(ifelse (radon$activity == 0, 0.1, radon$activity))
n <- nrow(radon)
x <- radon$floor

# jags
radon1_data <- list("n", "y", "x")
radon1_parameters <- c("a", "b", "sigma.y")

El ejercicio consiste en que utilces la función jags() definiendo valores inciales, número de cadenas, número de iteraciones y etapa de calentamiento. Asegurate de alcanzar convergencia y describe los diagnósticos que utilizaste para concluir que se convergió a la distribución posterior.

Instalar Stan y rstan, instrucciones aquí.