ANOVA всередині блоків працівників
Спираючись на попередні аналізи у виробничій компанії, де продуктивність працівників вивчали в різних блоках та запровадили програму заохочень, ви тепер заглиблюєтеся в дані. Компанія має повніший набір у датафреймі productivity, додавши 1200 працівників та їхні productivity_score, і поділила персонал на три блоки за рівнями продуктивності. Кожному працівникові випадково призначили одну з трьох опцій заохочення: 'Bonus', 'Profit Sharing' або 'Work from Home'.
Перш ніж оцінювати повний вплив цих втручань на продуктивність, важливо перевірити, що початковий розподіл заохочень справді був випадковим і рівномірним у межах різних блоків продуктивності. Це гарантує, що будь-які відмінності в продуктивності після втручання можна впевнено пов'язати саме з програмами заохочень, а не з початковими відмінностями між блоками.
Функцію f_oneway() з scipy.stats уже завантажено для вас.
Ця вправа є частиною курсу
Експериментальний дизайн у Python
Інструкції до вправи
- Згрупуйте
prod_dfза відповідним стовпцем, який позначає різні блоки у ваших даних. - Використайте функцію lambda, щоб виконати тест ANOVA у кожному блоці, вказавши аргумент функції
lambda. - Для кожної групи втручання в межах блоків відфільтруйте
prod_dfза значеннями стовпця'Treatment'і виберіть стовпець'productivity_score'.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)