Скільки сторін має штамп? Байєсівські умовиводи в JAGS


9

Проблема

Я хотів би зробити якийсь висновок у системі, аналогічній тому, щоб померти з невідомою кількістю сторін. Штамп прокочується кілька разів, після чого я хотів би зробити розподіл ймовірності за параметром, відповідним кількості сторін, що має штамб, θ.

Інтуїція

Якщо після 40 рулонів ви спостерігали 10 червоних, 10 блюзових, 10 зелених та 10 жовтих, здається, що θ має досягти максимальної позначки в 4, а ухили кочення кожної сторони - це розподіли, орієнтовані на 1/4.

θ має тривіальну нижню межу, що є числом різних сторін, що спостерігаються в даних.

Верхня межа досі невідома. Може бути п'ята сторона, яка, мабуть, мала б ухил. Чим більше даних ви спостерігаєте, що не вистачає п'ятої категорії, тим вище задня ймовірність θ = 4.

Підхід

Я використовував JAGS для подібних проблем (через R і rjags), що тут здається доречним.

Щодо даних, скажімо, obs <- c(10, 10, 10, 10)щоб відповідати спостереженням у наведеному вище прикладі.

Я думаю, що спостереження повинні моделюватися з багаточленним розподілом obs ~ dmulti(p, n), де p ~ ddirch(alpha)і n <- length(obs).

θ пов'язаний із кількістю категорій, на які мається на увазі alpha, тож як я можу моделювати, alphaщоб охопити різні можливі числа категорій?

Альтернативи?

Я досить новачок у байєсівських аналізах, тому, можливо, цілком гавкає неправильне дерево, чи є альтернативні моделі, які можуть дати різні уявлення про цю проблему?

Дуже дякую! Девід

Відповіді:


6

Ця цікава проблема під назвою "вибірка виду", яка приділяла багато уваги протягом багатьох років і охоплює багато інших проблем з оцінкою (наприклад, повторне захоплення знаків). Досить сказати, JAGS не допоможе вам у цьому випадку - JAGS не може обробляти ланцюги Маркова зі змінним розміром через ітерації. Слід скористатися схемою MCMC, розробленою для таких проблем, як, наприклад, оборотний стрибок MCMC.

Ось один підхід, який підходить для конкретної моделі, яку ви описуєте, з якою я вперше зіткнувся в роботі Джеффа Міллера ( архівно ).

Частина I (оригінальне запитання)

Одне з припущень, яке я висловлю, полягає в тому, що спостереження даної категорії передбачає існування категорій меншого рангу. Тобто, спостереження за валкою на боці 9 передбачає наявність сторін 1-8. Це не повинно бути таким - категорії можуть бути довільними - але я припускаю це у своєму прикладі. Це означає, що 0 значень можна спостерігати, на відміну від інших проблем з оцінкою видів.

Скажімо, у нас є мультиноміальний зразок,

Y={y1,y2,,ym,ym+1,,yn}M({p1,p2,,pm,pm+1,,pn})

де - максимальна спостережувана категорія, - (невідомо) кількість категорій, а всі дорівнює 0. Параметр кінцевий, і нам потрібен пріоритет для цього. Будь-який дискретний, власний попередній з підтримкою на буде працювати; візьмемо для прикладу нуль усічений Пуассон:mn{ym+1,,yn}n[1,)

nP(λ),n>0

Зручним пріоритетом для мультиноміальних ймовірностей є Діріхлет,

P={p1,,pn}D({α1,,αn})

А для простого припущення .α1=α2==αn=α~

Щоб зробити проблему більш зрозумілою, ми обмежуємо ваги:

p(Y|α~,n)=Pp(Y|P,n)p(P|α~,n)dP

Що в цьому випадку призводить до добре вивченого Діріхле-мультиномного розподілу. Мета полягає в тому, щоб оцінити умовний задній,

p(n|Y,α~,λ)=p(Y|n,α~)p(n|λ)p(Y|α~,λ)

Де я чітко припускаю, що і є фіксованими гіперпараметрами. Неважко помітити, що:α~λ

p(Y|α~,λ)=n=1p(Y|n,α~)p(n|λ)

Де де . Ця нескінченна серія повинна сходитися досить швидко (доки хвіст на попередньому не надто важкий), і так легко наблизитись. Для усіченого Пуассона він має вигляд:p(Y|n,α~)=0n<m

p(Y|α~,λ)=1(eλ1)n=mΓ(nα~)i=1nΓ(yi+α~)Γ(nα~+i=1nyi)Γ(α~)nλnn!

Призводить до:

p(n|Y,α~,λ)=Γ(nα~)i=1nΓ(yi+α~)Γ(nα~+i=1nyi)Γ(α~)nλnn!(j=mΓ(jα~)i=1jΓ(yi+α~)Γ(jα~+i=1jyi)Γ(α~)jλjj!)1

Яка підтримка на . У цьому випадку MCMC не потрібен, оскільки нескінченний ряд у знаменнику правила Байєса можна наблизити без особливих зусиль.[m,)

Ось неохайний приклад в R:

