2 डी हिस्टोग्राम के लिए फिट की अच्छाई


19

मेरे पास सितारों के मापदंडों का प्रतिनिधित्व करने वाले डेटा के दो सेट हैं: एक मनाया हुआ और एक मॉडल वाला। इन सेटों के साथ मैं वह बनाता हूं जिसे टू-कलर-डायग्राम (TCD) कहा जाता है। एक नमूना यहाँ देखा जा सकता है:

histogramas

एक मनाया गया डेटा और बी मॉडल से निकाले गए डेटा (काली रेखाओं पर कभी भी ध्यान न रखें, डॉट्स डेटा का प्रतिनिधित्व करते हैं) मेरे पास केवल एक आरेख है, लेकिन मैं जितना चाहता हूं, उतने अलग-अलग बी आरेख तैयार कर सकते हैं और मुझे क्या चाहिए वह रखने के लिए जो सबसे अच्छा फिट बैठता है

तो क्या मैं जरूरत आरेख के फिट की अच्छाई की जांच करने के लिए एक विश्वसनीय तरीका है बी आरेख के लिए (मॉडल) (मनाया गया)।

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

; जहां एक मैं j चित्र में सितारों की संख्या हैएकहै कि विशेष सेल के लिए (द्वारा निर्धारित मैं j ) औरमैं जे के लिए संख्या हैबीजी=Σमैंजे|मैंजे-मैंजे|मैंजेमैंजेमैंजे

यह वही है उन है में की तरह प्रत्येक कोशिका नज़र में गणनाओं में भिन्नताएँ ग्रिड मैं (ध्यान दें कि मैं के निरपेक्ष मानों का उपयोग नहीं कर रहा हूँ बनाने के ( एक मैं j - मैं जे ) इस छवि में लेकिन मैं कर जब की गणना उन्हें इस्तेमाल ग्राम पैरामीटर):(मैंजे-मैंजे)(मैंजे-मैंजे)जी

हेस

समस्या यह है कि मुझे सलाह दी गई है कि यह एक अच्छा अनुमानक नहीं हो सकता है, मुख्य रूप से यह कहने के अलावा कि यह फिट इस अन्य की तुलना में बेहतर है क्योंकि पैरामीटर कम है , मैं वास्तव में अधिक कुछ नहीं कह सकता।


महत्वपूर्ण :

(साभार @PeterEllis इसे लाने के लिए)

1- बी में अंक में अंक के साथ एक-से-एक से संबंधित नहीं हैं । यही कारण है कि जब सबसे उपयुक्त के लिए खोज को ध्यान में रखने के लिए एक महत्वपूर्ण बात है: में अंकों की संख्या एक और बी है नहीं जरूरी एक ही और फिट की अच्छाई परीक्षण भी इस विसंगति के लिए खाते और उसे कम से कम करने के लिए प्रयास करना चाहिए।

2- प्रत्येक बी डेटा सेट (मॉडल आउटपुट) में अंकों की संख्या जो मैं से फिट करने की कोशिश करता हूं , वह तय नहीं है।


मैंने कुछ मामलों में ची-स्क्वार्ड परीक्षण का उपयोग किया है:

Σमैं(हेमैं-मैं)2/मैंहेमैंमैं

मैंमैं

इसके अलावा, मैंने पढ़ा है कि कुछ लोग इस तरह के मामलों में जहां हिस्टोग्राम शामिल होते हैं, वहां लॉग इन होने की संभावना की जांच करते हैं। यदि यह सही है, तो मैं वास्तव में इसकी सराहना करूंगा यदि कोई मुझे इस विशेष मामले में उस परीक्षण का उपयोग करने का निर्देश दे सकता है (याद रखें, आंकड़ों का मेरा ज्ञान बहुत खराब है, इसलिए कृपया इसे जितना संभव हो उतना सरल रखें :)


क्या B के बिंदुओं का A (जैसे प्रत्येक एक विशेष तारा है) के अंकों के साथ एक-से-एक संबंध है या यह उससे अधिक सार है?
पीटर एलिस

हाय @PeterEllis, B में कोई भी अंक A में अंक के साथ एक-से-संबंधित नहीं हैं । वास्तव में जब सबसे उपयुक्त के लिए खोज को ध्यान में रखने के लिए एक और महत्वपूर्ण बात यह है कि: में अंकों की संख्या एक और बी हैं नहीं जरूरी बराबर।
गेब्रियल

हाय - दिलचस्प सवाल, मैं एक उचित जवाब लिखने की कोशिश करूँगा। क्या बी के प्रत्येक संस्करण में समान अंक हैं, या क्या वे भी भिन्न हैं?
पीटर एलिस

