Mettre en œuvre un plan en blocs aléatoires
L’entreprise manufacturière avec laquelle vous avez travaillé plus tôt souhaite toujours mener des expériences sur la productivité des employé·e·s. Auparavant, les deux blocs étaient définis aléatoirement. Même si cela peut fonctionner, il est souvent préférable de regrouper les sujets selon des caractéristiques similaires.
Les mêmes employé·e·s sont de nouveau chargés, cette fois dans un DataFrame appelé productivity incluant 1 200 autres collègues. Il contient également une colonne 'productivity_score' basée sur les unités produites par heure. Cette colonne a été discrétisée en trois groupes pour créer des blocs fondés sur des niveaux de productivité similaires. L’entreprise souhaite appliquer un nouveau programme d’incitation avec trois options ('Bonus', 'Profit Sharing' et 'Work from Home') dans l’ensemble de l’entreprise, avec une attribution aléatoire des traitements.
numpy et pandas sont chargés sous les alias np et pd.
Cet exercice fait partie du cours
<cours>Conception expérimentale en Python</cours>Instructions de l’exercice
- Mélangez les
blockpour créer un nouveau DataFrame nomméprod_df. - Réinitialisez l’index afin que
blockne soit pas à la fois un index et une colonne. - Attribuez aléatoirement les trois valeurs de traitement dans la colonne
'Treatment'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(____)
)