ANOVA dentro de quarteirões de funcionários
Com base em suas análises anteriores com a empresa de manufatura, em que a produtividade dos funcionários foi examinada em diferentes blocos e um programa de incentivo foi introduzido, agora você está se aprofundando nos dados. A empresa, equipada com um conjunto de dados mais abrangente no DataFrame de produtividade, incluindo 1.200 funcionários adicionais e seus productivity_score
, estruturou a força de trabalho em três blocos com base nos níveis de produtividade. Cada funcionário recebeu aleatoriamente uma das três opções de incentivo: 'Bonus'
, 'Profit Sharing'
, ou 'Work from Home'
.
Antes de avaliar o impacto total desses tratamentos de incentivo sobre a produtividade, é fundamental verificar se a atribuição do tratamento inicial foi de fato aleatória e equitativa entre os diferentes blocos de produtividade. Essa etapa garante que quaisquer diferenças observadas na produtividade após o tratamento possam ser atribuídas com segurança aos próprios programas de incentivo, em vez de disparidades pré-existentes nos blocos.
A função f_oneway()
de scipy.stats
foi carregada para você.
Este exercício faz parte do curso
Projeto experimental em Python
Instruções do exercício
- Agrupe
prod_df
pela coluna apropriada que representa diferentes blocos em seus dados. - Use uma função lambda para aplicar o teste ANOVA em cada bloco, especificando o argumento da função
lambda
. - Para cada grupo de tratamento dentro dos blocos, filtre
prod_df
com base nos valores da coluna'Treatment'
e selecione a coluna'productivity_score'
.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)