Parâmetros sem priores definidos em Stan

14

Eu apenas comecei a aprender a usar Stan e rstan. A menos que eu sempre tenha ficado confuso sobre como o JAGS / BUGS funcionou, pensei que você sempre tivesse que definir uma distribuição anterior de algum tipo para cada parâmetro no modelo a ser extraído. Parece que você não precisa fazer isso em Stan, com base na documentação. Aqui está um modelo de amostra que eles fornecem aqui .

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);
} 

Nem munem os anteriores tauforam definidos. Ao converter alguns dos meus modelos JAGS para Stan, descobri que eles funcionam se eu deixar muitos ou muitos parâmetros com anteriores indefinidos.

O problema é que não entendo o que Stan está fazendo quando tenho parâmetros sem antecedentes definidos. É padrão para algo como uma distribuição uniforme? Essa é uma das propriedades especiais do HMC, que não requer um definido anteriormente para cada parâmetro?

JoFrhwld
fonte

Respostas:

18

No (uma versão anterior) do manual de referência Stan:

Não especificar um prior é equivalente a especificar um prior uniforme.

Um prior uniforme só é adequado se o parâmetro estiver delimitado [...]

Priores impróprios também são permitidos nos programas Stan; eles surgem de parâmetros irrestritos sem instruções de amostragem. Em alguns casos, um prévio inadequado pode levar a um posterior adequado, mas cabe ao usuário garantir que as restrições no (s) parâmetro (s) ou nos dados garantam a propriedade do posterior.

(Veja também a seção C.3 na versão 1.0.1 ).

A razão subjacente de que tudo está bem no Stan, mas não no BUGS, pode ter a ver com o fato de que no BUGS, o "programa" do seu modelo está especificando um modelo gráfico formal, enquanto no Stan você está escrevendo uma pequena função para calcular a probabilidade conjunta Função de densidade. Não especificar um prévio adequado para todas as variáveis ​​pode estragar as boas propriedades formais dos modelos gráficos.

No entanto, para o Hamiltoniano MC, você só precisa (numericamente) calcular a função de densidade da junta. Um anterior plano (mesmo impróprio) contribui apenas com um termo constante para a densidade e, desde que o posterior seja adequado (massa de probabilidade total finita) - que será com qualquer função de probabilidade razoável - ele pode ser completamente ignorado no HMC esquema.

Dave Kleinschmidt
fonte
8

Da referência Stan v1.0.2 (página 6, nota de rodapé 1)

Se nenhum prior foi especificado no bloco do modelo, as restrições no theta garantem que ele caia entre 0 e 1, fornecendo ao theta um uniforme implícito anterior. Para parâmetros sem suporte previamente especificado e ilimitado, o resultado é um anterior inadequado. Stan aceita anteriores impróprios, mas os posteriores devem ser adequados para que a amostragem seja bem-sucedida.

Ambos mue sigmatêm antecedentes uniformes impróprios.

Sob o capô, mue sigmasão tratados de forma diferente. sigmaé definido com um limite inferior; Amostras de Stan de log(sigma)(com um ajuste jacobiano para a transformação). Para mais detalhes sobre transformações, consulte o Capítulo 27 (pág. 153).

syclik
fonte
Só para esclarecer isso, se as amostras STAN no nível de log (sigma), o plano anterior ainda está sobre sigma e não sobre log (sigma)?
Rasmus Baath
1
Sim, o uniforme anterior ainda acabou sigma, não log(sigma). Stan realiza isso transformando o parâmetro e aplicando a alteração correta do ajuste de variáveis ​​usando o Jacobiano.
syclik