ANOVA v rámci bloků zaměstnanců
Navazuješ na předchozí analýzy výrobní firmy, kde byla zkoumána produktivita pracovníků napříč různými bloky a byl zaveden motivační program. Teď se ponoříš do dat hlouběji. Firma má k dispozici rozšířený DataFrame productivity zahrnující 1 200 dalších zaměstnanců a jejich productivity_score. Pracovní síla je rozdělena do tří bloků podle úrovně produktivity. Každému zaměstnanci byla náhodně přiřazena jedna ze tří motivačních možností: 'Bonus', 'Profit Sharing' nebo 'Work from Home'.
Než začneš hodnotit celkový dopad těchto motivačních opatření na produktivitu, je důležité ověřit, že přiřazení do skupin bylo skutečně náhodné a rovnoměrné napříč jednotlivými bloky produktivity. Tento krok zajistí, že případné rozdíly v produktivitě po zavedení opatření lze s jistotou přičíst samotným motivačním programům, a nikoli předchozím rozdílům mezi bloky.
Funkce f_oneway() z knihovny scipy.stats je už načtena.
Toto cvičení je součástí kurzu
Experimentální design v Pythonu
Pokyny k cvičení
- Seskup
prod_dfpodle sloupce, který reprezentuje jednotlivé bloky v datech. - Pomocí funkce
lambdaaplikuj ANOVA test v rámci každého bloku a zadej argument této funkce. - Pro každou skupinu ošetření v rámci bloků filtruj
prod_dfpodle hodnot ve sloupci'Treatment'a vyber sloupec'productivity_score'.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)