CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Mélangez les block pour créer un nouveau DataFrame nommé prod_df.
  • Réinitialisez l’index afin que block ne 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(____)
)
Modifier et exécuter le code