ANOVA ภายในบล็อกของพนักงาน
ต่อเนื่องจากการวิเคราะห์ก่อนหน้าเกี่ยวกับบริษัทผู้ผลิต ซึ่งศึกษาประสิทธิภาพการทำงานของพนักงานในบล็อกต่าง ๆ พร้อมกับโปรแกรมจูงใจที่ได้นำมาใช้ ขณะนี้เราจะเจาะลึกข้อมูลเพิ่มเติม บริษัทมีชุดข้อมูลที่ครอบคลุมมากขึ้นใน DataFrame ชื่อ productivity ซึ่งรวมพนักงานเพิ่มเติมอีก 1,200 คนพร้อมค่า productivity_score โดยแบ่งพนักงานออกเป็น 3 บล็อกตามระดับประสิทธิภาพการทำงาน และสุ่มมอบหมายมาตรการจูงใจให้พนักงานแต่ละคนเลือกหนึ่งในสามแบบ ได้แก่ 'Bonus', 'Profit Sharing' หรือ 'Work from Home'
ก่อนประเมินผลกระทบโดยรวมของมาตรการจูงใจต่อประสิทธิภาพการทำงาน สิ่งสำคัญคือต้องตรวจสอบว่าการมอบหมายมาตรการในช่วงแรกนั้นเป็นแบบสุ่มและเท่าเทียมกันในทุกบล็อก ขั้นตอนนี้ช่วยให้มั่นใจได้ว่าความแตกต่างด้านประสิทธิภาพที่สังเกตได้หลังการใช้มาตรการนั้น มาจากโปรแกรมจูงใจจริง ๆ ไม่ใช่ความแตกต่างที่มีอยู่เดิมระหว่างบล็อก
ฟังก์ชัน f_oneway() จากไลบรารี scipy.stats ได้โหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบการทดลองด้วย Python
คำแนะนำการฝึกหัด
- จัดกลุ่ม
prod_dfตามคอลัมน์ที่แสดงถึงบล็อกต่าง ๆ ในข้อมูล - ใช้ฟังก์ชัน lambda เพื่อรัน ANOVA test ภายในแต่ละบล็อก โดยระบุอาร์กิวเมนต์ของฟังก์ชัน
lambda - สำหรับกลุ่มมาตรการจูงใจแต่ละกลุ่มภายในบล็อก ให้กรอง
prod_dfตามค่าในคอลัมน์'Treatment'และเลือกคอลัมน์'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)