दो नमूनों के लिए कुलबबैक-लीब्लर डाइवर्जेंस


10

मैंने दो नमूनों के लिए कुल्बैक-लीब्लर डाइवर्जेंस के संख्यात्मक अनुमान को लागू करने की कोशिश की। कार्यान्वयन को डीबग करने के लिए दो सामान्य वितरण और से नमूने खींचें ।एन ( 1 , 2 )N(0,1)N(1,2)

एक साधारण अनुमान के लिए मैंने दो हिस्टोग्राम तैयार किए और अभिन्न रूप से अनुमानित करने की कोशिश की। मैं हिस्टोग्राम के उन हिस्सों को संभालने के साथ अटक गया, जहां हिस्टोग्राम में से एक के डिब्बे शून्य हैं जैसे कि मैं या तो शून्य से विभाजित करता हूं या शून्य का लघुगणक। मैं इस मुद्दे को कैसे संभालूं?

मेरे मन में एक संबंधित प्रश्न आया: केएल-डाइवर्जेंस की गणना दो अलग-अलग समान वितरणों के बीच कैसे करें? क्या मुझे दोनों वितरणों के समर्थन के अभिन्न अंग को प्रतिबंधित करना होगा?


खैर, सामान्य वितरण का समर्थन वास्तविक संख्याओं का समूह है। शुद्ध गणित में कोई समस्या नहीं है, लेकिन हां, आपके संख्यात्मक अनुमान के लिए, आपको यह सुनिश्चित करने की आवश्यकता है कि जिस क्षेत्र को आप एकीकृत करना चाहते हैं, उसके सापेक्ष आपका नमूना आकार काफी बड़ा है। आप शुद्ध गणित में आप की तरह (-inf, + inf) को एकीकृत नहीं कर पाएंगे ... कुछ उचित के लिए जाएं? यदि आप माध्य से 3 मानक विचलन से अधिक हैं, तो यह बहुत पतला होने जा रहा है ...
मैथ्यू गुन

1
आपके दूसरे प्रश्न के संबंध में, दो अलग-अलग समान वितरणों के बीच केएल-विचलन अपरिभाषित है ( अपरिभाषित है)। इसी तरह, दो अनुभवजन्य वितरणों के लिए केएल-विचलन अपरिभाषित है जब तक कि प्रत्येक नमूने में कम से कम एक अवलोकन न हो, जो कि दूसरे नमूने में प्रत्येक अवलोकन के समान मूल्य हो। log(0)
बृहस्पतिवार

@ जुम्मन छोटा नोट हालांकि आप सही हैं कि अपरिभाषित है (या ), यह सूचना सिद्धांत में प्रथागत है को । - लॉग ( 0 ) 0 0log(0)log(0)00
लुका सिटी

इसी तरह का सवाल: mathoverflow.net/questions/119752/…
kjetil b halvorsen

जवाबों:


9

Kullback-Leibler विचलन को रूप में परिभाषित किया गया है। तो यह अनुमान लगाने के लिए (अनुमान) कि अनुभवजन्य डेटा से हमें इसकी आवश्यकता होगी, शायद, घनत्व कार्यों कुछ अनुमान । तो एक प्राकृतिक शुरुआती बिंदु घनत्व के अनुमान के माध्यम से हो सकता है (और उसके बाद, बस संख्यात्मक एकीकरण)। इस तरह की विधि कितनी अच्छी या स्थिर होगी, मुझे नहीं पता।पी ( एक्स ) , क्यू ( एक्स )

KL(P||Q)=p(x)logp(x)q(x)dx
p(x),q(x)

लेकिन पहले आपका दूसरा प्रश्न, फिर मैं पहले वाले पर लौटूंगा। कहते हैं कि और क्रमशः और पर समान घनत्व वाले हैं। तब जबकि को परिभाषित करना अधिक कठिन है, लेकिन इसे देने के लिए केवल उचित मूल्य , जहां तक ​​मैं देख सकता हूं, क्योंकि इसमें शामिल है एकीकृत करने के लिए जिसे हम रूप में व्याख्या करना चुन सकते हैं । यह परिणाम कुल्बैक-लीब्लर (केएल) डाइवर्जेंस पर अंतर्ज्ञान में मुझे दी गई व्याख्या से उचित हैंpq[0,1][0,10]KL(p||q)=log10KL(q||p)log(1/0)log

मुख्य सवाल पर लौटते हुए। यह बहुत ही गैरपारंपरिक तरीके से पूछा जाता है, और घनत्व पर कोई धारणा नहीं बताई जाती है। संभवतः कुछ मान्यताओं की आवश्यकता है। लेकिन यह मानते हुए कि दोनों घनत्वों को एक ही घटना के लिए प्रतिस्पर्धी मॉडल के रूप में प्रस्तावित किया गया है, हम शायद मान सकते हैं कि उनके पास एक ही हावी उपाय हो सकता है: एक निरंतर और असतत संभावना वितरण के बीच केएल विचलन हमेशा अनंत होगा। इस प्रश्न को संबोधित करने वाला एक पेपर निम्नलिखित है: https://pdfs.semanticscholar.org/1fbd/31b690e078ce938f73f14462fceadc2748bf.pdf वे एक विधि प्रस्तावित करते हैं जिसे प्रारंभिक घनत्व अनुमान की आवश्यकता नहीं है, और इसके गुणों का विश्लेषण करता है।

