ANOVA în cadrul blocurilor de angajați
Continuând analizele anterioare realizate pentru firma de producție – în care productivitatea muncitorilor a fost examinată pe diferite blocuri și a fost introdus un program de stimulente – vei aprofunda acum datele disponibile. Firma dispune de un set de date mai cuprinzător în DataFrame-ul productivity, care include 1.200 de angajați suplimentari și scorurile lor de productivitate (productivity_score). Forța de muncă a fost structurată în trei blocuri în funcție de nivelul de productivitate, iar fiecărui angajat i-a fost alocat aleatoriu unul dintre trei stimulente: 'Bonus', 'Profit Sharing' sau 'Work from Home'.
Înainte de a evalua impactul complet al acestor tratamente de stimulare asupra productivității, este esențial să verifici că atribuirea inițială a tratamentelor a fost cu adevărat aleatorie și echitabilă în cadrul fiecărui bloc. Acest pas garantează că orice diferențe de productivitate observate după aplicarea tratamentelor pot fi atribuite cu încredere programelor de stimulare în sine, și nu unor disparități preexistente între blocuri.
Funcția f_oneway() din scipy.stats a fost deja importată pentru tine.
Acest exercițiu face parte din cursul
Design experimental în Python
Instrucțiuni pentru exercițiu
- Grupează
prod_dfdupă coloana care reprezintă diferitele blocuri din datele tale. - Folosește o funcție lambda pentru a aplica testul ANOVA în cadrul fiecărui bloc, specificând argumentul funcției
lambda. - Pentru fiecare grup de tratament din blocuri, filtrează
prod_dfîn funcție de valorile coloanei'Treatment'și selectează coloana'productivity_score'.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)