1. प्रश्न
एक नया ऑनबोर्डिंग फ्लो A/B टेस्ट में है। उपयोगकर्ता प्रकार के आधार पर विभाजित करने के बाद, नए और लौटने वाले (returning) दोनों उपयोगकर्ताओं के लिए ट्रीटमेंट की रूपांतरण दर अधिक है; स्तरों (strata) को मिलाने के बाद, ट्रीटमेंट की समग्र रूपांतरण दर कम हो जाती है। उत्पाद स्वामी (product owner) आज ही शिप करने का निर्णय चाहता है।
एक ठोस गणना उदाहरण बनाएं जो यह दिखाए कि यह उलटफेर कैसे हो सकता है, फिर कच्चे भाजक (raw denominators) और यादृच्छिकीकरण संतुलन से लेकर एक स्तरीकृत अनुमानक और एक इंटरैक्शन परीक्षण तक एक विश्लेषण प्रवाह प्रदान करें। अंत में, वैश्विक रोलआउट, स्तरीकृत रोलआउट, प्रयोग को रोकने (pausing), या अधिक डेटा एकत्र करने के लिए आवश्यक साक्ष्य बताएं।
2. सीमाएं और स्पष्टीकरण
- यह एक यादृच्छिक ऑनलाइन प्रयोग (randomized online experiment) है; "नए" और "लौटने वाले" प्रयोग शुरू होने से पहले परिभाषित किए गए स्तर (strata) हैं।
- प्राथमिक मीट्रिक यह है कि क्या प्रत्येक उपयोगकर्ता एक निश्चित विंडो में मुख्य रूपांतरण पूरा करता है। एक उपयोगकर्ता से बार-बार होने वाले इवेंट स्वतंत्र नमूने (independent samples) नहीं हैं।
- प्रश्न में दी गई संख्याएं अभ्यास डेटा हैं, न कि किसी वास्तविक कंपनी का परिणाम या कोई सार्वभौमिक लॉन्च थ्रेशोल्ड।
- सबसे पहले अवलोकन विंडो (observation windows), डिडुप्लीकेशन, एक्सपोज़र परिभाषा और डेटा वॉटरमार्क को संरेखित करें। यदि कोई स्ट्रैटम ट्रीटमेंट से प्रभावित होता है, तो इसका उपयोग सीधे कारणात्मक उपसमूह विभाजन (causal subgroup split) के लिए नहीं किया जाना चाहिए।
3. मुख्य तर्क: भाजक मिश्रण परिणाम को उलट सकता है
समग्र रूपांतरण स्ट्रैटम रूपांतरण दरों का एक नमूना-आकार-भारित औसत (sample-size-weighted average) होता है। यदि दोनों आर्म्स के बीच स्ट्रैटम के शेयर भिन्न होते हैं, तो ट्रीटमेंट प्रत्येक स्ट्रैटम में बेहतर हो सकता है जबकि कुल योग (aggregate) उलट जाता है।
एक चरम लेकिन स्पष्ट उदाहरण पर विचार करें। एक उच्च-आधार रेखा (high-baseline) वाले स्ट्रैटम में, कंट्रोल 990/1000 = 99% है और ट्रीटमेंट 100/100 = 100% है। एक निम्न-आधार रेखा (low-baseline) वाले स्ट्रैटम में, कंट्रोल 1/100 = 1% है और ट्रीटमेंट 20/1000 = 2% है। ट्रीटमेंट दोनों स्तरों में एक प्रतिशत अंक का सुधार करता है, फिर भी कुल कंट्रोल 991/1100 = 90.1% है और कुल ट्रीटमेंट 120/1100 = 10.9% है। यह अंतर अधिकांश अवलोकनों को विभिन्न बेसलाइन स्तरों में रखने से आता है, न कि ट्रीटमेंट द्वारा किसी भी स्ट्रैटम को खराब करने से।
वास्तविक प्रयोग में, इतना बड़ा मिश्रण अंतर आमतौर पर यादृच्छिकीकरण, एक्सपोज़र, सैंपलिंग या समय-विंडो की समस्या का संकेत देता है। यह यह साबित नहीं करता है कि हर समग्र औसत गलत है। जब स्ट्रैटम शेयर डिज़ाइन द्वारा संतुलित होते हैं, या पूर्व-निर्दिष्ट लक्षित-आबादी मानकीकरण (target-population standardization) का उपयोग किया जाता है, तो समग्र अनुमान अभी भी लक्षित आबादी के औसत ट्रीटमेंट प्रभाव (average treatment effect) का प्रतिनिधित्व कर सकता है।
4. निदान और संदर्भ छद्म-कोड
आर्म, स्ट्रैटम और रूपांतरण फ़्लैग द्वारा उपयोगकर्ता-स्तरीय भाजक (denominators) और अंश (numerators) को एकत्रित करें। स्ट्रैटम शेयर, प्रभाव और विश्वास अंतराल (confidence intervals) की तुलना करें। एक अनुकूल समग्र प्रतिशत के साथ शुरुआत न करें और फिर तब तक मनमाने स्लाइस का प्रयास न करें जब तक कि कोई स्पष्टीकरण न दिखाई दे।
for arm in [control, treatment]:
for stratum in [new, returning]:
n[arm, stratum] = count_distinct_users(arm, stratum)
y[arm, stratum] = count_users_with_conversion(arm, stratum)
rate[arm, stratum] = y[arm, stratum] / n[arm, stratum]
share[arm, stratum] = n[arm, stratum] / sum_s(n[arm, s])
check_exposure_and_assignment_balance()
check_missing_users_duplicates_and_window()
report_stratum_effects_and_confidence_intervals()
weights = preregistered_target_population_shares()
standardized_effect = sum_s(weights[s] * (rate[treatment, s] - rate[control, s]))
test_arm_by_stratum_interaction()यदि स्ट्रेटा यादृच्छिकीकरण से पहले उपलब्ध हैं, तो यादृच्छिकीकरण को स्तरीकृत करें या कम से कम प्रत्येक स्ट्रैटम के भीतर आवंटन की निगरानी करें। विश्लेषण योजना को प्राथमिक स्तरों, लक्षित-आबादी भारों, प्राथमिक मीट्रिक और स्टॉपिंग नियम को पूर्व-पंजीकृत करना चाहिए ताकि परिणाम यह तय न करे कि कौन सा स्लाइस चुनना है।
5. शुद्धता, सांख्यिकी और शिप निर्णय
एक स्तरीकृत अनुमानक प्रत्येक स्ट्रैटम प्रभाव को वापस समान लक्षित-आबादी भारों पर रखता है, ताकि नमूना-मिश्रण अंतर को ट्रीटमेंट प्रभाव न समझ लिया जाए। भार पूर्व-प्रयोग आबादी परिभाषा या यादृच्छिकीकरण डिज़ाइन से आने चाहिए, न कि देखे गए परिणाम से निकाले जाने चाहिए।
यह निर्धारित करने के लिए ट्रीटमेंट और स्ट्रैटम के बीच इंटरैक्शन का परीक्षण करें कि क्या प्रभाव अंतर सैंपलिंग शोर से अधिक है। यदि इंटरैक्शन महत्वपूर्ण और स्थिर है, तो नए और लौटने वाले उपयोगकर्ताओं के लिए एक अलग रोलआउट उचित हो सकता है। यदि यह महत्वपूर्ण नहीं है, तो सबसे अच्छे दिखने वाले स्ट्रैटम का चयन करने के बजाय पूर्व-निर्दिष्ट समग्र अनुमान को प्राथमिकता दें।
अकेले सांख्यिकीय महत्व (statistical significance) शिपिंग को उचित नहीं ठहराता है। न्यूनतम स्वीकार्य प्रभाव, गार्डरेल मेट्रिक्स, प्रयोग की अवधि, नमूना आकार, विलंबित रूपांतरण और डेटा पूर्णता को संयोजित करें। यदि एक्सपोज़र लॉगिंग, क्रॉस-आर्म संदूषण (cross-arm contamination), यादृच्छिकीकरण, या विंडो परिपक्वता टूट गई है, तो निर्णय को रोकें और अधिक स्लाइसिंग के साथ समस्या को छिपाने के बजाय डेटा की मरम्मत करें।
6. अनुवर्ती प्रश्न और जाल
- एक स्ट्रैटम कब कारणात्मक समस्या (causal problem) पैदा कर सकता है? यदि यह एक्सपोज़र के बाद उत्पन्न होता है, तो इस पर कंडीशनिंग करने से कोलाइडर पूर्वाग्रह (collider bias) उत्पन्न हो सकता है; इसके बजाय प्री-एक्सपोज़र वैरिएबल या पूर्व-निर्दिष्ट तंत्र विश्लेषण का उपयोग करें।
- बिना किसी सीमा के स्लाइसिंग क्यों नहीं करनी चाहिए? प्रत्येक अपंजीकृत स्लाइस संयोगवश महत्वपूर्ण परिणाम की संभावनाओं को जोड़ता है; बहुलता (multiplicity) को नियंत्रित करें और खोजपूर्ण निष्कर्षों को परिकल्पना के रूप में लेबल करें।
- क्या प्रत्येक समग्र अंतर सिम्पसन का विरोधाभास है? नहीं। पहले भाजक, एक्सपोज़र पात्रता, विंडो, डिडुप्लीकेशन और अनुपलब्धता (missingness) की जांच करें, फिर पुष्टि करें कि दिशाएं वास्तव में स्तरों के भीतर उलटती हैं या नहीं।
- क्या होगा यदि ट्रीटमेंट में एक अलग स्ट्रैटम मिश्रण है? पहले यादृच्छिकीकरण और रूटिंग की जांच करें। यदि लक्षित-आबादी भार ज्ञात हैं, तो पूर्व-निर्दिष्ट मानकीकृत अनुमान का उपयोग करें; परिणाम देखने के बाद कभी भी भार न चुनें।
7. संदर्भ
- Google for Developers के Good Data Analysis और Analysis traps गाइड।
- सिम्पसन के विरोधाभास और खंडित प्रयोग परिणामों पर Optimizely का स्पष्टीकरण।
- A/B परीक्षणों में उलटफेर को कवर करने वाले सार्वजनिक डेटा-साइंस साक्षात्कार प्रश्न।
8. साक्षात्कार स्कोरिंग बिंदु
भाजक और भार की गणना कर सकते हैं
उम्मीदवार को यह दिखाने के लिए गणनाओं का उपयोग करना चाहिए कि "हर स्ट्रैटम में जीतता है, समग्र रूप से हारता है" और असमान स्ट्रैटम शेयरों को मुख्य सुराग के रूप में पहचानना चाहिए।
निदान को निर्णय से अलग कर सकते हैं
उन्हें अनुमानकों, इंटरैक्शन और रोलआउट नियमों पर चर्चा करने से पहले यादृच्छिकीकरण, एक्सपोज़र, विंडो और डेटा गुणवत्ता की जांच करनी चाहिए।
कारणात्मक सीमाओं को बता सकते हैं
उन्हें हर स्लाइस को एक स्वतंत्र निष्कर्ष के रूप में मानने के बजाय पोस्ट-एक्सपोज़र स्ट्रेटा, कोलाइडर पूर्वाग्रह और बहुलता जोखिम की पहचान करनी चाहिए।
एक निष्पादन योग्य योजना दे सकते हैं
उन्हें केवल "अधिक डेटा एकत्र करें" कहने के बजाय स्तरीकृत यादृच्छिकीकरण, पूर्व-पंजीकृत भार, गार्डरेल और स्तरीकृत रोलआउट या निरंतर परीक्षण के लिए शर्तों का प्रस्ताव देना चाहिए।