इस दिलचस्प समस्या को 'प्रजाति-नमूनाकरण' कहा जाता है, जिसने वर्षों से बहुत अधिक ध्यान आकर्षित किया है, और कई अन्य अनुमान समस्याओं (जैसे निशान-पुनरावृत्ति) को शामिल किया है। यह कहने के लिए पर्याप्त है, 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,∞)
n∼P(λ),n>0
बहुराष्ट्रीय संभावनाओं के लिए एक सुविधाजनक पूर्व डिरिचलेट है,
पी= {पी1, … ,पीn} ~ डी ( {α1, … ,αn} )
और सरल रूप से मानने के लिए ।α1=α2= ⋯ =αn=α~
समस्या को और अधिक सुगम बनाने के लिए, हम वजन को कम कर देते हैं:
p ( Y|α~, एन ) =∫पीp ( Y| पी, एन ) पी ( पी|α~, एन ) डीपी
जो इस मामले में अच्छी तरह से अध्ययन किए गए डिरिक्लेट-मल्टीनोमियल वितरण का नेतृत्व करता है । लक्ष्य तब सशर्त का अनुमान लगाने के लिए है,
p ( n | Y |,α~, λ ) =p ( Y| n,α~) पी ( एन | λ )p ( Y|α~, λ )
जहाँ मैं स्पष्ट रूप से मान रहा हूँ और हाइपरपरमेटर्स निश्चित हैं। यह देखना आसान है कि:α~λ
p ( Y|α~, λ ) =Σएन = 1∞p ( Y| n,α~) पी ( एन | λ )
जहाँ जहाँ । इस अनंत श्रृंखला को शीघ्रता से परिवर्तित करना चाहिए (जब तक कि पूँछ पर पूँछ बहुत भारी न हो जाए), और ऐसा लगभग आसान है। कटे हुए पोइसन के लिए, इसका रूप है:p ( Y| n,α~) = 0n < म
p ( Y|α~, λ ) =1(इλ- ( 1 )Σn = एम∞Γ ( एनα~)Πnमैं = १Γ (yमैं+α~)Γ ( एनα~+Σnमैं = १yमैं) Γ (α~)n⋅λnn !
के लिए अग्रणी:
p ( n | Y |,α~, λ ) =Γ ( एनα~)Πnमैं = १Γ (yमैं+α~)Γ ( एनα~+Σnमैं = १yमैं) Γ (α~)n⋅λnn !⋅(Σज = म∞Γ ( जेα~)Πजेमैं = १Γ (yमैं+α~)Γ ( जेα~+Σजेमैं = १yमैं) Γ (α~)जे⋅λजेजे !)- 1
जिसका समर्थन । इस मामले में MCMC की कोई आवश्यकता नहीं है क्योंकि बेयर्स नियम के हर में अनंत श्रृंखला बहुत अधिक प्रयास के बिना अनुमानित की जा सकती है।[ एम , ∞ )
यहाँ आर में एक मैला उदाहरण है:
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, … ,yम,yएम + १, … ,yn} संबंधित संभावनाओं साथ आंशिक रूप से मनाया जाने वाला बहुपद वेक्टर है :
Ω = {ω1, … ,ωम,ωएम + १, … ,ωn}
पी आर (वाई| Ω,n)=Γ (Σnमैं = १yमैं+ 1 )Πnमैं = १Γ (yमैं+ 1 )Πमैं = १nωyमैंमैं
जहां , और लेकिन अन्यथा सूचक इसके विपरीत हैं। पहले की तरह, समस्या श्रेणियों की सही संख्या का अनुमान लगाने के लिए है , और हम पर एक पूर्व के साथ शुरू इस तरह के एक शून्य छोटा कर दिया प्वासों के रूप में:
y∈ एनy1...yम> 0yएम + १...yn= 0nn
P r (n | λ)=λn( ऍक्स्प{ λ } - 1 ) एन !, एन ∈ जेड+
साथ ही पहले की तरह, हम बहुराष्ट्रीय संभावनाओं _ को एक सममित हाइपरपेरेटरी साथ वितरित के रूप में मानते हैं , अर्थात दिए गए ,
Ωα~n
पी आर (Ω |α~, एन ) =Γ ( एनα~)Γ (α~)nΠमैं = १nωα~- 1मैं
संभावनाओं के सदिश पर एकीकरण (हाशिए पर) बहुराष्ट्रीय Dirichlet देता है:
पी आर (वाई|α~, n ) = ∫पी आर (वाई| Ω,n) पी आर (Ω |α~, एन ) =Γ ( एनα~)Γ (Σnमैं = १yमैं+ एनα~) Γ (α~)nΠमैं = १nΓ (yमैं+α~)
यहां हम ऊपर दिए गए भाग I में मॉडल से हटते हैं। भाग में, वहाँ श्रेणियों के लिए एक अंतर्निहित आदेश था: उदाहरण के लिए, एक में पक्षीय मरने, श्रेणियों (पक्षों) एक अंतर्निहित आदेश और किसी भी वर्ग का अवलोकन किया है का तात्पर्य कम श्रेणियों का अस्तित्व । भाग II में, हमारे पास एक आंशिक रूप से मनाया गया बहुराष्ट्रीय यादृच्छिक वेक्टर है जिसका कोई निहित आदेश नहीं है। दूसरे शब्दों में, डेटा प्रेक्षित श्रेणियों में डेटा बिंदुओं के अनियंत्रित विभाजन का प्रतिनिधित्व करता है । मैं अव्यवस्थित विभाजन को निरूपित करता हूँ कि से परिणाम द्वारा संवर्धित , अप्रत्यक्ष श्रेणियों के रूप में ।nमैं ∈ { १ … n }j < iम ≤ nYएन - एमपी[ य]
श्रेणियों की एक वास्तविक संख्या पर अनियंत्रित विभाजन सशर्त की संभावना , श्रेणियों के क्रमपरिवर्तन की संख्या पर विचार करके पाया जा सकता है जिसके परिणामस्वरूप समान विभाजन होते हैं:
n
P r ( P)[ य] |α~, एन ) =n !( एन - एम ) !पी आर (वाई|α~, एन )
और इसे देने के लिए पर एकीकृत किया जा सकता है :
n
P r ( P)[ य] |α~, λ ) =Σज = म∞P r ( P)[ य] |α~, n ) P r ( n | λ )
पश्च को पुनः प्राप्त करने के लिए बेय्स नियम का उपयोग करना:
P r (n | P |[ य] ,α~, λ ) =P r ( P)[ य] | n ,α~) पी आर ( एन | λ )P r ( P)[ य] |α~, λ )
बस उपरोक्त परिभाषाओं से प्लग इन करें। फिर से, भाजक एक अनंत श्रृंखला है जो जल्दी से परिवर्तित हो जाएगा: इस सरल मॉडल में, एमसीएमसी को पर्याप्त सन्निकटन देने की कोई आवश्यकता नहीं है।
भाग I से R कोड को संशोधित करके:
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))