अनुमान लगाने के लिए हिस्टोग्राम का उपयोग करने में कठिनाई
जबकि हिस्टोग्राम अक्सर उपयोगी होते हैं और कभी-कभी उपयोगी होते हैं, वे भ्रामक हो सकते हैं। बिन सीमाओं के स्थानों में परिवर्तन के साथ उनकी उपस्थिति काफी बदल सकती है।
इस समस्या को लंबे समय से जाना जाता है *, हालांकि शायद उतना व्यापक रूप से नहीं होना चाहिए जितना कि - आपको शायद ही कभी प्राथमिक-स्तरीय चर्चाओं में इसका उल्लेख मिलता है (हालांकि अपवाद हैं)।
* उदाहरण के लिए, पॉल रुबिन [1] ने इसे इस तरह रखा: " यह सर्वविदित है कि हिस्टोग्राम में अंतिम बिंदुओं को बदलने से इसकी उपस्थिति में काफी बदलाव आ सकता है "। ।
मुझे लगता है कि यह एक मुद्दा है जिसे हिस्टोग्राम्स पेश करते समय अधिक व्यापक रूप से चर्चा की जानी चाहिए। मैं कुछ उदाहरण और चर्चा दूंगा।
आपको डेटा सेट के एकल हिस्टोग्राम पर निर्भर होने से सावधान रहना चाहिए
इन चार हिस्टोग्राम पर एक नज़र डालें:
यह चार बहुत अलग दिखने वाला हिस्टोग्राम है।
यदि आप निम्नलिखित डेटा पेस्ट करते हैं (मैं यहां R का उपयोग कर रहा हूं):
Annie <- c(3.15,5.46,3.28,4.2,1.98,2.28,3.12,4.1,3.42,3.91,2.06,5.53,
5.19,2.39,1.88,3.43,5.51,2.54,3.64,4.33,4.85,5.56,1.89,4.84,5.74,3.22,
5.52,1.84,4.31,2.01,4.01,5.31,2.56,5.11,2.58,4.43,4.96,1.9,5.6,1.92)
Brian <- c(2.9, 5.21, 3.03, 3.95, 1.73, 2.03, 2.87, 3.85, 3.17, 3.66,
1.81, 5.28, 4.94, 2.14, 1.63, 3.18, 5.26, 2.29, 3.39, 4.08, 4.6,
5.31, 1.64, 4.59, 5.49, 2.97, 5.27, 1.59, 4.06, 1.76, 3.76, 5.06,
2.31, 4.86, 2.33, 4.18, 4.71, 1.65, 5.35, 1.67)
Chris <- c(2.65, 4.96, 2.78, 3.7, 1.48, 1.78, 2.62, 3.6, 2.92, 3.41, 1.56,
5.03, 4.69, 1.89, 1.38, 2.93, 5.01, 2.04, 3.14, 3.83, 4.35, 5.06,
1.39, 4.34, 5.24, 2.72, 5.02, 1.34, 3.81, 1.51, 3.51, 4.81, 2.06,
4.61, 2.08, 3.93, 4.46, 1.4, 5.1, 1.42)
Zoe <- c(2.4, 4.71, 2.53, 3.45, 1.23, 1.53, 2.37, 3.35, 2.67, 3.16,
1.31, 4.78, 4.44, 1.64, 1.13, 2.68, 4.76, 1.79, 2.89, 3.58, 4.1,
4.81, 1.14, 4.09, 4.99, 2.47, 4.77, 1.09, 3.56, 1.26, 3.26, 4.56,
1.81, 4.36, 1.83, 3.68, 4.21, 1.15, 4.85, 1.17)
तब आप उन्हें स्वयं उत्पन्न कर सकते हैं:
opar<-par()
par(mfrow=c(2,2))
hist(Annie,breaks=1:6,main="Annie",xlab="V1",col="lightblue")
hist(Brian,breaks=1:6,main="Brian",xlab="V2",col="lightblue")
hist(Chris,breaks=1:6,main="Chris",xlab="V3",col="lightblue")
hist(Zoe,breaks=1:6,main="Zoe",xlab="V4",col="lightblue")
par(opar)
अब इस स्ट्रिप चार्ट को देखें:
x<-c(Annie,Brian,Chris,Zoe)
g<-rep(c('A','B','C','Z'),each=40)
stripchart(x~g,pch='|')
abline(v=(5:23)/4,col=8,lty=3)
abline(v=(2:5),col=6,lty=3)
(यदि यह अभी भी स्पष्ट नहीं है, देखो क्या होता है जब आप प्रत्येक सेट से एनी के डेटा घटाना: head(matrix(x-Annie,nrow=40))
)
डेटा को केवल 0.25 तक हर बार छोड़ दिया गया है।
फिर भी हिस्टोग्राम से हमें जो इंप्रेशन मिलते हैं - राइट स्क्यू, यूनिफॉर्म, लेफ्ट स्क्यू और बिमोडल - बिलकुल अलग थे। हमारी छाप पूरी तरह से न्यूनतम के सापेक्ष पहले बिन-मूल के स्थान द्वारा शासित थी।
इसलिए न केवल 'एक्सपोनेंशियल' बनाम 'नॉट-वास्तव में एक्सपोनेंशियल' बल्कि 'राइट स्क्यू' बनाम 'लेफ्ट स्क्यू' या 'बिमॉडल' बनाम 'यूनिफॉर्म' को सिर्फ वहीं घुमाएं जहां आपके डिब्बे शुरू होते हैं।
संपादित करें: यदि आप द्विपद को बदलते हैं, तो आप इस तरह से सामान प्राप्त कर सकते हैं:
यह दोनों मामलों में समान 34 अवलोकन हैं, बस अलग-अलग ब्रेकप्वाइंट, एक के साथ और दूसरे के साथ एक बैंडविड्थ ।0.810.8
x <- c(1.03, 1.24, 1.47, 1.52, 1.92, 1.93, 1.94, 1.95, 1.96, 1.97, 1.98,
1.99, 2.72, 2.75, 2.78, 2.81, 2.84, 2.87, 2.9, 2.93, 2.96, 2.99, 3.6,
3.64, 3.66, 3.72, 3.77, 3.88, 3.91, 4.14, 4.54, 4.77, 4.81, 5.62)
hist(x,breaks=seq(0.3,6.7,by=0.8),xlim=c(0,6.7),col="green3",freq=FALSE)
hist(x,breaks=0:8,col="aquamarine",freq=FALSE)
निफ्टी, एह?
हां, ऐसा करने के लिए उन आंकड़ों को जानबूझकर उत्पन्न किया गया था ... लेकिन सबक स्पष्ट है - जो आपको लगता है कि आप हिस्टोग्राम में देखते हैं, वह डेटा का विशेष रूप से सटीक प्रभाव नहीं हो सकता है।
हम क्या कर सकते है?
हिस्टोग्राम व्यापक रूप से उपयोग किया जाता है, अक्सर प्राप्त करने के लिए सुविधाजनक होता है और कभी-कभी अपेक्षित होता है। ऐसी समस्याओं से बचने या कम करने के लिए हम क्या कर सकते हैं?
जैसा कि निक कॉक्स एक संबंधित प्रश्न के लिए एक टिप्पणी में बताते हैं : अंगूठे का नियम हमेशा यह होना चाहिए कि बिन चौड़ाई में भिन्नता और बिन मूल के विवरण मजबूत होने की संभावना है; ऐसे विवरण नाजुक या तुच्छ होने की संभावना है ।
कम से कम, आपको हमेशा कई अलग-अलग बिनवीड या बिन-ओरिजिन्स, या अधिमानतः दोनों पर हिस्टोग्राम करना चाहिए।
वैकल्पिक रूप से, एक कर्नेल घनत्व की जांच करें कि बैंडविड्थ बहुत अधिक नहीं है।
एक अन्य दृष्टिकोण है कि कम कर देता है हिस्टोग्राम के मनमानेपन है औसतन हिस्टोग्राम स्थानांतरित कर दिया ,
(यह डेटा के उस हालिया सेट पर एक है) लेकिन अगर आप उस प्रयास में जाते हैं, तो मुझे लगता है कि आप कर्नेल घनत्व अनुमान का उपयोग कर सकते हैं।
यदि मैं एक हिस्टोग्राम कर रहा हूं (मैं इस मुद्दे के बारे में पूरी तरह से जागरूक होने के बावजूद उनका उपयोग करता हूं), मैं लगभग हमेशा विशिष्ट प्रोग्राम डिफॉल्ट की तुलना में काफी अधिक डिब्बे का उपयोग करना पसंद करता हूं और बहुत बार मैं अलग-अलग बिन चौड़ाई के साथ कई हिस्टोग्राम करना पसंद करता हूं (और, कभी-कभी, मूल)। यदि वे यथोचित रूप से अनुकूल हैं, तो आपको यह समस्या होने की संभावना नहीं है, और यदि वे सुसंगत नहीं हैं, तो आप अधिक सावधानी से देखना जानते हैं, शायद कर्नेल घनत्व अनुमान, एक अनुभवजन्य सीडीएफ, एक क्यूक्यू प्लॉट या कुछ और समान।
हिस्टोग्राम्स कभी-कभी भ्रामक हो सकते हैं, बॉक्सप्लाट्स ऐसी समस्याओं के लिए और भी अधिक प्रवण होते हैं; एक बॉक्सप्लॉट के साथ आपके पास "अधिक डिब्बे का उपयोग" कहने की क्षमता भी नहीं है। इस पोस्ट में चार अलग-अलग डेटा सेट देखें , सभी समान, सममित बॉक्सप्लॉट्स के साथ, भले ही डेटा सेटों में से एक बहुत तिरछा हो।
[१]: रुबिन, पॉल (२०१४) "हिस्टोग्राम एब्यूज़!",
ब्लॉग पोस्ट, या एक ओबी दुनिया में , २३ जनवरी २०१४
लिंक ... (वैकल्पिक लिंक)