ANOVA dalam blok karyawan
Melanjutkan analisis sebelumnya dengan perusahaan manufaktur, di mana produktivitas pekerja ditelaah lintas berbagai blok dan program insentif diperkenalkan, kini Anda menggali data lebih dalam. Perusahaan kini memiliki himpunan data yang lebih lengkap dalam DataFrame productivity, termasuk 1200 karyawan tambahan beserta productivity_score mereka, dan telah membagi tenaga kerja menjadi tiga blok berdasarkan tingkat produktivitas. Setiap karyawan secara acak ditugaskan salah satu dari tiga opsi insentif: 'Bonus', 'Profit Sharing', atau 'Work from Home'.
Sebelum menilai dampak penuh dari perlakuan insentif terhadap produktivitas, penting untuk memverifikasi bahwa penugasan perlakuan awal benar-benar acak dan seimbang di seluruh blok produktivitas. Langkah ini memastikan bahwa setiap perbedaan produktivitas yang diamati setelah perlakuan dapat dengan yakin diatribusikan pada program insentif itu sendiri, bukan pada kesenjangan awal antarblok.
Fungsi f_oneway() dari scipy.stats telah dimuat untuk Anda.
Latihan ini adalah bagian dari kursus
Perancangan Eksperimen dengan Python
Petunjuk latihan
- Kelompokkan
prod_dfberdasarkan kolom yang sesuai yang merepresentasikan blok berbeda dalam data Anda. - Gunakan fungsi lambda untuk menerapkan uji ANOVA di dalam setiap blok, dengan menentukan argumen fungsi
lambda. - Untuk setiap kelompok perlakuan dalam blok, saring
prod_dfberdasarkan nilai kolom'Treatment'dan pilih kolom'productivity_score'.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)