आर में क्यूक्यू प्लॉट कैसे बनाएं और व्याख्या करें
QQ प्लॉट , जिसका संक्षिप्त रूप “क्वांटाइल-क्वांटाइल” है, एक प्रकार का प्लॉट है जिसका उपयोग हम यह निर्धारित करने के लिए कर सकते हैं कि डेटा सेट संभावित रूप से सैद्धांतिक वितरण से आता है या नहीं।
कई सांख्यिकीय परीक्षण मानते हैं कि एक डेटा सेट एक सामान्य वितरण का अनुसरण करता है, और QQ प्लॉट का उपयोग अक्सर यह आकलन करने के लिए किया जाता है कि यह धारणा पूरी हुई है या नहीं।
यद्यपि QQ प्लॉट एक औपचारिक सांख्यिकीय परीक्षण नहीं है, यह दृष्टिगत रूप से जांचने का एक सरल तरीका प्रदान करता है कि क्या डेटा सेट सामान्य वितरण का पालन करता है और यदि नहीं, तो इस धारणा का उल्लंघन कैसे किया जाता है और कौन से डेटा बिंदु संभावित रूप से इस उल्लंघन के मूल में हैं।
हम मात्राओं के दो सेटों को एक दूसरे के विरुद्ध आलेखित करके एक QQ आलेख बना सकते हैं। यदि मात्राओं के दोनों सेट एक ही वितरण से आते हैं, तो प्लॉट पर बिंदुओं को मोटे तौर पर एक सीधी विकर्ण रेखा बनानी चाहिए।
क्वांटाइल्स डेटा सेट में उन बिंदुओं का प्रतिनिधित्व करते हैं जिनके नीचे डेटा का एक निश्चित भाग होता है। उदाहरण के लिए, क्वांटाइल 0.9 उस बिंदु को दर्शाता है जिसके नीचे 90% डेटा आता है। 0.5 क्वांटाइल उस बिंदु का प्रतिनिधित्व करता है जिसके नीचे 50% डेटा निहित है, इत्यादि।
QQ प्लॉट आपके डेटा नमूनों की मात्राओं की पहचान करते हैं और उनकी तुलना सैद्धांतिक वितरण की मात्राओं से करते हैं। ज्यादातर मामलों में सामान्य वितरण का उपयोग किया जाता है, लेकिन वास्तव में किसी भी सैद्धांतिक वितरण के लिए QQ प्लॉट बनाया जा सकता है।
यदि डेटा बिंदु QQ प्लॉट में एक सीधी विकर्ण रेखा के साथ स्थित हैं, तो डेटा सेट संभवतः सामान्य वितरण का अनुसरण करता है।
R में QQ प्लॉट कैसे बनाएं
हम यह जांचने के लिए आसानी से एक QQ प्लॉट बना सकते हैं कि डेटा सेट अंतर्निहित qqnorm() फ़ंक्शन का उपयोग करके सामान्य वितरण का पालन करता है या नहीं।
उदाहरण के लिए, निम्नलिखित कोड 100 यादृच्छिक मानों का एक वेक्टर उत्पन्न करता है जो एक सामान्य वितरण का अनुसरण करता है और यह सत्यापित करने के लिए उस डेटा सेट के लिए एक QQ प्लॉट बनाता है कि यह वास्तव में एक सामान्य वितरण का अनुसरण करता है:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a normal distribution data <- rnorm(100) #create QQ plot to compare this dataset to a theoretical normal distribution qqnorm(data)
यह देखना और भी आसान बनाने के लिए कि क्या डेटा एक सीधी रेखा का अनुसरण करता है, हम qqline() फ़ंक्शन का उपयोग कर सकते हैं:
#create QQ plot qqnorm(data) #add straight diagonal line to plot qqline(data)
हम देख सकते हैं कि पूंछ के पास डेटा बिंदु बिल्कुल सीधी रेखा का पालन नहीं करते हैं, लेकिन अधिकांश भाग के लिए ये नमूना डेटा सामान्य रूप से वितरित प्रतीत होते हैं (जैसा कि होना चाहिए क्योंकि हमने आर से सामान्य वितरण से डेटा उत्पन्न करने के लिए कहा था) ). ).
इसके बजाय, निम्नलिखित कोड पर विचार करें जो 100 यादृच्छिक मानों का एक वेक्टर उत्पन्न करता है जो गामा वितरण का अनुसरण करता है और इस डेटा के लिए एक QQ प्लॉट बनाता है ताकि यह जांचा जा सके कि यह सामान्य वितरण का पालन करता है या नहीं:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a gamma distribution data <- rgamma(100, 1) #create QQ plot to compare this dataset to a theoretical normal distribution qqnorm(data) qqline(data)
हम इस QQ प्लॉट में सीधी रेखा से एक स्पष्ट विचलन देख सकते हैं, जो दर्शाता है कि यह डेटा सेट संभवतः सामान्य वितरण का पालन नहीं करता है।
कोड के एक और टुकड़े पर विचार करें जो 100 यादृच्छिक मानों का एक वेक्टर उत्पन्न करता है जो 5 डिग्री स्वतंत्रता के साथ ची-स्क्वायर वितरण का पालन करता है और इस डेटा के लिए एक क्यूक्यू प्लॉट बनाता है ताकि यह जांचा जा सके कि यह सामान्य वितरण का पालन करता है या नहीं:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a Chi-Square distribution data <- rchisq(100, 5) #create QQ plot to compare this dataset to a theoretical normal distribution qqnorm(data) qqline(data)
एक बार फिर हम देख सकते हैं कि यह डेटासेट सामान्य वितरण का पालन नहीं करता है, खासकर पूंछ के पास।
R में QQ प्लॉट के सौंदर्यशास्त्र को बदलें
हम R में QQ प्लॉट के कुछ सौंदर्यशास्त्र को बदल सकते हैं, जिसमें शीर्षक, अक्ष लेबल, डेटा बिंदु रंग, रेखा का रंग और रेखा की चौड़ाई शामिल है।
निम्नलिखित कोड शीर्षक, अक्ष लेबल और प्लॉट बिंदुओं का रंग बदलता है:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a normal distribution data <- rnorm(100) #create QQ plot qqnorm(data, main = 'QQ Plot for Normality', xlab = 'Theoretical Dist', ylab = 'Sample dist', col = 'steelblue')
फिर निम्न कोड लाल रंग के साथ प्लॉट में एक सीधी विकर्ण रेखा जोड़ता है, लाइन की चौड़ाई 2 (lwd = 2, डिफ़ॉल्ट 1 है), और एक धराशायी रेखा (lty = 2, डिफ़ॉल्ट 1 है):
qqline(data, col = 'red', lwd = 2, lty = 2)
तकनीकी नोट्स
ध्यान रखें कि QQ प्लॉट केवल यह जांचने का एक तरीका है कि डेटा सेट सैद्धांतिक वितरण का पालन करता है या नहीं। औपचारिक रूप से यह जांचने के लिए कि कोई डेटासेट किसी विशेष वितरण का पालन करता है या नहीं, निम्नलिखित परीक्षण किए जा सकते हैं (मान लें कि आप अपने डेटासेट की तुलना सामान्य वितरण से कर रहे हैं):
एंडरसन-डार्लिंग परीक्षण
शापिरो-विल्क परीक्षण
कोलमोगोरोव-स्मिरनोव परीक्षण