वे भी भिन्न होते हैं, केवल A में अंकों की संख्या स्थिर रहती है। आपको कोई अंदाजा नहीं है कि अगर आप मेरी मदद करेंगे, तो अगर आप मेरी मदद करेंगे तो यह पता लगाएं @PeterEllis।
गेब्रियल

यह प्रश्न इस विषय पर एक मजबूत समानता रखता है: आंकड़े.stackexchange.com/questions/71036/… जहाँ मैंने एक उत्तर दिया है।
एल फिशमैन

जवाबों:


14

ठीक है, मैंने इस उत्तर को बड़े पैमाने पर संशोधित किया है। मुझे लगता है कि आपके डेटा को कम करने और प्रत्येक बिन में गिनती की तुलना करने के बजाय, मैं एक 2d कर्नेल घनत्व अनुमान को फिट करने के अपने मूल उत्तर में दफन कर दूंगा और उनकी तुलना करना बेहतर विचार है। इससे भी बेहतर, आर के लिए टार्न डुओंग के के पैकेज में एक फ़ंक्शन kde.test () है जो पाई के रूप में यह आसान करता है।

अधिक जानकारी के लिए kde.test के लिए दस्तावेज़ीकरण की जाँच करें और तर्क आप ट्विक कर सकते हैं। लेकिन मूल रूप से यह वही करता है जो आप चाहते हैं। यह जो पी रिटर्न देता है, वह डेटा के दो सेटों को उत्पन्न करने की संभावना है जिसकी आप अशक्त परिकल्पना के तहत तुलना कर रहे हैं कि वे एक ही वितरण से उत्पन्न हो रहे थे। तो पी-मूल्य जितना अधिक होगा, ए और बी के बीच बेहतर फिट मेरा उदाहरण नीचे देखें जहां यह आसानी से उठाता है कि बी 1 और ए अलग-अलग हैं, लेकिन यह बी 2 और ए समान रूप से समान हैं (जो कि वे कैसे उत्पन्न हुए थे) ।

# generate some data that at least looks a bit similar
generate <- function(n, displ=1, perturb=1){
    BV <- rnorm(n, 1*displ, 0.4*perturb)
    UB <- -2*displ + BV + exp(rnorm(n,0,.3*perturb))
    data.frame(BV, UB)
}
set.seed(100)
A <- generate(300)
B1 <- generate(500, 0.9, 1.2)
B2 <- generate(100, 1, 1)
AandB <- rbind(A,B1, B2)
AandB$type <- rep(c("A", "B1", "B2"), c(300,500,100))

# plot
p <- ggplot(AandB, aes(x=BV, y=UB)) + facet_grid(~type) + 
    geom_smooth() +     scale_y_reverse() + theme_grey(9)
win.graph(7,3)
p +geom_point(size=.7)

यहाँ छवि विवरण दर्ज करें

> library(ks)
> kde.test(x1=as.matrix(A), x2=as.matrix(B1))$pvalue
[1] 2.213532e-05
> kde.test(x1=as.matrix(A), x2=as.matrix(B2))$pvalue
[1] 0.5769637

मेरे मूल सलाहकार, केवल इस बात का ध्यान रखते हैं कि अब उन लोगों से जो इस संबंध में हैं, उनके संबंध नहीं हैं

सबसे पहले, इस बारे में जाने के अन्य तरीके हो सकते हैं।

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

वैकल्पिक रूप से, फिटिंग करके ऐसा करने का एक तरीका हो सकता है मूल डेटा और मॉडल किए गए डेटा के प्रत्येक सेट पर कोपुला को , और फिर उन मॉडलों की तुलना करना। आर और अन्य स्थानों में इस दृष्टिकोण के कार्यान्वयन हैं, लेकिन मैं विशेष रूप से उनसे परिचित नहीं हूं इसलिए कोशिश नहीं की है।

लेकिन अपने प्रश्न को सीधे संबोधित करने के लिए, आपके द्वारा लिया गया दृष्टिकोण एक उचित है। कई बिंदु खुद बताते हैं:

  • जब तक आपका डेटा सेट इससे बड़ा नहीं दिखता है, मुझे लगता है कि 100 x 100 ग्रिड बहुत अधिक डिब्बे है। सहज रूप से, मैं कल्पना कर सकता हूं कि डेटा के विभिन्न सेटों को समाप्त करने की तुलना में आप अधिक भिन्न हैं, क्योंकि आपके डिब्बे की सटीकता का मतलब है कि आपके पास बहुत सारे डब्बे हैं जिनमें कम संख्या में अंक होते हैं, भले ही डेटा घनत्व अधिक हो। हालाँकि यह अंत में निर्णय का विषय है। मैं निश्चित रूप से आपके परिणामों को अलग-अलग तरीकों से देखूंगा।

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

