在员工分块内进行 ANOVA
基于您先前对这家制造企业的分析(按不同分块考察员工生产率并引入激励方案),现在我们将更深入地探索数据。企业在 productivity DataFrame 中补充了更完整的数据,包括额外的 1200 名员工及其 productivity_score,并按生产率水平将员工分成 3 个分块。每位员工被随机分配到 3 种激励方案之一:'Bonus'、'Profit Sharing' 或 'Work from Home'。
在评估这些激励处理对生产率的整体影响之前,首先需要验证初始的处理分配在不同生产率分块之间确实是随机且均衡的。这样,处理后观察到的生产率差异才更可能归因于激励方案本身,而非分块中原有的差异。
scipy.stats 中的 f_oneway() 函数已为您加载。
本练习是课程的一部分
Python 实验设计
练习说明
- 按表示数据中不同分块的列对
prod_df分组。 - 使用一个 lambda 函数在每个分块内应用 ANOVA 检验,并正确指定
lambda函数的参数。 - 在每个分块内的各个处理组中,根据
'Treatment'列的取值筛选prod_df,并选择'productivity_score'列。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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)