ANOVA au sein des blocs d’employés
En vous appuyant sur vos analyses précédentes avec l’entreprise manufacturière, où la productivité des employés a été étudiée à travers différents blocs et où un programme d’incitation a été introduit, vous allez maintenant approfondir les données. L’entreprise dispose d’un jeu de données plus complet dans le DataFrame de productivité, incluant 1 200 employés supplémentaires et leur productivity_score, et a structuré les effectifs en trois blocs en fonction des niveaux de productivité. Chaque employé a été assigné aléatoirement à l’une des trois incitations : 'Bonus', 'Profit Sharing' ou 'Work from Home'.
Avant d’évaluer l’impact global de ces traitements d’incitation sur la productivité, il est crucial de vérifier que l’assignation initiale des traitements était bien aléatoire et équilibrée entre les différents blocs de productivité. Cette étape garantit que toute différence observée de productivité après traitement pourra être attribuée aux programmes d’incitation eux‑mêmes, et non à des disparités préexistantes entre les blocs.
La fonction f_oneway() de scipy.stats a été chargée pour vous.
Cet exercice fait partie du cours
<cours>Conception expérimentale en Python</cours>Instructions de l’exercice
- Regroupez
prod_dfpar la colonne appropriée qui représente les différents blocs de vos données. - Utilisez une fonction lambda pour appliquer le test ANOVA au sein de chaque bloc, en précisant l’argument de la fonction
lambda. - Pour chaque groupe de traitement à l’intérieur des blocs, filtrez
prod_dfselon les valeurs de la colonne'Treatment'et sélectionnez la colonne'productivity_score'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Perform the within blocks ANOVA, first grouping by block
within_block_anova = prod_df.groupby('____').apply(
# Set function
lambda x: ____(
# Filter Treatment values based on outcome
x[x['____'] == '____']['____'],
x[x['____'] == '____']['____'],
x[x['____'] == '____']['____'])
)
print(within_block_anova)