ANOVA trong từng khối nhân viên
Tiếp nối các phân tích trước với công ty sản xuất, nơi năng suất lao động được xem xét theo các khối khác nhau và một chương trình khuyến khích đã được triển khai, giờ bạn sẽ đi sâu hơn vào dữ liệu. Công ty hiện có bộ dữ liệu đầy đủ hơn trong DataFrame productivity, bao gồm 1200 nhân viên bổ sung và productivity_score của họ, đồng thời đã phân nhóm lực lượng lao động thành ba khối dựa trên mức năng suất. Mỗi nhân viên được gán ngẫu nhiên một trong ba phương án khuyến khích: 'Bonus', 'Profit Sharing', hoặc 'Work from Home'.
Trước khi đánh giá đầy đủ tác động của các biện pháp khuyến khích này lên năng suất, điều quan trọng là xác minh rằng việc gán điều trị ban đầu thực sự ngẫu nhiên và công bằng giữa các khối năng suất khác nhau. Bước này giúp đảm bảo rằng mọi khác biệt quan sát được về năng suất sau điều trị có thể được quy cho chính các chương trình khuyến khích, thay vì những chênh lệch sẵn có giữa các khối.
Hàm f_oneway() từ scipy.stats đã được nạp sẵn cho bạn.
Bài tập này là một phần của khóa học
Thiết kế thí nghiệm với Python
Hướng dẫn bài tập
- Nhóm
prod_dftheo cột thích hợp đại diện cho các khối khác nhau trong dữ liệu. - Dùng hàm lambda để áp dụng kiểm định ANOVA trong mỗi khối, chỉ định đối số cho hàm
lambda. - Với mỗi nhóm điều trị trong các khối, lọc
prod_dftheo giá trị cột'Treatment'và chọn cột'productivity_score'.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)