एक मिश्रित वितरण के लिए उलटा सीडीएफ नमूना


9

संक्षिप्त संदर्भ का लघु संस्करण

चलो y सीडीएफ के साथ एक यादृच्छिक चर हो

F(){θ y = 0 θ+(1θ)×CDFlog-normal(;μ,σ) y > 0

मान लीजिए कि मैं ड्रॉ का अनुकरण करना चाहता था yउलटा सीडीएफ विधि का उपयोग करना। क्या यह संभव है? इस फ़ंक्शन का ठीक उलटा नहीं होता है। फिर दो सामान्य वितरणों के मिश्रण वितरण के लिए उलटा परिवर्तन नमूना है, जो बताता है कि यहाँ उलटा परिवर्तन नमूना लागू करने का एक ज्ञात तरीका है।

मैं दो-चरणीय विधि से अवगत हूं, लेकिन मुझे नहीं पता कि इसे मेरी स्थिति पर कैसे लागू किया जाए (नीचे देखें)।


पृष्ठभूमि वाला लंबा संस्करण

मैंने वेक्टर-मूल्यवान प्रतिक्रिया के लिए निम्नलिखित मॉडल फिट किया है, yi=(y1,,yK)i, MCMC का उपयोग कर (विशेष रूप से, स्टेन):

θkilogit1(αkxi),μkiβkxiσk22F(){θ y = 0 θ+(1θ)×CDFlog-normal(;μ,σ) y > 0ukF(yk),zkΦ1(uk)zN(0,R)×kf(yk)(α,β,σ,R)priors

कहाँ पे i अनुक्रमणिका N टिप्पणियों, R एक सहसंबंध मैट्रिक्स है, और x भविष्यवक्ताओं / रजिस्टरों / सुविधाओं का एक सदिश है।

यही है, मेरा मॉडल एक प्रतिगमन मॉडल है जिसमें प्रतिक्रिया के सशर्त वितरण को गॉसियन कोप्युला माना जाता है जिसमें शून्य-फुलाया लॉग-सामान्य मार्जिन होता है। मैंने पहले इस मॉडल के बारे में पोस्ट किया है; यह पता चला है कि गीत, ली और युआन (2009, gated ) ने इसे विकसित किया है और वे इसे वेक्टर GLM, या VGLM कहते हैं। निम्नलिखित उनके विनिर्देश वर्बटीम के करीब हैं क्योंकि मैं इसे प्राप्त कर सकता हूं:

f(y;μ,φ,Γ)=c{G1(y1),,Gm(ym)|Γ}i=1mg(yi;μi,φi)c(u|Γ)=|Γ|1/2exp(12qT(ImΓ1)q)q=(q1,,qm)T,qi=Φ1(ui)
मेरे FK उनके अनुरूप है Gm, मेरे z उनके अनुरूप है q, और मेरा R उनके अनुरूप है Γ; विवरण पृष्ठ 62 (पीडीएफ फाइल के पेज 3) पर हैं, लेकिन वे अन्यथा जो मैंने यहां लिखे हैं, के समान हैं।

शून्य-फुलाया हुआ हिस्सा लगभग लियू और चान के विनिर्देश (2010, ungated ) का अनुसरण करता है ।

अब मैं अनुमानित मापदंडों से डेटा का अनुकरण करना चाहूंगा, लेकिन मैं थोड़ा उलझन में हूं कि इसके बारे में कैसे जाना जाए। पहले मुझे लगा कि मैं बस अनुकरण कर सकता हूंy सीधे (आर कोड में):

for (i in 1:N) {
    for (k in 1:K) {
        Y_hat <- rbinom(1, 1, 1 - theta[i, k])
        if (Y_hat == 1)
            Y_hat <- rlnorm(1, mu[i, k], sigma[k])
    }
}

जो उपयोग नहीं करता है Rबिल्कुल भी। मैं वास्तव में अनुमानित सहसंबंध मैट्रिक्स का उपयोग करने की कोशिश करना चाहता हूं।

मेरा अगला विचार ड्रॉ लेना था z और फिर उन्हें वापस रूपांतरित करें y। यह भी Sklar के कोप्युला प्रमेय में व्यक्त वितरण के लिए R और Bivariate नमूने में कोपुला से नमूने उत्पन्न करने में उत्तर के साथ मेल खाता है? । लेकिन बिल्ली क्या मेरी हैF1यहाँ? दो सामान्य वितरणों के मिश्रण वितरण के लिए उलटा रूपांतरण नमूना यह ध्वनि देता है जैसे यह संभव है, लेकिन मुझे नहीं पता कि यह कैसे करना है।


@ शीआन के बीच निर्भरता का अनुमान लगाने के लिए यह गौसियन कोप्युला है yअवयव।
छायाकार

1
नॉर्मल के मिश्रण से नमूने के बारे में आपके द्वारा संदर्भित धागा आपकी समस्या पर सीधे बिना किसी आवश्यक संशोधन के लागू होता है: नॉर्मल के व्युत्क्रम सीडीएफ का उपयोग करने के बजाय, अपने दो घटकों के उलटा सीडीएफ का उपयोग करें। परमाणु का उलटा CDFy=0 निरंतर कार्य, हमेशा बराबर होता है 0
whuber

@whuber मैं बस के बारे में उलझन में हूँ कैसे मैं क्या आकर्षित करते हैं, क्या मैं से आकर्षित करते हैं, और फिर मैं क्या में प्रत्येक बात प्लग है: दो घटक उलटा CDFS उपयोग करने के लिए?
छायाकार

1
@ शीआन अच्छी तरह से बताते हैं कि सामान्य-मिश्रण प्रश्न के उनके उत्तर में: आप मिश्रण घटक का चयन करने के लिए एक समान संस्करण का उपयोग करते हैं और फिर आप उस घटक से कोई भी मान निकालते हैं (किसी भी तरह से आपको पसंद है)। आपके मामले में पहले घटक से एक मूल्य खींचना असाधारण रूप से आसान है: यह हमेशा होता है0! दूसरे घटक से एक मूल्य आकर्षित करने के लिए किसी भी lognormal यादृच्छिक संख्या जनरेटर का उपयोग करें जो आपको पसंद है। प्रत्येक मामले में आप एक संख्या के साथ हवा देते हैं: कोई "पूरा करने के लिए प्लग इन" नहीं है; यादृच्छिक संख्या पीढ़ी का संपूर्ण उद्देश्य उस संख्या को प्राप्त करना है।
whuber

@ नए उत्तर के लिए मेरे लिए इसे मंजूरी दे दी। तुम दोनों को धन्यवाद।
छायाकार

जवाबों:


5

पृष्ठभूमि के साथ लंबे संस्करण का उत्तर:

लंबे संस्करण का यह जवाब कुछ हद तक किसी अन्य मुद्दे को संबोधित करता है और, क्योंकि हमें लगता है कि मॉडल और समस्या को तैयार करने में कठिनाइयाँ हैं, मैं इसे यहाँ फिर से चुनना चाहता हूं, उम्मीद है कि सही ढंग से।

के लिये 1iIलक्ष्य वैक्टर अनुकरण करना है yi=(y1i,,yKi) इस तरह, एक कोवरिएट पर सशर्त xi,

yki={0 with probability logit1(αkxi)log(σkzki+βkxi) with probability 1logit1(αkxi)
साथ में zi=(z1i,,zKi)NK(0,R)। इसलिए, यदि कोई इस मॉडल के डेटा का अनुकरण करना चाहता है, तो कोई इस प्रकार आगे बढ़ सकता है:

के लिये 1iI,

  1. उत्पन्न zi=(z1i,,zKi)NK(0,R)
  2. उत्पन्न u1i,,uKiiidU(0,1)
  3. निकाले जाते हैं yki=I{uki>logit1(αkxi)}log{σkzki+βkxi} के लिये 1kK

यदि किसी को पीढ़ी के बाद से रुचि है (α,β,μ,σ,R) देखते हुए yki, यह एक कठिन समस्या है, यद्यपि गिब्स नमूना या एबीसी द्वारा संभव है।


1
मुझे पता था कि मुझे कुछ याद आ रहा है। "सब कुछ स्पष्ट है।" मेरा आशय: मैं के मूल्य में दिलचस्पी रखता हूंF(yi|xi), तो हाँ, मैं मापदंडों के संयुक्त पीछे से खींचने में दिलचस्पी रखता हूं। मैं नकली चाहता हूंyयह देखने के लिए कि क्या मॉडल फिट बैठता है।
छायाकार

1
दूसरी समस्या कितनी कठिन है? मैंने पहले ही मॉडल का अनुमान लगा लिया है और मेरे पास पिछले ड्रॉ हैं। हम चैट में जारी रख सकते हैं यदि आप चाहते हैं, तो यहां टिप्पणियों को अव्यवस्थित करने से रहें।
छायाकार

1
ओह, सामान्य तौर पर, हाँ। सौभाग्य से मेरे पास स्टेन और नो-यू-टर्न सैंपलर है, जो मेरे लिए वहां कड़ी मेहनत कर रहा है।
छायाकार

7

आउट-ऑफ-द-संदर्भ लघु संस्करण का उत्तर:

"Inverting" एक cdf जो कि गणितीय अर्थों में (आपके मिश्रित वितरण की तरह) उलटा नहीं है, संभव है, जैसा कि अधिकांश मोंटे कार्लो पाठ्यपुस्तकों में वर्णित है। ( हमारी तरह , लेम्मा 2.4 देखें।) यदि आप सामान्यीकृत व्युत्क्रम को परिभाषित करते हैं

F(u)=inf{xR; F(x)u}
फिर
XF is equivalent to X=F(U) when UU(0,1).
इसका मतलब है कि, जब F(y) की छलांग है θ पर y=0, F(u)=0 के लिये uθ। दूसरे शब्दों में, यदि आप एक समान आकर्षित करते हैंU(0,1) और यह इससे छोटा होता है θ, की अपनी पीढ़ी X है x=0। जब, तबu>θ, आप निरंतर भाग से उत्पन्न करते हैं, अर्थात् आपके मामले में लॉग-सामान्य। इसका मतलब है एक दूसरी समान यादृच्छिक पीढ़ी का उपयोग करना,v, पहली वर्दी ड्रॉ और सेटिंग से स्वतंत्र y=exp(μ+σΦ1(v)) लॉग-सामान्य पीढ़ी प्राप्त करने के लिए।

यह लगभग आपका R कोड है

Y_hat <- rbinom(1, 1, theta[i, k]) if (Y_hat == 1) Y_hat <- rlnorm(1, mu[i, k], sigma[k])

कर रहा है। आप संभावना के साथ एक बर्नौली उत्पन्न करते हैंθki और अगर यह बराबर है 1, आप इसे लॉग-सामान्य में बदल देते हैं। चूंकि यह संभावना के साथ 1 के बराबर हैθkiइसके बजाय आपको इसे लॉग-नॉर्मल सिमुलेशन में बदलना चाहिए जब यह बदले में शून्य के बराबर हो , संशोधित आर कोड के साथ समाप्त हो जाए:

Y_hat <- rbinom(1, 1, theta[i, k])
    if (Y_hat == 0)
        Y_hat <- rlnorm(1, mu[i, k], sigma[k])

तो सभी एक साथ, मेरी सिमुलेशन प्रक्रिया होगी: 1) ड्रा z, 2) गणना uk=Φ(zk), तो 3) गणना yk=0 अगर ukθ तथा yk=Flog-normal1(uk)अन्यथा। सही बात?
छायाकार

नहीं, गलत है। आप बीच में तय करने के लिए पहली वर्दी बनाते हैं0और लॉग-सामान्य, फिर लॉग-सामान्य के लिए तय किए गए मामले में दूसरी वर्दी। मेरे उत्तर का संपादित संस्करण देखें।
शीआन

लेकिन वह नजरअंदाज कर देता है zघटक; इसलिए मेरा सवाल है। मैंने एक स्पष्ट संपादन किया, और मेरे छद्मकोड में गलती को भी संबोधित किया।
छायाकार

मेरा उत्तर लघु संस्करण के लिए है और आपके द्वारा प्रदान किए गए आर कोड के लिए है। मुझे आशा है कि यह लंबे संस्करण के लिए मदद करता है, लेकिन संयुक्त मॉडल के लिए आपका फॉर्मूला अभी भी गलत है। आपको मॉडल को परिभाषित करना चाहिएyवर्दी का उपयोग किए बिना ...
शीआन

वह मॉडल कैसे गलत है? मैंने अपना प्लग लगायाF1,,FK मेरे द्वारा बताए गए पेपर द्वारा दिए गए फॉर्मूले में G1,,Gmउनके अंकन में)। क्या यह अमान्य है?
छायाकार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.