Реализация рандомизированного блочного дизайна
Производственная компания, с которой вы работали ранее, по-прежнему заинтересована в проведении экспериментов по оценке производительности труда. В прошлый раз два блока формировались случайным образом. Это вполне допустимо, однако группировка испытуемых по схожим характеристикам даёт более точные результаты.
Те же сотрудники снова загружены, но на этот раз в DataFrame с именем productivity, который включает 1200 дополнительных коллег. Также в нём есть столбец 'productivity_score' — оценка производительности труда в единицах продукции за час. Этот столбец разбит на три группы, чтобы сформировать блоки на основе схожих значений производительности. Компания хочет внедрить новую программу стимулирования с тремя вариантами ('Bonus', 'Profit Sharing' и 'Work from Home') и случайным образом распределить их среди сотрудников.
Библиотеки numpy и pandas загружены как np и pd соответственно.
Это упражнение является частью курса
Планирование экспериментов в Python
Инструкции к упражнению
- Перемешайте блоки (
blocks), чтобы создать новый DataFrame с именемprod_df. - Сбросьте индекс, чтобы
blockне выступал одновременно и индексом, и столбцом. - Случайным образом назначьте три значения воздействия в столбец
'Treatment'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Randomly assign workers to blocks
prod_df = productivity.____('____').apply(
lambda x: x.____(____)
)
# Reset the index
prod_df = prod_df.____(____)
# Assign treatment randomly
prod_df['Treatment'] = np.random.choice(
['____', '____', '____'],
size=len(____)
)