नमूना डेटा के आधार पर आबादी के बारे में निष्कर्ष निकालने और भविष्यवाणियां करने के लिए सांख्यिकीय अनुमान एक शक्तिशाली उपकरण है। यह हमें सूचित निर्णय लेने और विभिन्न विकल्पों की प्रभावशीलता को समझने की अनुमति देता है । सांख्यिकीय अनुमान का एक लोकप्रिय अनुप्रयोग A/B परीक्षण है, जहां हम बेहतर प्रदर्शन करने वाले का निर्धारण करने के लिए दो संस्करणों या उपचारों की तुलना करते हैं। हालांकि, क्या होता है जब हम प्रयोग में अधिक संस्करण या उपचार पेश करते हैं ?
ऐसा लग सकता है कि किसी प्रयोग में अतिरिक्त संस्करणों का परिचय और भी बेहतर निर्णयों का अवसर है। दुर्भाग्य से , अगर ठीक से नहीं संभाला जाता है, तो परीक्षण योग्य परिकल्पनाओं की संख्या में वृद्धि से भ्रामक परिणाम और गलत निर्णय हो सकते हैं। इस चुनौती को बहु तुलना समस्या के रूप में जाना जाता है।
इस लेख में, मैं कई परिकल्पना परीक्षण की अवधारणा, इसके संभावित नुकसान की व्याख्या करता हूं, और एक पायथन सिमुलेशन द्वारा समर्थित एक संभावित समाधान देता हूं।
एकाधिक परिकल्पना परीक्षण को समझने के लिए, आइए दो प्रकारों वाले एक साधारण A/B परीक्षण की मौलिक अवधारणाओं की जांच करके प्रारंभ करें।
ए/बी परीक्षण में, हम दो प्रतिस्पर्धी परिकल्पनाओं को तैयार करके शुरू करते हैं: रिक्त परिकल्पना , जो विविधताओं के बीच अंतर की अनुपस्थिति का प्रतिनिधित्व करती है, और वैकल्पिक परिकल्पना , अंतर की उपस्थिति का सुझाव देती है।
फिर हम alpha
के रूप में निरूपित एक महत्व स्तर निर्धारित करते हैं। यह सीमा शून्य परिकल्पना को अस्वीकार करने के लिए आवश्यक साक्ष्य की मात्रा निर्धारित करती है। आम तौर पर उपयोग किए जाने वाले महत्व स्तर 0.05 (5%) और 0.01 (1%) हैं, जो शून्य परिकल्पना के सत्य होने पर डेटा के अवलोकन की संभावना को दर्शाता है।
प्रयोग चलाने और डेटा एकत्र करने के बाद, हम p-मानों की गणना करते हैं। पी-मान परिणाम प्राप्त करने की संभावना का प्रतिनिधित्व करता है, जैसा कि शून्य परिकल्पना के सत्य होने पर देखे गए डेटा के रूप में, या उससे अधिक चरम के रूप में प्राप्त होता है। यदि पी-मान महत्व स्तर alpha
से कम है, तो हम वैकल्पिक परिकल्पना के पक्ष में शून्य परिकल्पना को अस्वीकार करते हैं।
यह नोट करना महत्वपूर्ण है कि कम पी-वैल्यू शून्य परिकल्पना के खिलाफ मजबूत सबूत का सुझाव देता है, यह दर्शाता है कि प्रेक्षित डेटा अकेले संयोग से होने की संभावना नहीं है। हालाँकि, यह निश्चितता नहीं दर्शाता है। अशक्त परिकल्पना सत्य होने पर भी नमूनों के बीच अंतर देखने की गैर-शून्य संभावना बनी रहती है।
जब हम कई वैकल्पिक परिकल्पनाओं के साथ एक स्थिति का सामना करते हैं, तो हम इसे कई परिकल्पना परीक्षण के रूप में संदर्भित करते हैं। ऐसे मामलों में, जटिलता बढ़ जाती है क्योंकि हमें एक साथ कई परीक्षण करने के संभावित प्रभाव पर सावधानीपूर्वक विचार करने की आवश्यकता होती है।
एकाधिक परिकल्पना परीक्षण का नुकसान तब होता है जब हम महत्व स्तर alpha
समायोजित किए बिना कई परिकल्पनाओं का परीक्षण करते हैं। ऐसे मामलों में, हम अनजाने में "टाइप I" त्रुटियों की दर बढ़ा देते हैं , जिसका अर्थ है कि हम एक शून्य परिकल्पना को अस्वीकार करते हैं (अंतर खोजें) जबकि यह शून्य परिकल्पना वास्तव में सत्य है (कोई अंतर नहीं है)।
जितनी अधिक परिकल्पनाओं का हम एक साथ परीक्षण करते हैं, कम से कम एक परिकल्पना के लिए alpha
से कम पी-मान खोजने और गलत तरीके से एक महत्वपूर्ण अंतर का निष्कर्ष निकालने की संभावना उतनी ही अधिक होती है।
इस मुद्दे को स्पष्ट करने के लिए, एक ऐसे परिदृश्य पर विचार करें जहां हम यह निर्धारित करने के लिए N
परिकल्पनाओं का परीक्षण करना चाहते हैं कि कौन से नए वेबपेज डिजाइन वांछित alpha = 0.05
के साथ अधिक ग्राहकों को आकर्षित करते हैं। आइए मान लें कि हम जानते हैं कि कोई भी नया डिज़ाइन डिफ़ॉल्ट से बेहतर नहीं है , जिसका अर्थ है कि शून्य परिकल्पना सभी N
मामलों के लिए है।
हालांकि, प्रत्येक मामले के लिए, "प्रकार I" त्रुटि , या झूठी सकारात्मक होने की 5% संभावना है (शून्य परिकल्पना को सत्य मानते हुए)। दूसरे शब्दों में, झूठी सकारात्मक का सही ढंग से पता नहीं लगाने की 95% संभावना है। सैद्धांतिक रूप से, N
परीक्षणों के बीच कम से कम एक झूठी सकारात्मक होने की संभावना 1 - (1 - alpha)^N = 1 - 0.95^N
के बराबर है। उदाहरण के लिए, जब N = 10
, यह प्रायिकता लगभग 40% है, प्रारंभिक 5% से काफी अधिक है।
समस्या और अधिक स्पष्ट हो जाती है क्योंकि हम परीक्षण की गई परिकल्पनाओं की संख्या में वृद्धि करते हैं। यहां तक कि उन परिदृश्यों में भी जहां केवल कुछ वेरिएंट और उप-नमूने शामिल होते हैं, तुलनाओं की संख्या तेजी से जमा हो सकती है। उदाहरण के लिए, सभी उपयोगकर्ताओं के लिए तीन डिज़ाइन D1, D2, और D3 की तुलना, फिर अलग-अलग देश C1 के उपयोगकर्ताओं के लिए, और फिर से C1 के अलावा अन्य देशों के उपयोगकर्ताओं के लिए, कुल नौ तुलनाओं का परिणाम है। टाइप I त्रुटि दरों की बाद की मुद्रास्फीति को महसूस किए बिना अनजाने में कई तुलनाओं में संलग्न होना आसान है।
आइए एक दिलचस्प उदाहरण में तल्लीन करें जो कई परिकल्पनाओं का परीक्षण करते समय "टाइप I" त्रुटियों को नियंत्रित नहीं करने के परिणामों पर प्रकाश डालता है।
2009 में, शोधकर्ताओं के एक समूह ने एक मृत अटलांटिक सैल्मन पर fMRI स्कैन किया और आश्चर्यजनक रूप से मस्तिष्क गतिविधि की खोज की जैसे कि वह जीवित थी! यह समझने के लिए कि यह अप्रत्याशित परिणाम कैसे आया, हमें fMRI स्कैन की प्रकृति का पता लगाने की आवश्यकता है।
fMRI स्कैनर व्यापक प्रयोगात्मक प्लेटफॉर्म के रूप में काम करते हैं , जहां प्रत्येक रोगी पर कई परीक्षण किए जाते हैं। स्कैनर मस्तिष्क गतिविधि के संकेतक के रूप में रक्त ऑक्सीजन में परिवर्तन की निगरानी करते हैं। शोधकर्ता आमतौर पर रुचि के विशिष्ट क्षेत्रों पर ध्यान केंद्रित करते हैं, जो उन्हें पूरे शरीर की मात्रा को छोटे क्यूब्स में विभाजित करने की ओर ले जाता है जिन्हें वोक्सल्स कहा जाता है। प्रत्येक स्वर उस विशेष घन के भीतर मस्तिष्क गतिविधि की उपस्थिति का परीक्षण करने वाली परिकल्पना का प्रतिनिधित्व करता है । उच्च-रिज़ॉल्यूशन स्कैन की इच्छा के कारण, fMRI स्कैनर एक ही प्रक्रिया के दौरान हजारों परिकल्पनाओं का मूल्यांकन करते हैं।
इस मामले में, शोधकर्ताओं ने जानबूझकर प्रारंभिक महत्व स्तर alpha = 0.001
ठीक से ठीक नहीं किया , और उन्होंने मृत सामन में मस्तिष्क गतिविधि के साथ तीन स्वरों की पहचान की। हालांकि, यह परिणाम हमारी समझ का खंडन करता है कि सामन वास्तव में मर चुका है । महत्व के स्तर को ठीक करने पर, पुनरुत्थान जैसी घटना गायब हो गई , जो टाइप I त्रुटियों के मुद्दे को संबोधित करने के महत्व को दर्शाती है।
जब भी एक ही प्रयोग में कई परिकल्पनाओं का परीक्षण किया जाता है, तो इस चुनौती से निपटना और टाइप I त्रुटियों को नियंत्रित करना महत्वपूर्ण हो जाता है। विभिन्न सांख्यिकीय तकनीकों, जैसे कि बोनफेरोनी सुधार , को बहु परिकल्पना परीक्षण से जुड़ी झूठी सकारात्मक दर को कम करने के लिए नियोजित किया जा सकता है।
बोनफेरोनी सुधार एक सांख्यिकीय प्रक्रिया है जिसे विशेष रूप से परिकल्पना परीक्षण के दौरान कई तुलनाओं की चुनौती का समाधान करने के लिए डिज़ाइन किया गया है।
मान लीजिए कि आपको एक प्रयोग के दौरान N
परिकल्पनाओं का परीक्षण करने की आवश्यकता है, जबकि टाइप I त्रुटि की संभावना alpha
से नीचे रहती है।
प्रक्रिया का अंतर्निहित विचार सीधा है: प्रत्येक वैकल्पिक परिकल्पना के लिए अशक्त परिकल्पना को अस्वीकार करने के लिए आवश्यक महत्व स्तर को कम करें। कम से कम एक झूठे सकारात्मक की संभावना का सूत्र याद रखें? उस सूत्र में, हमारे पास alpha
है, जिसे समग्र संभाव्यता को कम करने के लिए घटाया जा सकता है।
इसलिए, कई परिकल्पनाओं के बीच कम से कम एक झूठी सकारात्मक की कम संभावना प्राप्त करने के लिए, आप प्रत्येक पी-वैल्यू की तुलना alpha
के साथ नहीं बल्कि कुछ छोटे से कर सकते हैं। लेकिन वास्तव में "कुछ छोटा" क्या है?
यह पता चला है कि bonferroni_alpha = alpha / N
का उपयोग प्रत्येक व्यक्तिगत परिकल्पना के लिए महत्व स्तर के रूप में यह सुनिश्चित करता है कि टाइप I त्रुटि की समग्र संभावना alpha
से नीचे रहती है।
उदाहरण के लिए, यदि आप 10 परिकल्पनाओं ( N = 10
) का परीक्षण कर रहे हैं और वांछित महत्व स्तर 5% ( alpha = 0.05
) है, तो आपको प्रत्येक व्यक्तिगत पी-मूल्य की तुलना bonferroni_alpha = alpha / N = 0.05 / 10 = 0.005
के साथ करनी चाहिए। इसलिए, गलत तरीके से कम से कम एक सही शून्य परिकल्पना को अस्वीकार करने की संभावना 0.05 के वांछित स्तर से अधिक नहीं होगी।
बूले की असमानता के कारण यह उल्लेखनीय तकनीक काम करती है, जो बताती है कि घटनाओं के संघ की संभावना उनकी व्यक्तिगत संभावनाओं के योग से कम या बराबर है। जबकि एक औपचारिक गणितीय प्रमाण मौजूद है, दृश्य व्याख्या एक सहज समझ प्रदान करती है:
इसलिए, जब प्रत्येक व्यक्तिगत परिकल्पना का परीक्षण bonferroni_alpha = alpha / N
a सार्थकता स्तर पर किया जाता है, तो हमारे पास झूठी सकारात्मकता की bonferroni_alpha
संभावना होती है। N
ऐसे परीक्षणों के लिए "गलत सकारात्मक" घटनाओं के मिलन की संभावना अलग-अलग संभावनाओं के योग से कम या उसके बराबर है। जो, सबसे खराब स्थिति में, जब सभी एन परीक्षण शून्य परिकल्पना में होता है, N * bonferroni_alpha = N * (alpha / N) = alpha
के बराबर होता है
पहले चर्चा की गई अवधारणाओं का समर्थन करने के लिए, आइए पायथन में एक सिमुलेशन करें। हम परिणामों का निरीक्षण करेंगे और बोनफेरोनी सुधार की प्रभावशीलता का आकलन करेंगे।
एक ऐसे परिदृश्य पर विचार करें जहां हमारे पास एक परीक्षण के भीतर 10 वैकल्पिक परिकल्पनाएं हैं। आइए मान लें कि सभी 10 मामलों में शून्य परिकल्पना सत्य है। आप सहमत हैं कि alpha = 0.05
का महत्व स्तर आपके विश्लेषण के लिए उपयुक्त है। हालांकि, फुलाए गए प्रकार I त्रुटि के लिए बिना किसी सुधार के, हम कम से कम एक गलत सकारात्मक परिणाम का अनुभव करने की लगभग 40% की सैद्धांतिक संभावना की उम्मीद करते हैं। और बोनफेरोनी सुधार लागू करने के बाद हम उम्मीद करते हैं कि यह संभावना 5% से अधिक न हो।
एक विशिष्ट प्रयोग के लिए, हमें या तो कम से कम एक गलत सकारात्मक मिलता है या नहीं। इन संभावनाओं को कई प्रयोगों के पैमाने पर ही देखा जा सकता है। तो चलिए प्रत्येक व्यक्तिगत प्रयोग के अनुकरण को 100 बार चलाते हैं और कम से कम एक गलत सकारात्मक (पी-मान महत्व स्तर से नीचे) के साथ प्रयोगों की संख्या की गणना करते हैं!
आप इस सिमुलेशन को चलाने के लिए सभी कोड के साथ .ipynb
फ़ाइल पा सकते हैं और GitHub - IgorKhomyanin/blog/bonferroni-and-salmon पर मेरे रिपॉजिटरी में ग्राफ़ उत्पन्न कर सकते हैं।
import numpy as np import matplotlib.pyplot as plt # To replicate the results np.random.seed(20000606) # Some hyperparameters too play with N_COMPARISONS = 10 N_EXPERIMENTS = 100 # Sample p-values # As we assume that null hypothesis is true, # the p-value would be distributed uniformly sample = np.random.uniform(0, 1, size=(N_COMPARISONS, N_EXPERIMENTS)) # Probability of type I error we are ready to accept # Probabiltiy of rejecting null hypothesis when it is actually true alpha = 0.05 # Theoretical False Positive Rate # # 1. # Probability that we cocnlude a significant difference for a given comparison # is equal to alpha by definition in our setting of true null hypothesis # Then [(1 - alpha)] is the probability of not rejecting the null hypothesis # # 2. # As experiments are considered independent, the probability of not rejecting # the null hypothesis in [(1 - alpha)]^N # # 3. # Probability that at least one is a false positive is equal to # 1 - (probability from 2.) prob_at_least_one_false_positive = 1 - ((1 - alpha) ** N_COMPARISONS) # Observed False Positive Rate # We conclude that experiment is a false positive when p-value is less than alpha false_positives_cnt = np.sum(np.sum(sample <= alpha, axis=0) > 0) false_positives_share = false_positives_cnt / N_EXPERIMENTS # Bonferroni correction bonferroni_alpha = alpha / N_COMPARISONS bonferroni_false_positive_comparisons_cnt = np.sum(np.sum(sample <= bonferroni_alpha, axis=0) > 0) bonferroni_false_positive_comparisons_share = bonferroni_false_positive_comparisons_cnt / N_EXPERIMENTS print(f'Theoretical False Positive Rate Without Correction: {prob_at_least_one_false_positive:0.4f}') print(f'Observed False Positive Rate Without Correction: {false_positives_share:0.4f} ({false_positives_cnt:0.0f} out of {N_EXPERIMENTS})') print(f'Observed False Positive Rate With Bonferroni Correction: {bonferroni_false_positive_comparisons_share:0.4f} ({bonferroni_false_positive_comparisons_cnt:0.0f} out of {N_EXPERIMENTS})') # Output: # Theoretical False Positive Rate Without Correction: 0.4013 # Observed False Positive Rate Without Correction: 0.4200 (42 out of 100) # Observed False Positive Rate With Bonferroni Correction: 0.0300 (3 out of 100)
यहाँ परिणामों का एक दृश्य है:
शीर्ष तस्वीर प्रत्येक वर्ग को व्यक्तिगत तुलना (परिकल्पना परीक्षण) के पी-मान के रूप में दर्शाती है। वर्ग जितना गहरा होगा, पी-वैल्यू उतना ही अधिक होगा। चूँकि हम जानते हैं कि अशक्त परिकल्पना सभी मामलों में लागू होती है, कोई भी महत्वपूर्ण परिणाम गलत सकारात्मक होगा।
जब पी-मान सार्थकता स्तर (लगभग सफेद वर्गों द्वारा इंगित) से कम होता है, तो हम शून्य परिकल्पना को अस्वीकार करते हैं और एक गलत सकारात्मक परिणाम प्राप्त करते हैं। मध्य ग्राफ सुधार के बिना प्रयोगों का प्रतिनिधित्व करता है, जबकि निचला ग्राफ बोनफेरोनी सुधार वाले प्रयोगों का प्रतिनिधित्व करता है। कम से कम एक झूठी सकारात्मक वाले प्रयोग लाल रंग में रंगे जाते हैं।
जाहिर है, सुधार ने प्रभावी ढंग से काम किया। सुधार के बिना, हम कम से कम एक झूठी सकारात्मक के साथ 100 में से 42 प्रयोग देखते हैं, जो सैद्धांतिक ~ 40% संभावना के साथ निकटता से संरेखित करता है। हालाँकि, बोनफेरोनी सुधार के साथ, हमारे पास 100 में से केवल 3 प्रयोग हैं जिनमें कम से कम एक गलत सकारात्मक है, जो वांछित 5% सीमा से काफी नीचे है।
इस सिमुलेशन के माध्यम से, हम झूठी सकारात्मकता की घटना को कम करने में बोनफेरोनी सुधार के प्रभाव को देख सकते हैं , और बहु-परिकल्पना परीक्षण में इसकी उपयोगिता को और अधिक मान्य कर सकते हैं।
इस लेख में, मैंने बहु परिकल्पना परीक्षण की अवधारणा को समझाया और इसके संभावित खतरे पर प्रकाश डाला। कई परिकल्पनाओं का परीक्षण करते समय, जैसे ए/बी परीक्षण के दौरान कई तुलनाएं करना, "गलत सकारात्मक" की एक दुर्लभ घटना देखने की संभावना बढ़ जाती है। इस बढ़ी हुई संभावना से महत्वपूर्ण प्रभावों के बारे में गलत निष्कर्ष निकल सकते हैं जो उचित रूप से संबोधित न किए जाने पर संयोग से घटित हो सकते हैं।
इस मुद्दे का एक संभावित समाधान बोनफेरोनी सुधार है , जो प्रत्येक व्यक्तिगत परिकल्पना के लिए महत्व के स्तर को समायोजित करता है। बूले की असमानता का लाभ उठाकर, यह सुधार झूठी सकारात्मकताओं के जोखिम को कम करने, वांछित सीमा पर समग्र महत्व स्तर को नियंत्रित करने में मदद करता है।
हालांकि, यह पहचानना महत्वपूर्ण है कि हर समाधान की कीमत चुकानी पड़ती है। बोनफेरोनी सुधार का उपयोग करते समय, आवश्यक महत्व का स्तर कम हो जाता है, जो प्रयोग की शक्ति को प्रभावित कर सकता है। इसका अर्थ है कि समान अंतरों का पता लगाने के लिए एक बड़ा नमूना आकार या मजबूत प्रभाव आवश्यक हो सकता है। बोनफेरोनी सुधार या अन्य सुधार विधियों को लागू करने का निर्णय लेते समय शोधकर्ताओं को सावधानीपूर्वक इस व्यापार-बंद पर विचार करना चाहिए।
यदि इस आलेख में चर्चा की गई सामग्री के बारे में आपके कोई प्रश्न या टिप्पणियां हैं, तो कृपया उन्हें साझा करने में संकोच न करें। बेहतर समझ और अभ्यास में आवेदन के लिए सांख्यिकीय तकनीकों की आगे की चर्चा और अन्वेषण में संलग्न होना आवश्यक है।