Parámetros sin antecedentes definidos en Stan

14

Acabo de empezar a aprender a usar Stan y rstan. A menos que siempre haya estado confundido acerca de cómo funcionaba JAGS / BUGS, pensé que siempre tenía que definir una distribución previa de algún tipo para cada parámetro del modelo que se extraería. Sin embargo, parece que no tiene que hacer esto en Stan según su documentación. Aquí hay un modelo de muestra que dan aquí .

data {
  int<lower=0> J; // number of schools 
  real y[J]; // estimated treatment effects
  real<lower=0> sigma[J]; // s.e. of effect estimates 
} 
parameters {
  real theta[J]; 
  real mu; 
  real<lower=0> tau; 
} 
model {
  theta ~ normal(mu, tau); 
  y ~ normal(theta, sigma);
} 

Ni mutampoco se tauhan definido antecedentes. Al convertir algunos de mis modelos JAGS a Stan, descubrí que funcionan si dejo muchos o la mayoría de los parámetros con antecedentes indefinidos.

El problema es que no entiendo lo que está haciendo Stan cuando tengo parámetros sin precedentes definidos. ¿Está predeterminado a algo como una distribución uniforme? ¿Es esta una de las propiedades especiales de HMC, que no requiere un previo definido para cada parámetro?

JoFrhwld
fuente

Respuestas:

18

Del (una versión anterior de) el manual de referencia de Stan:

No especificar un prior es equivalente a especificar un prior uniforme.

Un previo uniforme solo es apropiado si el parámetro está acotado [...]

Los previos inadecuados también están permitidos en los programas Stan; surgen de parámetros no restringidos sin enunciados de muestreo. En algunos casos, un previo incorrecto puede conducir a un posterior adecuado, pero es responsabilidad del usuario garantizar que las restricciones sobre los parámetros o los datos garanticen la propiedad del posterior.

(Consulte también la sección C.3 en la versión 1.0.1 ).

La razón subyacente de que esto está bien en Stan pero no en BUGS podría tener que ver con el hecho de que en BUGS, su "programa" modelo está especificando un modelo gráfico formal, mientras que en Stan está escribiendo una pequeña función para calcular la probabilidad conjunta función de densidad. No especificar un previo adecuado para todas las variables podría arruinar las buenas propiedades formales de los modelos gráficos.

Sin embargo, para Hamiltonian MC solo necesita calcular (numéricamente) la función de densidad conjunta. Un previo plano (incluso incorrecto) solo contribuye con un término constante a la densidad, y siempre que el posterior sea apropiado (masa de probabilidad total finita), que tendrá una función de probabilidad razonable, puede ignorarse por completo en la HMC esquema.

Dave Kleinschmidt
fuente
8

De la referencia de Stan v1.0.2 (pg 6, nota al pie 1)

Si no se especificó ningún previo en el bloque modelo, las restricciones en theta aseguran que caiga entre 0 y 1, proporcionando a theta un previo implícito uniforme. Para parámetros sin soporte previamente especificado e ilimitado, el resultado es un previo incorrecto. Stan acepta anteriores inadecuados, pero los posteriores deben ser adecuados para que el muestreo tenga éxito.

Ambos muy sigmatienen antecedentes uniformes inadecuados.

Debajo del capó, muy sigmason tratados de manera diferente. sigmase define con un límite inferior; Muestras de Stan log(sigma)(con un ajuste jacobiano para la transformación). Para obtener más detalles sobre las transformaciones, consulte el Capítulo 27 (pág. 153).

syclik
fuente
Solo para que quede claro sobre esto, si las muestras STAN en el nivel de registro (sigma), ¿el plano anterior todavía está sobre sigma y no sobre log (sigma)?
Rasmus Bååth
1
Sí, el uniforme anterior todavía está terminado sigma, no log(sigma). Stan logra esto transformando el parámetro y aplicando el cambio correcto de ajuste de variables usando el jacobiano.
syclik