НачатьНачать бесплатно

ANOVA внутри блоков сотрудников

Продолжая анализ данных производственной компании, в котором изучалась производительность рабочих в разных блоках в рамках программы стимулирования, вы переходите к более глубокому исследованию. Компания располагает расширенным набором данных в DataFrame 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)
Редактировать и запускать код