K-S रिप्लिकेट्स ड्रॉ करना
अब, आपको एक फ़ंक्शन चाहिए जो टारगेट डिस्ट्रीब्यूशन f से Kolmogorov–Smirnov रिप्लिकेट्स ड्रॉ करे. इसके लिए सिग्नेचर draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) वाला फ़ंक्शन बनाएँ. यहाँ n डेटा पॉइंट्स की संख्या है, और f वह फ़ंक्शन है जिससे आप टारगेट CDF से सैंपल जनरेट करेंगे. उदाहरण के लिए, अगर आपको Exponential डिस्ट्रीब्यूशन के विरुद्ध टेस्ट करना है, तो आप f के रूप में np.random.exponential पास करेंगे. यह फ़ंक्शन सामान्यतः आर्ग्यूमेंट लेता है, जिन्हें tuple के रूप में पास करना होगा. तो, यदि आप mean x_mean वाली Exponential डिस्ट्रीब्यूशन से सैंपल लेना चाहते हैं, तो args=(x_mean,) कीवर्ड का उपयोग करें. कीवर्ड आर्ग्यूमेंट size और n_reps क्रमशः टारगेट डिस्ट्रीब्यूशन से लिए जाने वाले सैंपल्स की संख्या और ड्रॉ किए जाने वाले रिप्लिकेट्स की संख्या को दर्शाते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Statistical Thinking के केस स्टडीज़
अभ्यास निर्देश
- सिग्नेचर
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)वाला फ़ंक्शन लिखिए जो निम्नलिखित करे.- टारगेट डिस्ट्रीब्यूशन
fसेsizeसैंपल जनरेट करें. ध्यान रखें, सैंपलिंग फ़ंक्शन मेंargsपास करने के लिएf(*args, size=size)का प्रयोग करें. परिणामx_fके रूप में स्टोर करें. - रिप्लिकेट्स की array
repsकोn_repsएंट्रीज़ वाली empty array के रूप में इनिशियलाइज़ करें. - एक
forलूप लिखें जो यह कामn_repsबार करे.fसेnसैंपल ड्रॉ करें. फिर से, अपने फ़ंक्शन कॉल में*argsका उपयोग करें. परिणाम वैरिएबलx_sampमें स्टोर करें.dcst.ks_stat()का उपयोग कर K-S स्टैटिस्टिक compute करें. यह वही फ़ंक्शन है जो आपने पिछले अभ्यास में लिखा था और सुविधाजनक रूप सेdcstमॉड्यूल में मौजूद है. परिणामrepsarray में स्टोर करें.
- अंत में array
repsरिटर्न करें.
- टारगेट डिस्ट्रीब्यूशन
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
____ ____:
# Generate samples from target distribution
x_f = ____
# Initialize K-S replicates
reps = ____
# Draw replicates
for i in range(n_reps):
# Draw samples for comparison
x_samp = ____
# Compute K-S statistic
____[i] = ____
return reps