ПочатиПочніть безкоштовно

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)
Редагувати та запускати код