Parametry bez zdefiniowanych priorytetów w Stan

15

Właśnie zacząłem uczyć się używać Stana i rstan. Chyba że zawsze byłem zdezorientowany, jak działały JAGS / BŁĘDY, myślałem, że zawsze musisz zdefiniować jakiś wcześniejszy rozkład dla każdego parametru w modelu, z którego chcesz czerpać. Wygląda na to, że nie musisz tego robić w Stanie na podstawie jego dokumentacji. Oto przykładowy model, który tutaj podają .

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

Nie zdefiniowano muteż taupriorytetów. Konwertując niektóre z moich modeli JAGS na Stan, przekonałem się, że działają one, jeśli zostawię wiele lub większość parametrów z nieokreślonymi priorytetami.

Problem polega na tym, że nie rozumiem, co robi Stan, gdy mam parametry bez zdefiniowanych priorytetów. Czy domyślne ustawienie to coś w rodzaju jednolitego rozkładu? Czy jest to jedna ze specjalnych właściwości konsoli HMC, że nie wymaga zdefiniowanego wcześniej dla każdego parametru?

JoFrhwld
źródło

Odpowiedzi:

18

Z (wcześniejszej wersji) podręcznika Stan:

Brak określenia przełożonego jest równoważny ze wskazaniem munduru przełożonego.

Jednolity przełożony jest właściwy tylko wtedy, gdy parametr jest ograniczony [...]

Niewłaściwe priory są również dozwolone w programach Stan; wynikają z nieograniczonych parametrów bez instrukcji próbkowania. W niektórych przypadkach niewłaściwy uprzedni może prowadzić do właściwego tylnego, ale to od użytkownika zależy, czy ograniczenia parametru (parametrów) lub danych zapewnią prawidłowy tylny.

(Zobacz także sekcję C.3 w wersji 1.0.1 ).

Podstawowy powód, dla którego jest to w porządku w Stanie, ale nie w BŁĘDACH, może wynikać z faktu, że w BŁĘDACH Twój „program” modelu określa formalny model graficzny, podczas gdy w Stanie piszesz małą funkcję do obliczania prawdopodobieństwa połączenia funkcja gęstości. Nieokreślenie właściwego priorytetu dla wszystkich zmiennych może popsuć ładne formalne właściwości modeli graficznych.

Jednak w przypadku Hamiltonian MC wystarczy (liczbowo) obliczyć funkcję gęstości połączenia. Płaski (nawet niepoprawny) wcześniejszy element przyczynia się tylko do stałej gęstości, a więc o ile tylna jest właściwa (masa skończonego prawdopodobieństwa całkowitego) - która będzie miała dowolną rozsądną funkcję prawdopodobieństwa - można ją całkowicie zignorować w konsoli HMC schemat.

Dave Kleinschmidt
źródło
8

Z referencji Stan v1.0.2 (str. 6, przypis 1)

Jeśli w bloku modelu nie określono wcześniejszego, ograniczenia na theta zapewniają, że mieści się ona w przedziale od 0 do 1, zapewniając theta domyślną jednolitą wcześniejszą. W przypadku parametrów bez wcześniejszego i nieograniczonego wsparcia wynik jest niepoprawny. Stan akceptuje niewłaściwe przeory, ale posterior musi być właściwy, aby pobieranie próbek zakończyło się powodzeniem.

Zarówno mui sigmamają niewłaściwe jednolitych prawdopodobieństwa a priori.

Pod maską mui sigmasą traktowani inaczej. sigmajest zdefiniowany dolną granicą; Próbki Stana z log(sigma)(z jakobińską korektą transformacji). Więcej informacji na temat transformacji znajduje się w rozdziale 27 (str. 153).

syclik
źródło
Właśnie dlatego jestem pewien, że jeśli STAN pobiera próbki na poziomie log (sigma), płaski przeora wciąż jest ponad sigma, a nie log (sigma)?
Rasmus Bååth,
1
Tak, mundur przełożonego wciąż się kończy sigma, nie log(sigma). Stan dokonuje tego poprzez transformację parametru i zastosowanie poprawnej zmiany dopasowania zmiennych za pomocą jakobianu.
syclik