कर्मचारियों के ब्लॉक्स के भीतर ANOVA
मैन्युफैक्चरिंग फर्म के साथ आपके पिछले विश्लेषणों पर आगे बढ़ते हुए, जहाँ अलग-अलग ब्लॉक्स में वर्कर प्रोडक्टिविटी की जाँच की गई थी और एक इंसेंटिव प्रोग्राम शुरू किया गया था, अब आप डेटा में और गहराई से जा रहे हैं। फर्म के पास अब productivity DataFrame में एक अधिक व्यापक डेटासेट है, जिसमें 1200 अतिरिक्त कर्मचारी और उनके productivity_score शामिल हैं, और उसने कार्यबल को प्रोडक्टिविटी स्तरों के आधार पर तीन ब्लॉक्स में बाँटा है। हर कर्मचारी को यादृच्छिक रूप से तीन इंसेंटिव विकल्पों में से एक सौंपा गया है: 'Bonus', 'Profit Sharing', या 'Work from Home'.
प्रोडक्टिविटी पर इन इंसेंटिव ट्रीटमेंट्स के पूरे प्रभाव का आकलन करने से पहले, यह सत्यापित करना ज़रूरी है कि शुरुआती ट्रीटमेंट असाइनमेंट वास्तव में रैंडम और अलग-अलग प्रोडक्टिविटी ब्लॉक्स में समान रूप से वितरित था। इस कदम से यह सुनिश्चित होगा कि ट्रीटमेंट के बाद प्रोडक्टिविटी में दिखने वाले किसी भी अंतर को आत्मविश्वास से स्वयं इंसेंटिव प्रोग्राम्स के कारण माना जा सके, न कि ब्लॉक्स में पहले से मौजूद असमानताओं के कारण।
scipy.stats की f_oneway() फंक्शन आपके लिए लोड कर दी गई है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Experimental Design
अभ्यास निर्देश
- अपने डेटा में अलग-अलग ब्लॉक्स को दर्शाने वाले उपयुक्त कॉलम के आधार पर
prod_dfको group करें. - प्रत्येक ब्लॉक के भीतर ANOVA टेस्ट लगाने के लिए एक lambda फंक्शन का उपयोग करें, और
lambdaफंक्शन का आर्ग्युमेंट निर्दिष्ट करें. - ब्लॉक्स के भीतर प्रत्येक ट्रीटमेंट ग्रुप के लिए,
'Treatment'कॉलम के मानों के आधार परprod_dfको फ़िल्टर करें और'productivity_score'कॉलम चुनें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Perform the within blocks ANOVA, first grouping by block
within_block_anova = prod_df.groupby('____').apply(
# Set function
lambda x: ____(
# Filter Treatment values based on outcome
x[x['____'] == '____']['____'],
x[x['____'] == '____']['____'],
x[x['____'] == '____']['____'])
)
print(within_block_anova)