(कई अन्य कागजात हैं)। मैं वापस आऊंगा और उस पेपर, विचारों से कुछ विवरण पोस्ट करूंगा।

 EDIT               

उस कागज से कुछ विचार, जो बिल्कुल निरंतर वितरण से आईआईडी नमूनों के साथ केएल विचलन के आकलन के बारे में है। मैं एक आयामी वितरण के लिए उनके प्रस्ताव को दिखाता हूं, लेकिन वे वैक्टर के लिए एक समाधान भी देते हैं (निकटतम पड़ोसी घनत्व का उपयोग करके)। सबूतों के लिए पेपर पढ़ें!

वे अनुभवजन्य वितरण समारोह के एक संस्करण का उपयोग करने का प्रस्ताव करते हैं, लेकिन एक निरंतर संस्करण प्राप्त करने के लिए नमूना बिंदुओं के बीच रैखिक रूप से प्रक्षेपित होते हैं। वे परिभाषित करते हैं जहां , Heavyside स्टेप फंक्शन है, लेकिन इसे परिभाषित किया गया है । फिर उस फ़ंक्शन को रैखिक रूप से प्रक्षेपित किया जाता है (और सीमा से परे क्षैतिज रूप से बढ़ाया जाता है) ( निरंतर के लिए ) है। तब उन्होंने कुल्बैक-लीब्लर विचलन का अनुमान लगाने का प्रस्ताव _ _ जहां और

Pe(x)=1ni=1nU(xxi)
UU(0)=0.5Pcc
D^(PQ)=1ni=1nlog(δPc(xi)δQc(xi))
εδPc=Pc(xi)Pc(xiϵ)ϵ नमूनों की सबसे छोटी रिक्ति की तुलना में एक छोटी संख्या है।

अनुभवजन्य वितरण फ़ंक्शन के संस्करण के लिए आर कोड जो हमें चाहिए

my.ecdf  <-  function(x)   {
    x   <-   sort(x)
    x.u <-   unique(x)
    n  <-  length(x) 
    x.rle  <-  rle(x)$lengths
    y  <-  (cumsum(x.rle)-0.5) / n
    FUN  <-  approxfun(x.u, y, method="linear", yleft=0, yright=1,
                           rule=2)
    FUN
}          

ध्यान दें कि rleडुप्लिकेट के साथ मामले की देखभाल करने के लिए उपयोग किया जाता है x

फिर केएल विचलन का अनुमान किसके द्वारा दिया जाता है

KL_est  <-  function(x, y)   {
    dx  <-  diff(sort(unique(x)))
    dy  <-  diff(sort(unique(y)))
    ex  <-  min(dx) ; ey  <-  min(dy)
    e   <-  min(ex, ey)/2
    n   <-  length(x)    
    P  <-   my.ecdf(x) ; Q  <-  my.ecdf(y)
    KL  <-  sum( log( (P(x)-P(x-e))/(Q(x)-Q(x-e)))) / n
    KL              
}

फिर मैंने एक छोटा सिमुलेशन दिखाया:

KL  <-  replicate(1000, {x  <-  rnorm(100)
                         y <- rt(100, df=5)
                         KL_est(x, y)})
hist(KL, prob=TRUE)

जो निम्नलिखित हिस्टोग्राम देता है, जो इस अनुमानक के नमूने वितरण का एक अनुमान (अनुमान) दिखाता है:

केएल अनुमानक का नमूना वितरण

तुलना के लिए, हम संख्यात्मक एकीकरण द्वारा इस उदाहरण में केएल विचलन की गणना करते हैं:

LR  <-  function(x) dnorm(x,log=TRUE)-dt(x,5,log=TRUE)
100*integrate(function(x) dnorm(x)*LR(x),lower=-Inf,upper=Inf)$value
[1] 3.337668

हम्म ... अंतर काफी बड़ा है कि यहां बहुत कुछ जांच करने के लिए है!


5

Kjetil-b-halvorsen के उत्तर पर थोड़ा विस्तार करना , और टिप्पणी न करने के लिए खेद है, मेरे पास प्रतिष्ठा नहीं है:

  1. मुझे लगता है कि विश्लेषणात्मक गणना होनी चाहिए (100 से गुणा के बिना):

LR <- function(x) dnorm(x,log=TRUE)-dt(x,5,log=TRUE) integrate(function(x) dnorm(x)*LR(x),lower=-Inf,upper=Inf)$value

  1. यदि मैं सही हूं, तो अनुमानक केएल विचलन के लिए अभिसरण नहीं करता है, लेकिन अभिसरण के रूप में कहा गया है: । तीर अभिसरण के रूप में दर्शाता है। डी (पी||क्यू)-1डी(पी||क्यू)D^(P||Q)D^(P||Q)1D(P||Q)

एक बार जो दो सुधार किए जाते हैं, परिणाम अधिक यथार्थवादी लगते हैं।


धन्यवाद, मैं इस पर गौर करूंगा और अपना जवाब अपडेट करूंगा।
kjetil b halvorsen
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.