CommencezCommencez 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 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

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