Implementare un randomized block design
L’azienda manifatturiera con cui hai lavorato in precedenza è ancora interessata a condurre esperimenti sulla produttività dei lavoratori. In passato, i due blocchi erano impostati in modo casuale. Anche se può funzionare, spesso è meglio raggruppare i soggetti in base a caratteristiche simili.
Gli stessi dipendenti sono stati nuovamente caricati, questa volta in un DataFrame chiamato productivity che include anche altri 1200 colleghi. È presente anche una colonna 'productivity_score' del lavoratore, basata sulle unità prodotte per ora. Questa colonna è stata suddivisa in tre gruppi per creare blocchi con valori di produttività simili. L’azienda desidera applicare un nuovo programma di incentivi con tre opzioni ('Bonus', 'Profit Sharing' e 'Work from Home') a livello aziendale, assegnando i trattamenti in modo casuale.
numpy e pandas sono già caricati rispettivamente come np e pd.
Questo esercizio fa parte del corso
Progettazione Sperimentale in Python
Istruzioni dell'esercizio
- Mescola i
blockper creare un nuovo DataFrame chiamatoprod_df. - Reimposta l’indice in modo che
blocknon sia sia indice sia colonna. - Assegna casualmente i tre valori di trattamento nella colonna
'Treatment'.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____)
)