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 travailleurs. Auparavant, les deux blocs étaient définis au hasard. 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, mais cette fois dans un DataFrame appelé productivity comprenant 1200 autres collègues. On y trouve aussi une colonne 'productivity_score' pour chaque travailleur, basée sur le nombre d'unités produites par heure. Cette colonne a été discrétisée en trois groupes afin de créer des blocs selon des niveaux de productivité similaires. L'entreprise souhaite appliquer un nouveau programme d'incitatifs avec trois options ('Bonus', 'Profit Sharing' et 'Work from Home') à l'échelle de l'organisation, en attribuant les traitements de façon aléatoire.
numpy et pandas sont chargés sous les alias np et pd.
Cette activité fait partie du cours
Conception d'expériences en Python
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(____)
)