MCMC zbiega się w jedną wartość?

13

Próbuję dopasować model hierarchiczny za pomocą jags i pakietu rjags. Moja zmienna wyniku to y, która jest sekwencją prób bernoulli. Mam 38 ludzi, którzy występują w dwóch kategoriach: P i M. Na podstawie mojej analizy każdy mówca ma prawdopodobieństwo sukcesu w kategorii P i prawdopodobieństwo sukcesu w kategorii M . Jestem również przy założeniu, że istnieje jakiś hyperparameter poziomie wspólnotowym P i M: i .θ p × θ m μ p μ mθpθp×θmμpμm

Tak więc dla każdego głośnika: i gdzie i kontrolne jak sięgnęło zenitu dystrybucji wynosi około i .θ mb e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) κ p κ m μ p μ mθpbeta(μp×κp,(1μp)×κp)θmbeta(μm×κm,(1μm)×κm)κpκmμpμm

Również , .μ mb e t a ( A m , B m )μpbeta(Ap,Bp)μmbeta(Am,Bm)

Oto mój model jags:

model{
## y = N bernoulli trials
## Each speaker has a theta value for each category
for(i in 1:length(y)){
    y[i] ~ dbern( theta[ speaker[i],category[i]])
}

## Category P has theta Ptheta
## Category M has theta Ptheta * Mtheta
## No observed data for pure Mtheta
##
## Kp and Km represent how similar speakers are to each other 
## for Ptheta and Mtheta
for(j in 1:max(speaker)){
    theta[j,1] ~ dbeta(Pmu*Kp, (1-Pmu)*Kp)
    catM[j] ~ dbeta(Mmu*Km, (1-Mmu)*Km)
    theta[j,2] <- theta[j,1] * catM[j]
}

## Priors for Pmu and Mmu
Pmu ~ dbeta(Ap,Bp)
Mmu ~ dbeta(Am,Bm)

## Priors for Kp and Km
Kp ~ dgamma(1,1/50)
Km ~ dgamma(1,1/50)

## Hyperpriors for Pmu and Mmu
Ap ~ dgamma(1,1/50)
Bp ~ dgamma(1,1/50)
Am ~ dgamma(1,1/50)
Bm ~ dgamma(1,1/50)
}

Problem polega na tym, że kiedy uruchamiam ten model z 5000 iteracjami do adaptacji, to pobieram 1000 próbek Mmui Kmzbiegam się do pojedynczych wartości. Uruchomiłem go z 4 łańcuchami i każdy łańcuch nie ma tej samej wartości, ale w każdym łańcuchu jest tylko jedna wartość.

Jestem całkiem nowy w dopasowywaniu modeli hierarchicznych przy użyciu metod MCMC, więc zastanawiam się, jak źle to jest. Czy powinienem potraktować to jako znak, że ten model jest beznadziejny, aby pasować, że coś jest nie tak z moimi przełożonymi, czy też jest to na równi z kursem?

Edycja: W przypadku, gdy ma to znaczenie, wartość dla , do jest konwergentny (uśredniona dla łańcuchów) wynosiła 0,91, a 1,78κ mμmκm

JoFrhwld
źródło
Jeśli dobrze cię rozumiem, te parametry „zbiegają się” na jednej stałej wartości w każdym łańcuchu (po kilku iteracjach nie zmienia się wcale), ale ta wartość jest inna dla każdego łańcucha, który uruchamiasz? To brzmi źle, jak może naprawdę kiepski krok Metropolis Hastings. To może być twój model, może to być JAGS, może to być kombinacja obu. Przypuszczalnie ten model nie zajmuje dużo czasu, więc najpierw spróbuję uruchomić (znacznie) dłuższe łańcuchy, szczególnie na okres adaptacji.
JMS
Zaktualizowałem więc model o 5000 kolejnych iteracji, a parametry, o których mowa, nie drgnęły. Nie zdawałem sobie sprawy, że mogą wpaść w lokalne minima w ten sposób.
JoFrhwld
1
szybkie sugestie: 1. Spróbuj użyć dbin, gdzie n = 1. I użyj granic, aby ograniczyć wartość p. Coś w tym stylu: p.bound [i] <- max (0, min (1, p [i]))
Manoel Galdino
1
Kilka pytań wyjaśniających: 1. masz 38 przedmiotów w kategorii P i 38 przedmiotów w kategorii M, takich jak długość (y) = 76? 2. Czy możesz podać dodatkowe informacje na temat uzasadnienia hiperparamterów i eksperymentu? To dla mnie trochę mylące.
Manoel Galdino,
1
Prawdopodobnie po prostu naprawiłbym wszystkie hiperparametry, jak w theta [j, 1] ~ dbeta (1.1, 1.1) lub coś takiego, i sprawdziłbym, jakie wyniki uzyskasz, zanim spróbujesz przejść do hiperpriora. Ponadto, pierwszeństwo theta [j, 2] jest iloczynem dwóch bet, co zasadniczo nie jest samą beta, i w rezultacie oczywiście theta [j, 2] <theta [j, 1]. Wygląda na to, że to zamierzałeś; tylko z ciekawości, dlaczego?
jbowman,

Odpowiedzi:

2

To raczej komentarz, ale ponieważ nie mam wystarczającej reputacji, równie dobrze mogę odpowiedzieć.

Z mojego ograniczonego doświadczenia z samplerami MCMC zaobserwowałem, że parametry mają tendencję do pozostawania na stałym poziomie, gdy hiperparametry są zbyt wąskie. Kontrolując rozkład parametrów, uniemożliwiają wydajne próbkowanie przestrzeni rozwiązania.

Spróbuj wziąć większe wartości dla hiperparametrów i zobacz, co się stanie.

Ten artykuł techniczny bardzo pomógł mi zrozumieć samplery MCMC. Składa się z dwóch samplerów, Gibbs (ten, którego używasz) i Hybrid Monte Carlo, i szybko wyjaśnia, jak wybrać priory, hiperpriory oraz wartości parametrów i hiperparametrów.

Giezi
źródło
0

Może to być problem ze strukturą łańcucha. To, gdzie skończysz, zależy od tego, gdzie zaczynasz. Aby korzystać z MCMC, chcesz, aby łańcuch był cykliczny, co oznacza, że ​​bez względu na to, gdzie zaczynasz, możesz dostać się do każdego innego stanu w przestrzeni stanów. Jeśli łańcuch nie jest powtarzalny, możesz zostać uwięziony w podzbiorze przestrzeni stanów. Ideą MCMC jest posiadanie istniejącego rozkładu stacjonarnego, w którym ostatecznie łańcuch się skończy. Ten rozkład stacjonarny zwykle ma dodatnie prawdopodobieństwo, że znajdzie się w którymkolwiek ze stanów łańcucha i nie zostanie uwięziony w jednym punkcie, jak opisano . Nie mogę sprawdzić twojego algorytmu, ale może masz w nim błąd. Możliwe jest również, że zdefiniowałeś problem polegający na tym, że Twój łańcuch Markowa nie powraca.

Jeśli chcesz zdobyć wiedzę na temat MCMC, polecam zajrzeć do Podręcznika Markov Chain Monte Carlo, który zawiera artykuły opisujące każdy aspekt MCMC. Został opublikowany przez CRC Press w 2011 roku.

Michael R. Chernick
źródło