實作 randomized block design
你先前合作的這家製造公司,仍想針對員工生產力進行一些實驗。之前的兩個區組(block)是隨機設定的。這樣做可行,但若能依相似特徵來分組會更好。
這次一樣載入相同的員工資料,但放在名為 productivity 的 DataFrame 中,另外還包含 1200 位同事。資料也包含一個以每小時產出單位計算的員工 'productivity_score' 欄位。這個欄位已被分箱成三組,以便依相似的生產力值建立區組。公司想在全公司推行一個新的獎勵方案,包含三種選項('Bonus'、'Profit Sharing' 和 'Work from Home'),並隨機指派處置。
numpy 與 pandas 已分別以 np 與 pd 載入。
本練習屬於課程
Python 的實驗設計
練習說明
- 將
block打散重排,建立新的 DataFrameprod_df。 - 重設索引,避免
block同時是索引與欄位。 - 在
'Treatment'欄位中隨機指派三種處置值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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(____)
)