पायथन में एंडरसन-डार्लिंग टेस्ट कैसे करें


एंडरसन-डार्लिंग परीक्षण एक अच्छाई-की-फिट परीक्षण है जो मापता है कि आपका डेटा एक निर्दिष्ट वितरण में कितनी अच्छी तरह फिट बैठता है।

इस परीक्षण का उपयोग अक्सर यह निर्धारित करने के लिए किया जाता है कि आपका डेटा सामान्य वितरण का पालन करता है या नहीं।

इस प्रकार का परीक्षण सामान्यता के परीक्षण के लिए उपयोगी है, जो कि प्रतिगमन , एनोवा , टी-परीक्षण और कई अन्य सहित कई सांख्यिकीय परीक्षणों में आमतौर पर इस्तेमाल की जाने वाली धारणा है।

उदाहरण: पायथन में एंडरसन-डार्लिंग परीक्षण

पायथन में एंडरसन-डार्लिंग परीक्षण करने के लिए, हम scipy.stats लाइब्रेरी से एंडरसन() फ़ंक्शन का उपयोग कर सकते हैं, जो निम्नलिखित सिंटैक्स का उपयोग करता है:

एंडरसन(x, जिला=’मानदंड’)

सोना:

  • x : नमूना डेटा की तालिका
  • dist : परीक्षण के लिए वितरण का प्रकार। डिफ़ॉल्ट “मानक” है, लेकिन आप “एक्सपोन” या “लॉजिस्टिक्स” भी निर्दिष्ट कर सकते हैं।

उदाहरण के लिए, यहां बताया गया है कि 50 सामान्य रूप से वितरित यादृच्छिक चर के नमूने पर एंडरसन-डार्लिंग परीक्षण कैसे किया जाए:

 import numpy as np

#create data
np.random.seed(0)
data = np.random.normal(size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult( statistic =0.15006999533388665,
               critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]),
               significance_level =array([15. , 10. , 5. , 2.5, 1. ]))

परीक्षण आँकड़ा 0.150 है। हम इस मान की तुलना प्रत्येक महत्वपूर्ण मान से कर सकते हैं जो प्रत्येक महत्व स्तर से मेल खाता है यह देखने के लिए कि परीक्षण के परिणाम महत्वपूर्ण हैं या नहीं। उदाहरण के लिए:

  • α = 0.01 के लिए क्रांतिक मान 1.021 है। चूँकि परीक्षण आँकड़ा (0.150) इस महत्वपूर्ण मान से अधिक नहीं है, परिणाम 0.01 महत्व स्तर पर महत्वपूर्ण नहीं हैं।
  • α = 0.025 के लिए क्रांतिक मान 0.858 है। चूँकि परीक्षण आँकड़ा (0.150) इस महत्वपूर्ण मान से अधिक नहीं है, परिणाम 0.025 महत्व स्तर पर महत्वपूर्ण नहीं हैं।

और इसी तरह।

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

यह परिणाम आश्चर्यजनक नहीं होना चाहिए, क्योंकि हमने 50 सामान्य रूप से वितरित मानों का एक नमूना उत्पन्न करने के लिए np.rand.सामान्य() फ़ंक्शन का उपयोग किया था।

इसके बजाय, विचार करें कि क्या हमने 0 और 10 के बीच 50 यादृच्छिक पूर्णांकों के नमूने पर एंडरसन-डार्लिंग परीक्षण किया है:

 import numpy as np

#create data
np.random.seed(0)
data = np.random.randint(0, 10, size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult( statistic =1.1926463985076836,
               critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]),
               significance_level =array([15. , 10. , 5. , 2.5, 1. ]))

परीक्षण आँकड़ा 1.1926 है। हम इस मान की तुलना प्रत्येक महत्वपूर्ण मान से कर सकते हैं जो प्रत्येक महत्व स्तर से मेल खाता है यह देखने के लिए कि परीक्षण के परिणाम महत्वपूर्ण हैं या नहीं। उदाहरण के लिए:

  • α = 0.01 के लिए क्रांतिक मान 1.021 है। चूँकि परीक्षण आँकड़ा (1.1926) इस महत्वपूर्ण मान से अधिक है, परिणाम 0.01 महत्व स्तर पर महत्वपूर्ण हैं।
  • α = 0.025 के लिए क्रांतिक मान 0.858 है। चूँकि परीक्षण आँकड़ा (1.1926) इस महत्वपूर्ण मान से अधिक है, परिणाम 0.025 महत्व स्तर पर महत्वपूर्ण हैं।

और इसी तरह।

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

यह परिणाम भी आश्चर्यजनक नहीं होना चाहिए, क्योंकि हमने 0 और 10 के बीच 50 यादृच्छिक पूर्णांकों का एक नमूना उत्पन्न करने के लिए np.rand.randint() फ़ंक्शन का उपयोग किया था, जो सामान्य वितरण का पालन करने की संभावना नहीं है।

आप यहां अधिक पायथन ट्यूटोरियल पा सकते हैं

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *