檢定力分析 - 第一部分
接下來我們進入檢定力分析。通常你會希望任何實驗或 A/B 測試至少有 80% 的檢定力。要達成這點,其中一個方法是計算達到 80% 檢定力所需的樣本數。
假設你負責一個新聞媒體網站,目標是提升使用者在網站上停留的時間。現在使用者停留時間服從常態分配,平均為 1 分鐘、標準差為 0.5 分鐘。你打算推出一個能更快載入頁面的功能,並想知道要測得網站停留時間提升 5% 所需的樣本數。
在這個練習中,我們會先建立執行單次模擬的架構,進行一次 t 檢定,並計算 p 值。
本練習屬於課程
Python 的統計模擬
練習說明
- 將
effect_size初始化為 5%,control_mean為 1,control_sd為 0.5。 - 使用
np.random.normal(),依你初始化的數值各模擬一次control_time_spent與treatment_time_spent。 - 使用
st.ttest_ind()(其中st是已匯入的scipy.stats)對treatment_time_spent與control_time_spent執行 t 檢定。 - 當
p_value小於 0.05 時,統計顯著stat_sig應為True,否則為False。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Initialize effect_size, control_mean, control_sd
effect_size, sample_size, control_mean, control_sd = ____, 50, ____, ____
# Simulate control_time_spent and treatment_time_spent, assuming equal variance
control_time_spent = np.random.normal(loc=control_mean, scale=____, size=sample_size)
treatment_time_spent = np.random.normal(loc=____*(1+effect_size), scale=control_sd, size=____)
# Run the t-test and get the p_value
t_stat, p_value = st.ttest_ind(____, ____)
stat_sig = p_value < ____
print("P-value: {}, Statistically Significant? {}".format(p_value, stat_sig))