संपादित करें - इस उत्तर के बाकी हिस्सों को अब मैं एक उपयुक्त दृष्टिकोण मानता हूं।

nजी×2

nजी×2nजी

मैंने आपकी तरह थोड़ा सा दिखने के लिए कुछ डेटा का अनुकरण किया और पाया कि यह दृष्टिकोण यह पहचानने में काफी प्रभावी था कि मेरे "बी" डेटा में से कौन सा "ए" प्रक्रिया से उत्पन्न हुआ था और जो थोड़ा अलग था। निश्चित रूप से नग्न आंखों की तुलना में अधिक प्रभावी है।

  • nजी×2एक समस्या यदि आप मूल अंतर या चुकता अंतर के योग का उपयोग करते हैं, जैसा कि आप मूल रूप से प्रस्तावित करते हैं)। हालाँकि, यह मायने रखता है कि आपके प्रत्येक संस्करण में B के अलग-अलग अंक हैं। मूल रूप से, बड़े बी डेटा सेट में कम पी-मान वापस करने की प्रवृत्ति होगी। मैं इस समस्या के कई संभावित समाधानों के बारे में सोच सकता हूं। 1. आप अपने सभी बी डेटा को उसी आकार (आपके बी सेट्स के सबसे छोटे आकार) को कम कर सकते हैं, उस आकार के सभी बी सेटों से उस आकार का एक यादृच्छिक नमूना लेकर। 2. आप पहले अपने प्रत्येक बी सेट में दो आयामी कर्नेल घनत्व अनुमान लगा सकते हैं, और फिर उस अनुमान से डेटा का अनुकरण कर सकते हैं जो समान आकार है। 3. आप पी-वैल्यू के संबंधों को आकार देने और "सही" करने के लिए उपयोग करने के लिए किसी प्रकार के सिमुलेशन का उपयोग कर सकते हैं। पी-मान आपको उपरोक्त प्रक्रिया से मिलता है इसलिए वे तुलनीय हैं। संभवतः अन्य विकल्प भी हैं। जो आप करते हैं वह इस बात पर निर्भर करेगा कि बी डेटा कैसे उत्पन्न हुआ, आकार कितने भिन्न हैं, आदि।

उम्मीद है की वो मदद करदे।


मैंने कुछ छोटे टाइपो सुधार किए; मुझे आशा है कि आपको कोई आपत्ति नहीं है। मुख्य विचारों को थोड़ा और प्रमुखता से खींचने के लिए चीजों को प्रारूपित करने का एक तरीका हो सकता है, विशेषकर अंतिम बुलेट बिंदु में। लेकिन, मैं या तो अति उत्साही नहीं होना चाहता था। चीयर्स। :)
कार्डिनल

समस्या नहीं। मैं अपने अंतिम बुलेट बिंदु का प्रारूपण करने के लिए एक अच्छे तरीके से संघर्ष कर रहा था - जो मैं चाहता था वह एक बुलेट बिंदु के तहत गिने सूची का एक पदानुक्रम था। लेकिन मैं ऐसा नहीं कर पाया।
पीटर एलिस

हाँ, मैंने उससे बहुत संक्षेप में बात की, क्योंकि वह ऐसा लगता था जैसा आप चाहते थे। मैं जल्दी से यह पता नहीं लगा सका कि यह कैसे करना है और लेआउट में थोक परिवर्तन करने में बहुत संकोच था, इसलिए मुझे लगा कि मैं इसके बजाय टिप्पणी करूंगा। :)
कार्डिनल

1
मैं Wilcox की पुस्तक को एक सामान्य आँकड़े पाठ के रूप में सुझाता हूँ जो R का उपयोग करता है (मेरे उत्तर आँकड़े देखें ।stackexchange.com/questions/25632/… )। हालांकि वह फिशर के सटीक पाठ को कवर नहीं करता है, लेकिन वेब पर विशिष्ट पाठ पर पर्याप्त विवरण है जो अधिक समझ में आएगा यदि आपको उस पुस्तक में पृष्ठभूमि इसी तरह के परीक्षणों पर मिली है। फिट समस्या की इस विशिष्ट प्रकार की अच्छाई पर वहाँ एक बेहतर पाठ हो सकता है, लेकिन मुझे लगता है कि विलकॉक्स की किताब एक सामान्य परिचय के रूप में महान है जो आपको उच्च स्तर तक ले जाती है।
पीटर एलिस

1
वाह। आपने इस बात का जवाब दिया। यदि "स्टैटेक्सचेंज का सर्वश्रेष्ठ" होता, तो यह इसमें होता।
कॉलिन के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.