logPosteriorN <- function(max, Y, lambda, alpha){
    m <- length(Y)
    sumy <- sum(Y)
    pp <- sapply(1:max, function(j){
        prior <- log(lambda)*j - log(exp(lambda)-1) - lgamma(j+1)
        posterior <- lgamma(alpha*j) + sum(lgamma(Y + alpha)) - j*lgamma(alpha) - lgamma(sumy + j*alpha)
        if( j > m ) { posterior <- posterior + (j-m)*lgamma(alpha) } 
        else if( j < m ) { posterior = -Inf }
        prior + posterior
        })
    evidence <- log(sum(exp(pp))) # there's no check that this converges
    pp - evidence
}

## with even representation of sides
Y <- c(10, 10, 10, 10)
post <- logPosteriorN(30, Y, 10, 1.2)
plot(1:30, exp(post), pch=19, type="b")

## with uneven representation of sides
Y <- c(1, 2, 1, 0, 0, 2, 1, 0, 1)
post <- logPosteriorN(30, Y, 10, 1.2)
plot(1:30, exp(post), pch=19, type="b")

Ваша інтуїція правильна: рідкісний вибірки по категоріях призводить до більшої невизначеності щодо загальної кількості категорій. Якщо ви хочете розглянути як невідомий параметр, вам потрібно буде використовувати MCMC та чергувати оновлення та .α~nα~

Звичайно, це один підхід до оцінки. Ви легко знайдете інших (байєсівських та не-байезійських смаків), трохи зайнявшись пошуком.

Частина II (Відповідь на коментар)

Y={y1,,ym,ym+1,,yn} - частково спостережуваний багаточленний вектор з відповідними ймовірностями : Ω={ω1,,ωm,ωm+1,,ωn}

Pr(Y|Ω,n)=Γ(i=1nyi+1)i=1nΓ(yi+1)i=1nωiyi

Де , і але в іншому випадку індекси атрибутивні. Як і раніше, проблема полягає в тому, щоб визначити справжню кількість категорій , і ми почнемо з пріоритету з таких як нульовий усілений Пуассон: yNy1ym>0ym+1yn=0nn

Pr(n|λ)=λn(exp{λ}1)n!, nZ+

Так само, як і раніше, ми розглядаємо мультиноміальні ймовірності як Діріхлет, розподілений симетричним гіперпараметром , тобто для заданого , Ωα~n

Pr(Ω|α~,n)=Γ(nα~)Γ(α~)ni=1nωiα~1

Інтегрування (маргіналізація) над вектором ймовірностей дає багаточлен Діріхле:

Pr(Y|α~,n)=Pr(Y|Ω,n)Pr(Ω|α~,n)=Γ(nα~)Γ(i=1nyi+nα~)Γ(α~)ni=1nΓ(yi+α~)

Ось де ми розходимося з моделлю в частині I вище. У частині I було неявне впорядкування категорій: наприклад, у однобічній штампі категорії (сторони) мають неявне впорядкування, а спостереження будь-якої категорії означає існування менших категорій . У ІІ частині ми маємо частково спостережуваний багаточленний випадковий вектор, який не має явного впорядкування. Іншими словами, дані являють собою не упорядкований розділ точок даних на спостережуваних категорій. Я позначаю не упорядкований розділ, який є результатом доповненого незабезпеченими категоріями, як .ni{1n}j<imnYnmP[Y]

Ймовірність не упорядкованого розділу, обумовленого справжньою кількістю категорій , можна визначити, враховуючи кількість перестановок категорій, які призводять до одного і того ж розділу: n

Pr(P[Y]|α~,n)=n!(nm)!Pr(Y|α~,n)

І це можна інтегрувати через щоб дати: n

Pr(P[Y]|α~,λ)=j=mPr(P[Y]|α~,n)Pr(n|λ)

Використовуючи правило Байєса для отримання posterior:

Pr(n|P[Y],α~,λ)=Pr(P[Y]|n,α~)Pr(n|λ)Pr(P[Y]|α~,λ)

Просто підключіться до наведених вище визначень. Знову ж, знаменник - це нескінченний ряд, який швидко сходиться: у цій простій моделі MCMC не потребує адекватного наближення.

Змінюючи код R з частини I:

logPosteriorN_2 <- function(max, Y, lambda, alpha){
    m <- length(Y)
    sumy <- sum(Y)
    pp <- sapply(1:max, function(j){
        prior <- log(lambda)*j - log(exp(lambda)-1) - lgamma(j+1)
        likelihood <- lchoose(j, m) + lgamma(m + 1) + lgamma(alpha*j) + sum(lgamma(Y + alpha)) - j*lgamma(alpha) - lgamma(sumy + j*alpha)
        if( j > m ) { likelihood <- likelihood + (j-m)*lgamma(alpha) } 
        else if( j < m ) { likelihood = -Inf }
        prior + likelihood
        })
    evidence <- log(sum(exp(pp))) # there's no check that this converges
    pp - evidence
}

Y_1 <- rep(10, 15)
pos_1 <- logPosteriorN_2(50, Y_1, 6, 1)
plot(1:50, exp(pos_1))

Велике спасибі за вашу дуже повну відповідь. (Вибачте за мою дуже повільну відповідь). Я повернувся до такого типу питань і все ще працюю над математикою. У моїй системі категорії не є порядковими, тому припущення, що спостереження даної категорії передбачає існування категорій меншого рангу, є недійсним.
davipatti

@davipatti Відповів у другій частині.
Нейт-папа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.