Power Analysis - भाग II
पिछले चरण में, हमने प्रयोग का एक सिमुलेटेड इंस्टेंस चलाकर एक p-value जनरेट की थी. अब हम इसी फ्रेमवर्क का उपयोग करके सांख्यिकीय शक्ति (power) निकालेंगे. किसी प्रयोग की power वह क्षमता है जिसके जरिए, यदि ट्रिटमेंट और कंट्रोल के बीच सच में अंतर मौजूद हो, तो प्रयोग उस अंतर का पता लगा सके. अच्छी सांख्यिकीय प्रैक्टिस के लिए 80% power का लक्ष्य रखना उपयुक्त माना जाता है.
हमारी वेबसाइट के लिए मान लें कि हम यह जानना चाहते हैं कि प्रत्येक वेरिएंट पर कितने लोगों का विज़िट होना चाहिए ताकि हम 80% power के साथ time spent में 10% की वृद्धि को डिटेक्ट कर सकें. इसके लिए, हम छोटे सैंपल (50) से शुरुआत करेंगे, इस प्रयोग के कई सिमुलेशन चलाएँगे और power जाँचेंगे. यदि 80% power हासिल हो जाती है, तो हम रुक जाएँगे. अगर नहीं, तो हम sample size बढ़ाएँगे और फिर से कोशिश करेंगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Statistical Simulation
अभ्यास निर्देश
time_spentरैंडम वैरिएबल्स के लिए,sizeको ऐसे ट्यूपल के रूप में सेट करें कि shapesample_size\(\times\)simsहो.powerको उन p-values के अनुपात के रूप में निकालें जो 0.05 से कम हैं (statistically significant).- यदि
power80% से अधिक या बराबर हो, तो while लूप सेbreakकर दें. अन्यथा,sample_sizeको 10-10 बढ़ाते रहें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
sample_size = 50
# Keep incrementing sample size by 10 till we reach required power
while 1:
control_time_spent = np.random.normal(loc=control_mean, scale=control_sd, size=(____,____)))
treatment_time_spent = np.random.normal(loc=control_mean*(1+effect_size), scale=control_sd, size=(____,____))
t, p = st.ttest_ind(treatment_time_spent, control_time_spent)
# Power is the fraction of times in the simulation when the p-value was less than 0.05
power = (p < 0.05).sum()/____
if ____:
____
else:
____ += ____
print("For 80% power, sample size required = {}".format(sample_size))