Kom igångKom igång gratis

ANOVA inom anställdas block

Med utgångspunkt i dina tidigare analyser av tillverkningsföretaget, där arbetarproduktiviteten undersöktes över olika block och ett incitamentsprogram infördes, ska du nu fördjupa dig ytterligare i data. Företaget har en mer omfattande datamängd i DataFrame:en productivity, som inkluderar 1 200 ytterligare anställda och deras productivity_score. Arbetsstyrkan är strukturerad i tre block baserade på produktivitetsnivåer. Varje anställd har slumpmässigt tilldelats ett av tre incitamentsalternativ: 'Bonus', 'Profit Sharing' eller 'Work from Home'.

Innan du bedömer den fulla effekten av dessa incitamentsbehandlingar på produktiviteten är det viktigt att verifiera att den initiala behandlingstilldelningen verkligen var slumpmässig och rättvis över de olika produktivitetsblocken. Det här steget säkerställer att eventuella observerade skillnader i produktivitet efter behandlingen med säkerhet kan tillskrivas incitamentsprogrammen själva, snarare än redan befintliga skillnader mellan blocken.

Funktionen f_oneway() från scipy.stats har redan importerats åt dig.

Den här övningen är en del av kursen

Experimentell design i Python

Visa kurs

Övningsinstruktioner

  • Gruppera prod_df efter den kolumn som representerar de olika blocken i din data.
  • Använd en lambda-funktion för att tillämpa ANOVA-testet inom varje block och ange lambda-funktionens argument.
  • För varje behandlingsgrupp inom blocken, filtrera prod_df baserat på värdena i kolumnen 'Treatment' och välj kolumnen 'productivity_score'.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod