การนำ Randomized Block Design ไปใช้งาน
บริษัทผู้ผลิตที่เคยร่วมงานด้วยยังคงสนใจทำการทดลองเกี่ยวกับผลิตภาพของพนักงาน ในครั้งก่อน บล็อกทั้งสองถูกแบ่งแบบสุ่ม ซึ่งใช้ได้ผล แต่การจัดกลุ่มผู้เข้าร่วมตามลักษณะที่คล้ายกันอาจให้ผลที่ดีกว่า
คราวนี้โหลดข้อมูลพนักงานกลุ่มเดิมพร้อมกับเพื่อนร่วมงานอีก 1,200 คนใน DataFrame ชื่อ productivity ซึ่งมีคอลัมน์ 'productivity_score' ที่คำนวณจากจำนวนหน่วยที่ผลิตได้ต่อชั่วโมง คอลัมน์นี้ถูกแบ่งออกเป็น 3 กลุ่มเพื่อสร้างบล็อกตามระดับผลิตภาพที่ใกล้เคียงกัน บริษัทต้องการนำโปรแกรมสิ่งจูงใจใหม่ 3 แบบ ได้แก่ 'Bonus', 'Profit Sharing' และ 'Work from Home' มาใช้ทั่วทั้งองค์กร โดยกำหนด treatment แบบสุ่ม
โหลด numpy และ pandas เป็น np และ pd แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบการทดลองด้วย Python
คำแนะนำการฝึกหัด
- สุ่มลำดับ
blockเพื่อสร้าง DataFrame ใหม่ชื่อprod_df - รีเซ็ต index เพื่อไม่ให้
blockทำหน้าที่เป็นทั้ง index และคอลัมน์พร้อมกัน - กำหนดค่า treatment ทั้ง 3 แบบในคอลัมน์
'Treatment'แบบสุ่ม
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Randomly assign workers to blocks
prod_df = productivity.____('____').apply(
lambda x: x.____(____)
)
# Reset the index
prod_df = prod_df.____(____)
# Assign treatment randomly
prod_df['Treatment'] = np.random.choice(
['____', '____', '____'],
size=len(____)
)