書籤    
鞋碼換算    
根號化簡    
梯形面積    
圓的計算    
扇形面積    
橢圓面積    
圓柱體積    
球的體積    
圓錐體積    
圓管體積    
年齡計算    
天數計算    
複利計算    
單利計算    
利息計算    
現值計算    
ROI 計算機    
IRR 計算機    
GDP 計算機    
ROAS 計算    
BMI 計算機    
BMR 計算機    
1RM 計算機    
進位轉換    
薪資換算    
油錢計算    
油耗計算    
坡度計算    
   新增
機率與隨機計算工具
獨立事件機率
獨立事件機率
兩事件機率反推
兩事件機率反推
重複試驗機率
重複試驗機率
條件機率與貝氏定理
條件機率與貝氏定理
期望值計算機
期望值計算機
二項分布計算機
二項分布計算機
排列組合計算
排列組合計算
環狀排列計算
環狀排列計算
重複組合計算
重複組合計算
亂數產生器
亂數產生器
平均與統計計算工具
平均數計算機
平均數計算機
眾數中位數計算
眾數中位數計算
標準差計算機
標準差計算機
四分位數計算機
四分位數計算機
次數分配表
次數分配表
相關係數計算機
相關係數計算機
常態分布機率
常態分布機率
z 分數計算機
z 分數計算機
信賴區間計算機
信賴區間計算機
樣本數計算機
樣本數計算機
捉放法與抽樣調查
捉放法與抽樣調查
p 值計算機
p 值計算機
比例與百分比計算工具
百分比計算機
百分比計算機
增減率計算機
增減率計算機
百分比差異
百分比差異
百分誤差計算機
百分誤差計算機
比例計算機
比例計算機
打折計算機
打折計算機
營業稅計算機
營業稅計算機
毛利率計算機
毛利率計算機
速度計算工具
速率計算機
速率計算機
密度與濃度計算工具
密度計算機
密度計算機
莫耳濃度計算機
莫耳濃度計算機
分子量/莫耳質量
分子量/莫耳質量
物理與電學計算工具
歐姆定律計算
歐姆定律計算
瓦數↔安培換算
瓦數↔安培換算
電阻色碼計算
電阻色碼計算
電壓降計算
電壓降計算
單位換算計算工具
坪↔平方公尺換算
坪↔平方公尺換算
重量單位換算
重量單位換算
鞋碼換算
鞋碼換算
整數與正負數計算工具
除法直式計算
除法直式計算
最小公倍數計算
最小公倍數計算
最大公因數計算
最大公因數計算
正負數計算機
正負數計算機
質因數分解
質因數分解
一次不定方程式
一次不定方程式
同餘與餘數計算
同餘與餘數計算
因數計算機
因數計算機
羅馬數字轉換
羅馬數字轉換
分數、小數與四捨五入計算工具
分數計算機
分數計算機
帶分數計算機
帶分數計算機
約分計算機
約分計算機
分數換小數
分數換小數
小數換分數
小數換分數
四捨五入計算機
四捨五入計算機
方程式與不等式計算工具
一元一次方程式
一元一次方程式
聯立方程式
聯立方程式
一元二次方程式
一元二次方程式
絕對值方程式
絕對值方程式
一元二次不等式
一元二次不等式
多項式與乘法展開計算工具
二項式定理
二項式定理
平方根與 n 次方根計算工具
根號化簡
根號化簡
開根號計算
開根號計算
指數與對數計算工具
次方計算機
次方計算機
對數計算機
對數計算機
常用對數與位數
常用對數與位數
科學記號換算
科學記號換算
科學記號運算
科學記號運算
半衰期計算機
半衰期計算機
複數計算工具
複數計算機
複數計算機
複數極式轉換
複數極式轉換
棣美弗定理
棣美弗定理
函數與圖形計算工具
直線斜率計算
直線斜率計算
一次函數計算機
一次函數計算機
正比反比計算機
正比反比計算機
二次函數 y=ax²
二次函數 y=ax²
兩點距離公式
兩點距離公式
空間兩點距離
空間兩點距離
內分點與外分點
內分點與外分點
點到直線的距離
點到直線的距離
經緯度距離計算
經緯度距離計算
配方法計算機
配方法計算機
圓方程式計算機
圓方程式計算機
圓錐曲線計算機
圓錐曲線計算機
極坐標轉換
極坐標轉換
數列計算工具
等差數列計算
等差數列計算
等比數列計算
等比數列計算
費氏數列計算
費氏數列計算
遞迴關係式計算
遞迴關係式計算
向量計算工具
向量計算機
向量計算機
向量外積計算
向量外積計算
矩陣計算工具
矩陣計算機
矩陣計算機
行列式計算機
行列式計算機
反矩陣計算
反矩陣計算
平面圖形計算工具
sin cos tan 計算
sin cos tan 計算
度與弧度換算
度與弧度換算
三角函數疊合
三角函數疊合
三角形計算機
三角形計算機
三角形面積計算
三角形面積計算
直角三角形計算
直角三角形計算
畢氏定理計算
畢氏定理計算
多邊形內角外角
多邊形內角外角
相似比與面積比
相似比與面積比
平行線與角
平行線與角
長方形面積
長方形面積
平行四邊形面積
平行四邊形面積
梯形面積
梯形面積
圓的計算
圓的計算
扇形面積
扇形面積
圓周角定理
圓周角定理
橢圓面積
橢圓面積
立體圖形計算工具
正方體體積
正方體體積
正方體表面積
正方體表面積
長方體體積
長方體體積
長方體表面積
長方體表面積
圓柱體積
圓柱體積
圓柱表面積
圓柱表面積
球的體積
球的體積
球的表面積
球的表面積
球冠的體積
球冠的體積
球冠的表面積
球冠的表面積
橢球的體積
橢球的體積
橢球的表面積
橢球的表面積
四角錐體積
四角錐體積
四角錐表面積
四角錐表面積
圓錐體積
圓錐體積
圓錐表面積
圓錐表面積
圓錐台體積
圓錐台體積
圓錐台表面積
圓錐台表面積
圓管體積
圓管體積
膠囊形體積
膠囊形體積
膠囊表面積
膠囊表面積
日期與時間計算工具
年齡計算
年齡計算
天數計算
天數計算
幾天後的日期
幾天後的日期
幾小時後的日期時間
幾小時後的日期時間
星期幾查詢
星期幾查詢
時間加減計算機
時間加減計算機
時差計算機
時差計算機
工時計算機
工時計算機
時間差計算機
時間差計算機
打卡工時計算
打卡工時計算
金融與經濟計算工具
複利計算
複利計算
單利計算
單利計算
利息計算
利息計算
財務計算機 TVM
財務計算機 TVM
現值計算
現值計算
未來值計算
未來值計算
ROI 計算機
ROI 計算機
IRR 計算機
IRR 計算機
回收期間計算
回收期間計算
平均報酬率計算
平均報酬率計算
GDP 計算機
GDP 計算機
網路行銷與廣告指標計算工具
CTR 點擊率計算
CTR 點擊率計算
CVR 轉換率計算
CVR 轉換率計算
CPC、CPM、CPA 計算
CPC、CPM、CPA 計算
ROAS 計算
ROAS 計算
損益平衡 CPA
損益平衡 CPA
LTV 顧客終身價值
LTV 顧客終身價值
CAC 顧客取得成本
CAC 顧客取得成本
流失率計算
流失率計算
A/B 測試顯著性
A/B 測試顯著性
A/B 測試樣本數
A/B 測試樣本數
SEO 流量預估
SEO 流量預估
損益平衡點計算
損益平衡點計算
成本率毛利率換算
成本率毛利率換算
CAGR 計算機
CAGR 計算機
健康與健身計算工具
BMI 計算機
BMI 計算機
睡眠週期計算
睡眠週期計算
熱量計算機
熱量計算機
BMR 計算機
BMR 計算機
TDEE 計算機
TDEE 計算機
理想體重計算機
理想體重計算機
體脂率計算機
體脂率計算機
去脂體重計算機
去脂體重計算機
消耗熱量計算機
消耗熱量計算機
蛋白質計算機
蛋白質計算機
三大營養素計算
三大營養素計算
碳水攝取量計算
碳水攝取量計算
脂肪攝取量計算
脂肪攝取量計算
孩子身高預測
孩子身高預測
運動計算工具
高爾夫差點計算
高爾夫差點計算
配速計算機
配速計算機
1RM 計算機
1RM 計算機
目標心跳率計算
目標心跳率計算
氣象計算工具
體感溫度計算
體感溫度計算
風寒效應計算
風寒效應計算
露點溫度計算
露點溫度計算
電腦計算工具
進位轉換
進位轉換
子網路計算機
子網路計算機
下載時間計算
下載時間計算
家計與水電瓦斯費計算工具
家電電費計算
家電電費計算
度數算電費/反推
度數算電費/反推
年耗電量算電費
年耗電量算電費
冷氣坪數計算
冷氣坪數計算
冷氣電費計算
冷氣電費計算
暖氣電費比較
暖氣電費比較
瓦斯與電費比較
瓦斯與電費比較
換 LED 省多少
換 LED 省多少
薪資換算
薪資換算
家庭收支計算
家庭收支計算
汽車計算工具
油錢計算
油錢計算
電動車充電費用
電動車充電費用
電動車 vs 油車
電動車 vs 油車
油耗計算
油耗計算
輪胎尺寸計算
輪胎尺寸計算
太陽能發電與儲能計算工具
太陽能發電量
太陽能發電量
太陽能板片數
太陽能板片數
太陽能回本年限
太陽能回本年限
儲能電池容量試算
儲能電池容量試算
居家與 DIY計算工具
磁磚數量計算
磁磚數量計算
樓梯尺寸計算
樓梯尺寸計算
混凝土用量計算
混凝土用量計算
房間牆面積計算
房間牆面積計算
壁紙用量計算
壁紙用量計算
油漆用量計算
油漆用量計算
木地板片數計算
木地板片數計算
外牆面積計算
外牆面積計算
碎石用量計算
碎石用量計算
水泥砂漿配比
水泥砂漿配比
坡度計算
坡度計算
木材裁切計算
木材裁切計算
建蔽率、容積率
建蔽率、容積率
地板捲材用量
地板捲材用量
隔熱材用量計算
隔熱材用量計算
窗簾尺寸計算
窗簾尺寸計算
電視尺寸與距離
電視尺寸與距離
培養土用量計算
培養土用量計算
草皮用量計算
草皮用量計算
空心磚數量計算
空心磚數量計算
紅磚數量計算
紅磚數量計算
木棧板材料計算
木棧板材料計算
坡道長度計算
坡道長度計算
螺絲導孔與長度
螺絲導孔與長度
換氣量計算
換氣量計算
油漆稀釋計算
油漆稀釋計算
踢腳板長度計算
踢腳板長度計算
百葉窗捲簾尺寸
百葉窗捲簾尺寸
掛畫高度與位置
掛畫高度與位置
排水坡度與高低差
排水坡度與高低差
螺絲數量計算
螺絲數量計算
木材才數計算
木材才數計算
圍籬材料計算
圍籬材料計算
木材收縮計算
木材收縮計算
矽利康用量計算
矽利康用量計算
房間熱損失計算
房間熱損失計算
家具搬入計算
家具搬入計算
搬家紙箱數量
搬家紙箱數量
收納容量計算
收納容量計算
板材裁切計算
板材裁切計算
層板承重計算
層板承重計算

A/B 測試樣本數計算機(由 MDE、顯著水準、檢定力算出每組人數與所需天數)

選「求所需樣本數」時,請輸入基準 CVR、想偵測的提升幅度(MDE)、顯著水準和檢定力,再按「計算」。會算出 A、B 每組的所需樣本數(無條件進位)和合計,填入每日流量還會算出所需天數。把「要求的項目」切換成檢定力,就能固定每組的樣本數,改求檢定力 1 − β。

CVR 和提升幅度請以 % 的數值輸入(3% 請輸入「3」,提升 10% 請輸入「10」)。提升幅度可以用「相對 %」(3% → 3.3% 是 10%)或「百分點」(3% → 3.3% 是 0.3)指定。每日流量請填 A、B 兩組的合計(測試網頁的全部造訪數)。
計算結果與圖表
在左側填入數值並按下「計算」後,這裡會顯示結果和「提升幅度 → 所需樣本數」的圖表。

這個頁面可以做什麼

  • 只要輸入基準 CVR(目前 A 版本的轉換率)、想偵測的提升幅度(最小可偵測效果,簡稱 MDE,以相對 % 或百分點指定)、顯著水準 \(\alpha\)(雙尾/單尾)和檢定力 \(1-\beta\),就能算出 A/B 測試每組需要的樣本數(無條件進位)和合計
  • 「CVR 3% 的網頁,要偵測 10% 的提升(3% → 3.3%),A、B 各需要多少人?」測試開始前最重要的問題,這一頁就能解決
  • 填入每日流量(選填),還能知道湊滿所需人數要幾天(無條件進位)
  • 反過來,「每組只能湊到這麼多人」時,可以固定樣本數,反推檢定力 \(1-\beta\)(真的有差異時能把它找出來的機率)
  • 改變提升幅度時所需樣本數如何變化的圖表、公式的簡單解說,以及可直接複製的 Excel、Google 試算表、Python 公式,都整理在這一頁
這個頁面專門用於確認「A 版本和 B 版本的 CVR(轉換率)有沒有差異」的 A/B 測試,使用兩樣本比例 z 檢定的標準公式。想知道問卷要多少人才能精準掌握 1 個比率,請用「樣本數計算機」;要從已收集的結果讀出 p 值,請用「p 值計算機」。湊滿所需樣本數,並不代表顯著的結果就一定是真的效果,也請閱讀公式解說中的注意事項。

這個計算有什麼用?

規劃電商網站「購買按鈕」的 A/B 測試

假設電商網站商品頁的 CVR 是 2%,想偵測新按鈕文字帶來相對 10% 的提升(2% → 2.2%)。在顯著水準 5%(雙尾)、檢定力 80% 下,每組約需 80,682 人,合計約 161,364 人。
用幾十人、幾百人比較(「上週 B 比較好」),無法分辨偶然的差和真正的差。開始前先算出所需樣本數,就能避免花好幾週跑一個根本得不出答案的測試。

決定 B2B SaaS 的到達網頁要測試幾天

某個到達網頁預約展示的 CVR 是 5%。要偵測提升 1 個百分點(5% → 6%),每組需要 8,158 人,合計 16,316 人。每天造訪 300 次的話,\(16316 \div 300 \approx 54.4\),所以是 55 天;想平均星期的影響,就是 8 週。
有人要求「2 週就要看到結果」時,可以用數字說明:「2 週(4,200 次造訪,每組 2,100 人)的話,MDE 要放大到約 3 個百分點(5% → 8%,每組需要 1,059 人)。」

測試電子報的主旨(比較開信率)

電子報的開信率是 20%,想偵測新主旨帶來 2 個百分點的提升(20% → 22%),每組要寄給 6,510 人,合計 13,020 人(顯著水準 5%、檢定力 80%)。
開信率這種比率高的指標,和幾 % 的 CVR 相比,用比較少的人數就能看出差異。這是因為公式中 \(p(1-p)\) 的部分不同:同樣是「2 個百分點」,不同指標需要的樣本數也不同。

下「沒有差異」的結論前,先確認檢定力

假設在 CVR 3% 的網頁上,以相對 10% 的提升為目標,每組 5,000 人跑完測試,結果「無顯著差異」。反推檢定力只有約 13.5%,也就是說,這個測試的設計本來就是 10 次中有 8 次以上會漏掉真正的改善。
這時正確的結論不是「沒有效果」,而是「這個樣本數無法判斷」。反推檢定力,可以避免誤讀測試結果而放棄好點子。

改善 App 的新手教學,比較留存率

某個 App 的次日留存率是 40%。要偵測新手教學帶來相對 10% 的提升(40% → 44%),每組約 2,389 位新使用者、合計約 4,778 人就夠了(顯著水準 5%、檢定力 80%)。
留存率這種接近 50% 的指標波動大,但比率的差(4 個百分點)也大,所以比針對幾 % 的 CVR 的測試更快得到結果。為每個指標估算樣本數,也能幫助決定要先做哪個改善。

不想漏掉的測試,用檢定力 90% 來規劃

像改變價格呈現方式這種漏掉好點子損失很大的測試,可以把檢定力從 80% 提高到 90%。CVR 3%、相對 10% 的提升時,每組所需樣本數會從 53,211 人增加到 71,233 人(約 1.34 倍)。
這個計算能具體看出要把漏判減半(從 20% 降到 10%)需要多多少人,就能依測試的重要程度,調整樣本數和測試期間。

公式與圖示

求目標 CVR(期望 B 版本達到的 CVR)的公式
數學寫法 (一般的數學式)
\(p_2\) \(=\) \(p_1\) \(\times\) \(\left(1 + \dfrac{r}{100}\right)\)
\(p_2\) \(=\) \(p_1\) \(+\) \(d\)
文字寫法 (把符號換成文字的公式)
③ 目標 CVR \(p_2\) \(=\) ① 基準 CVR \(p_1\) \(\times\) ② \(1 +\) 相對提升幅度 \(r \div 100\)
目標 CVR \(p_2\) \(=\) 基準 CVR \(p_1\) \(+\) ④ 以百分點表示的提升幅度 \(d\)
用文字讀公式
① 把 基準 CVR \(p_1\)
② 乘以 \(1 +\) 相對提升幅度 \(r \div 100\) ,
③ 就得到 目標 CVR \(p_2\) 。
④ (以百分點指定提升幅度時,把基準 CVR \(p_1\) 直接加上 以百分點表示的提升幅度 \(d\) 就是目標 CVR)
簡單範例
基準 CVR 是 3%,想偵測相對 10% 的提升時,目標 CVR 是
目標 CVR \(p_2\) \(=\) 基準 CVR(3%) \(\times\) \(1 + 10 \div 100\)
\(3 \times (1 + 10 \div 100) = 3 \times 1.1 = 3.3\ \ (3.3\%)\)
思考重點
請注意「提升 10%」有 2 種意思。用相對 % 來說,是「3% 再加上 3% 的一成 = 3.3%」;用百分點來說,是「3% + 10 個百分點 = 13%」。兩者算出的所需樣本數完全不同。行銷上說「CVR 提升 10%」,通常指相對 %,這也是這個頁面的預設值。 目標 CVR \(p_2\) 不是「B 版本實際會變成這樣」的預測,而是「至少這麼大的差不想漏掉」的界線(MDE)。真正的差比這個小時,即使湊滿樣本數,也很可能無法得到顯著差異。
求每組所需樣本數的公式(兩樣本比例 z 檢定)
圖示
數學寫法 (一般的數學式)
\(n\) \(=\) \(\bigl(\) \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) \(+\) \(z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) \(\bigr)^2\) \(\div\) \((p_2 - p_1)^2\)
文字寫法 (把符號換成文字的公式)
④ 每組所需樣本數 \(n\) \(=\) \(\bigl(\) ① 顯著水準項 \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) \(+\) ② 檢定力項 \(z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) \(\bigr)^2\) \(\div\) ③ 想偵測的差 \((p_2 - p_1)\) 的平方
用文字讀公式
① 把 顯著水準項(由顯著水準決定的 \(z_{\alpha/2}\) × 沒有差異時的波動 \(\sqrt{2\bar{p}(1-\bar{p})}\))
② 加上 檢定力項(由檢定力決定的 \(z_{\beta}\) × 有差異時的波動 \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\)) 後取平方,
③ 再除以 想偵測的差 \((p_2 - p_1)\) 的平方 ,
④ 就得到 每組所需樣本數 \(n\) (小數部分無條件進位)
簡單範例
基準 CVR 3%(0.03)、目標 3.3%(0.033)、顯著水準 5% 的雙尾檢定(\(z_{\alpha/2} = 1.9600\))、檢定力 80%(\(z_{\beta} = 0.8416\))時,每組所需樣本數是
每組所需樣本數 \(n\) \(=\) \(\bigl(\) \(1.9600 \times \sqrt{2 \times 0.0315 \times 0.9685}\) \(+\) \(0.8416 \times \sqrt{0.03 \times 0.97 + 0.033 \times 0.967}\) \(\bigr)^2\) \(\div\) \((0.033 - 0.03)^2\)
\(\bar{p} = (0.03 + 0.033) \div 2 = 0.0315\)
\(1.9600 \times \sqrt{2 \times 0.0315 \times 0.9685} = 1.9600 \times 0.24701 \approx 0.48414\)
\(0.8416 \times \sqrt{0.03 \times 0.97 + 0.033 \times 0.967} = 0.8416 \times 0.24700 \approx 0.20788\)
\((0.48414 + 0.20788)^2 \div (0.033 - 0.03)^2 = 0.47889 \div 0.000009 \approx 53210.3 \rightarrow 53211\)
思考重點
\(\bar{p}\) 是 2 個 CVR 的平均 \((p_1 + p_2) \div 2\),也就是假設沒有差異時共同的 CVR。\(\sqrt{2\bar{p}(1-\bar{p})}\) 和 \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) 都表示 CVR 的差因偶然而波動的大小,前者是「沒有差異時」,後者是「有差異時」。 從公式可以看出,所需樣本數要除以想偵測的差的平方。所以把 MDE 減半,樣本數會變成約 4 倍;減為三分之一,會變成約 9 倍。這就是想抓到很小的提升時,所需人數會急速增加的原因。 由顯著水準決定的 z 值,雙尾檢定是 \(z_{\alpha/2}\)(5% 為 1.9600,1% 為 2.5758,10% 為 1.6449),單尾檢定是 \(z_{\alpha}\)(5% 為 1.6449,1% 為 2.3263,10% 為 1.2816)。由檢定力決定的 z 值 \(z_{\beta}\),80% 為 0.8416,90% 為 1.2816。 教科書或其他工具有時會用把 2 種波動合併成 \(\sqrt{2\bar{p}(1-\bar{p})}\) 的簡化公式:\(n \approx 2\bar{p}(1-\bar{p})(z_{\alpha/2}+z_{\beta})^2 \div (p_2-p_1)^2\)。這個計算機使用上方卡片的公式(分開 2 種波動),並在結果中一併顯示簡化公式的值供參考。CVR 小時,兩者幾乎沒有差別(上面的例子是 53,211 對 53,212)。 湊滿所需樣本數,不代表顯著的結果就一定是真的效果。公式成立的前提是:訪客是隨機分配的、不一再偷看結果而提前停止、同時比較多個指標或多個 B 版本時(多重比較)要用更嚴格的界線。
求所需天數的公式(用每日流量)
數學寫法 (一般的數學式)
\(D\) \(=\) \(\lceil\) \(2n\) \(\div\) \(V\) \(\rceil\)
文字寫法 (把符號換成文字的公式)
③ 所需天數 \(D\) \(=\) \(\lceil\) ① A、B 合計的樣本數 \(2n\) \(\div\) ② 每日流量 \(V\) \(\rceil\)
用文字讀公式
① 把 A、B 合計的樣本數 \(2n\)(每組所需樣本數 \(n\) 的 2 倍)
② 除以 每日流量 \(V\) ,小數部分無條件進位(\(\lceil\ \rceil\) 是無條件進位的符號),
③ 就得到 所需天數 \(D\)
簡單範例
每組所需樣本數是 53,211,測試網頁每天有 2,000 次造訪時,所需天數是
所需天數 \(D\) \(=\) \(\lceil\) \(2 \times 53211\) \(\div\) 2,000 次 \(\rceil\)
\(2 \times 53211 \div 2000 = 106422 \div 2000 = 53.211 \rightarrow 54\)
思考重點
\(\lceil\ \rceil\) 是表示「無條件進位」的符號(上取整函數),所以 53.211 天會變成 54 天。訪客會平均分成 A、B 兩半,所以每日流量請填 A、B 的合計(測試網頁的全部造訪數)。 即使計算出來是 54 天,實際的測試通常會以「整週」來跑。CVR 會因星期幾而變化(平日和週末的訪客不同),跑 7 天、14 天……這樣的整週,就能讓星期的影響平均分散到兩組。這個例子規劃成 8 週(56 天)比較好。如果所需天數長達好幾個月,比較實際的做法是把 MDE 設大一點,或改在流量更多的網頁測試。
求檢定力的公式(固定每組樣本數時)
圖示
數學寫法 (一般的數學式)
\(z_{1-\beta}\) \(=\) \(\bigl(\) \(|p_2 - p_1|\sqrt{n}\) \(-\) \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) \(\bigr)\) \(\div\) \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\)
\(1-\beta\) \(=\) \(\Phi\bigl(\) \(z_{1-\beta}\) \(\bigr)\)
文字寫法 (把符號換成文字的公式)
④ 對應檢定力的 z 值 \(z_{1-\beta}\) \(=\) \(\bigl(\) ① 想偵測的差 \(|p_2 - p_1|\) × \(\sqrt{\text{每組樣本數 } n}\) \(-\) ② 顯著水準項 \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) \(\bigr)\) \(\div\) ③ 有差異時的波動 \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\)
⑥ 檢定力 \(1-\beta\) \(=\) \(\Phi\bigl(\) ⑤ 對應檢定力的 z 值 \(z_{1-\beta}\) \(\bigr)\)
用文字讀公式
① 從 想偵測的差 \(|p_2 - p_1|\) 乘以每組樣本數的平方根 \(\sqrt{n}\)
② 減去 顯著水準項 \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) ,
③ 再除以 有差異時的波動 \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) ,
④ 就得到 對應檢定力的 z 值 \(z_{1-\beta}\) 。
⑤ 用標準常態分布的累積分布函數 \(\Phi\) 求出小於或等於 對應檢定力的 z 值 \(z_{1-\beta}\) 的機率,
⑥ 就得到 檢定力 \(1-\beta\)
簡單範例
基準 CVR 3%、目標 3.3%、顯著水準 5% 的雙尾檢定(\(z_{\alpha/2} = 1.9600\)),每組只能湊到 30,000 人時,檢定力是
對應檢定力的 z 值 \(z_{1-\beta}\) \(=\) \(\bigl(\) \(0.003 \times \sqrt{30000}\) \(-\) \(1.9600 \times 0.24701\) \(\bigr)\) \(\div\) \(0.24700\)
\(0.003 \times \sqrt{30000} = 0.003 \times 173.205 \approx 0.51962\)
\((0.51962 - 0.48414) \div 0.24700 \approx 0.1436\)
\(1 - \beta = \Phi(0.1436) \approx 0.5571\ \ (55.71\%)\)
思考重點
這是把「求每組所需樣本數的公式」改寫成求 \(z_{\beta}\) 的形式。\(\Phi\)(讀作 phi)是標準常態分布的累積分布函數,會傳回 z 值小於或等於某個值的機率(\(\Phi(0.8416) \approx 0.80\),\(\Phi(1.2816) \approx 0.90\))。 上面的例子,檢定力只有約 56%。也就是說,即使 B 版本真的達到 3.3%,每組 30,000 人的測試也有將近一半的機率會判定為「沒有差異」。檢定力低於 80% 的測試,常常會漏掉真正的效果。用檢定力低的測試就斷定「沒有差異」,是太早下結論了。 嚴格來說,雙尾檢定還要加上另一側尾端(B 顯著變差的機率)。這個值非常小,所以這個計算機依照一般做法省略它。
A/B 測試每組的所需樣本數,用「(顯著水準項 + 檢定力項)的平方 ÷ 想偵測的差的平方」求出,小數部分無條件進位。把提升幅度減半,人數會變成約 4 倍,所以訣竅是先決定「至少多大的提升要能找出來(MDE)」。除以每日流量就是所需天數;固定人數再把公式改寫,就能求出檢定力。

符號與用語解說

符號

\(p_1\) p 下標 1 基準 CVR(A 版本、目前的轉換率)。\(p\) 取自 proportion(比率)或 probability(機率)的第一個字母,公式中把 3% 寫成 0.03 這樣的小數。
\(p_2\) p 下標 2 目標 CVR(期望 B 版本達到的轉換率)。相對 % 時是 \(p_1 (1 + r/100)\),百分點時是 \(p_1 + d\)。
\(\bar{p}\) p bar 2 個 CVR 的平均 \((p_1 + p_2) \div 2\),也就是假設「沒有差異」時共同的 CVR。上方的橫線(bar)在統計中是表示「平均」的記號。
\(r\) r 以相對 % 指定的提升幅度(MDE),取自 ratio(比率)的第一個字母,表示「基準 CVR 提升了幾 %」(3% → 3.3% 時 \(r = 10\))。
\(d\) d 以百分點指定的提升幅度(MDE),取自 difference(差)的第一個字母,就是 CVR 的差本身(3% → 3.3% 時 \(d = 0.3\) 個百分點)。
\(p_2 - p_1\) p 下標 2 減 p 下標 1 想偵測的差(把百分點寫成小數,0.3 個百分點就是 0.003)。所需樣本數要除以它的平方,所以差越小,人數增加得越快。
\(\alpha\) alpha 顯著水準:「其實沒有差異,卻判定為有差異」的機率(型一錯誤的機率),常用 5%(0.05)。alpha 是希臘字母的第 1 個,統計中用來表示「第 1 型」錯誤的機率。
\(\beta\) beta 「其實有差異,卻判定為沒有差異(漏掉)」的機率(型二錯誤的機率)。beta 是希臘字母的第 2 個,用來表示「第 2 型」錯誤的機率。
\(1-\beta\) 1 減 beta 檢定力:真的有差異時,能判定為有差異的機率,常用 80% 或 90%。
\(z_{\alpha/2}\) z 下標 alpha/2 雙尾檢定中對應顯著水準 \(\alpha\) 的 z 值(標準常態分布上側機率為 \(\alpha/2\) 的點)。5% 為 1.9600,1% 為 2.5758,10% 為 1.6449。單尾檢定則改用 \(z_{\alpha}\)(5% 為 1.6449)。
\(z_{\beta}\) z 下標 beta 對應檢定力 \(1-\beta\) 的 z 值(標準常態分布下側機率為 \(1-\beta\) 的點)。80% 為 0.8416,90% 為 1.2816。
\(z_{1-\beta}\) z 下標 1 − beta 在求檢定力的公式中,由樣本數反推出的 z 值。代入 \(\Phi\) 就是檢定力(和 \(z_{\beta}\) 是同一個東西,只是從要求的一方來寫)。
\(\Phi\) Phi(大寫) 標準常態分布的累積分布函數,會傳回 z 值小於或等於某個值的機率:\(\Phi(1.96) \approx 0.975\),\(\Phi(0.8416) \approx 0.80\)。希臘字母大寫 Phi 習慣用來表示這個函數。
\(n\) n 每組(A 版本、B 版本各自)的樣本數,取自 number(數)的第一個字母。A、B 合計是 \(2n\)。
\(\sqrt{\ \ }\) 根號 平方根:平方後等於該數的正數,例如 \(\sqrt{30000} \approx 173.205\)。求 CVR 的波動(標準差)時會用到。
\(V\) V 每日流量(測試網頁的全部造訪數=A、B 合計),取自 visits(造訪數)的第一個字母。
\(D\) D 所需天數,取自 days(天數)的第一個字母。
\(\lceil\ \rceil\) 上取整 表示無條件進位的符號(上取整函數),傳回大於或等於括號內數值的最小整數(\(\lceil 53.211 \rceil = 54\))。

用語

A/B 測試 把訪客隨機分成兩組,在同一期間分別顯示目前的版本(A)和新版本(B),比較哪一個成果(CVR 等)比較高的實驗。按鈕顏色、標題、價格的呈現方式、到達網頁的版面等修改是否真的有效,可以用資料而不是直覺來確認。
轉換率 訪客或點擊中完成購買、報名等成果(轉換)的比率,英文 Conversion Rate 的縮寫是 CVR。這個頁面的公式中,A 版本寫成 \(p_1\),B 版本寫成 \(p_2\)。
最小可偵測效果 英文 Minimum Detectable Effect,簡稱 MDE。「至少這麼大的提升要能找出來」的提升幅度下限,是規劃 A/B 測試時最先要決定的值。設得越小,所需樣本數增加得越快(和差的平方成反比),所以請選擇「對事業有意義的最小提升」。
顯著水準 「其實沒有差異,卻看到偶然的差而判定為有差異」這種失誤可以容許到多少的機率 \(\alpha\)。一般用 5%,也就是容許大約每 20 次有 1 次誤判。設得更嚴格(1%)時,所需樣本數會增加。
檢定力 「真的有差異時,能判定為有差異」的機率 \(1-\beta\),英文 statistical power。一般用 80%,也就是容許大約每 5 次漏掉 1 次真正的提升。檢定力低的測試說「沒有差異」,並不能當作沒有差異的證據。
型一錯誤 「其實沒有差異,卻說有差異」的錯誤(偽陽性)。容許它發生的機率就是顯著水準 \(\alpha\)。它和型二錯誤(漏掉)是一體兩面:壓低一個,另一個往往就會升高。要讓兩者都變小,最基本的方法是增加樣本數。
型二錯誤 「其實有差異,卻漏掉了」的錯誤(偽陰性)。它的機率是 \(\beta\),\(1-\beta\) 就是檢定力。它和型一錯誤(誤報)是一體兩面:壓低一個,另一個往往就會升高。要讓兩者都變小,最基本的方法是增加樣本數。
虛無假設 「A 版本和 B 版本的 CVR 沒有差異」這個檢定想要否定的假設。檢定會問:如果虛無假設成立,這些資料有多不尋常?夠不尋常時,就拒絕虛無假設,結果為「有差異」(採用對立假設)。
對立假設 「A 版本和 B 版本的 CVR 有差異」這個檢定想要證明的假設。虛無假設(沒有差異)被拒絕時就採用它。
雙尾檢定 把「B 比較高」和「B 比較低」都當作差異來偵測的檢定,用於不知道結果會偏向哪邊的一般 A/B 測試。所需樣本數比單尾檢定多,但也能抓到 B 變差的情況。
單尾檢定 只偵測「B 比較高」的檢定。所需樣本數比雙尾檢定少,但抓不到 B 變差的情況,所以必須在測試開始前就決定(看了結果才改成單尾是不正確的)。
兩樣本比例 z 檢定 用把差標準化後的 z 值和標準常態分布,判斷 2 組的比率(CVR 等)有沒有差異的檢定。這個頁面的公式就是求這個檢定所需的樣本數。各組的轉換次數夠多(參考標準是 5~10 以上)時,常態近似才會成立。
標準常態分布 平均數 0、標準差 1 的常態分布(左右對稱的鐘形)。z 值是它橫軸上的值,每個 z 值都對應一個機率,例如「1.96 右側的面積是 2.5%」。
累積分布函數 傳回「小於或等於某個值的機率」的函數。標準常態分布的累積分布函數寫成 \(\Phi\),出現在求檢定力的公式最後。Excel 用 NORM.S.DIST(第 2 個引數為 TRUE),Python 用 NormalDist().cdf 計算。
標準差 資料分散(波動)的大小。比率 \(p\) 的波動和 \(\sqrt{p(1-p)}\) 成正比。公式中的 \(\sqrt{2\bar{p}(1-\bar{p})}\) 和 \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\),就是兩組 CVR 之差的波動。
多重比較 同時比較多個 B 版本或多個指標。比較次數越多,至少有 1 個偶然看起來顯著的可能性就越高,所以需要校正,例如把顯著水準除以比較的次數(Bonferroni 校正)。
提前停止 在湊滿所需樣本數之前一再偷看結果(peeking),一出現顯著差異就停止測試。容易抓到偶然的差,原本以為顯著水準是 5%,實際上誤判的機率會高很多。這個頁面的公式,前提是先固定樣本數,再等到湊滿為止。

建議先了解的基礎知識

為了讓您「理解意義」地使用這個頁面的計算,這裡整理了建議先了解的基礎知識。
遇到卡關時,回頭複習這些內容是最快的方法。

比率與百分率(國小五年級,10~11 歲)
  • 能在 % 和小數之間互換(\(3\% = 0.03\)、\(0.033 = 3.3\%\))
  • 知道「相對 % 的增加」(3% 增加一成是 3.3%)和「百分點的增加」(3% + 0.3 個百分點 = 3.3%)的不同
平方根(國中八年級,13~14 歲)
  • 知道 \(\sqrt{a}\) 是「平方後等於 \(a\) 的正數」,並能用計算機求出 \(\sqrt{30000} \approx 173.2\) 這樣的值
  • 知道在除以平方的式子中,除數變成一半,答案會變成 4 倍(\((1/2)^2 = 1/4\))
機率的基礎(國中到高中,14~18 歲)
  • 能把「造訪 1,000 次中有 30 次購買」這樣的比率當作機率(0~1 的數)來處理
  • 對「其實沒有差異,也可能偶然出現差異」有感覺(擲硬幣 10 次出現 7 次正面並不稀奇)
常態分布與標準化(高中,15~18 歲)
  • 知道常態分布是左右對稱的鐘形,離平均數 1.96 個標準差的範圍內約占 95%
  • 知道 z 分數(標準分數)表示「離平均數有幾個標準差」
假設檢定的思考方式(高中到大學入門統計,15 歲以上)
  • 了解先立下「沒有差異」的虛無假設,如果資料在這個假設下很少見,就判定為「有差異」的檢定流程
  • 知道顯著水準 \(\alpha\)(沒有差異卻說有差異的機率)和檢定力 \(1-\beta\)(有差異時能找出來的機率)對應的是 2 種不同的失誤
無條件進位(國小四年級,9~10 歲)
  • 知道人數、天數不能是小數,所以要像 53210.3 人變成 53211 人、53.211 天變成 54 天這樣,用「無條件進位」變成整數的理由

用 Excel 計算的方法

把下方表格整個複製,貼到 Excel 的 A1 儲存格就能直接使用。
求「目標 CVR」的表格(以相對 % 指定)
基準 CVR p1(%) 3
相對提升幅度 r(%) 10
目標 CVR p2(%) =B1*(1+B2/100)
求「每組所需樣本數」的表格
基準 CVR p1(%) 3
目標 CVR p2(%) 3.3
顯著水準 α(%,雙尾) 5
檢定力 1−β(%) 80
z_α/2 =NORM.S.INV(1-B3/100/2)
z_β =NORM.S.INV(B4/100)
平均 CVR p̄ =(B1+B2)/2/100
每組所需樣本數 n(無條件進位) =ROUNDUP((B5*SQRT(2*B7*(1-B7))+B6*SQRT(B1/100*(1-B1/100)+B2/100*(1-B2/100)))^2/((B2-B1)/100)^2,0)
求「所需天數」的表格
每組所需樣本數 n 53211
每日流量 V(兩組合計) 2000
所需天數 D(無條件進位) =ROUNDUP(2*B1/B2,0)
求「檢定力」的表格(固定每組樣本數)
基準 CVR p1(%) 3
目標 CVR p2(%) 3.3
顯著水準 α(%,雙尾) 5
每組樣本數 n 30000
z_α/2 =NORM.S.INV(1-B3/100/2)
平均 CVR p̄ =(B1+B2)/2/100
z_1−β =(ABS(B2-B1)/100*SQRT(B4)-B5*SQRT(2*B6*(1-B6)))/SQRT(B1/100*(1-B1/100)+B2/100*(1-B2/100))
檢定力 1−β(%) =NORM.S.DIST(B7,TRUE)*100
貼上後,上方的列是輸入欄,最後一列會自動算出結果。
第 1 個表格的 B3 顯示 3.3(目標 CVR 3.3%),第 2 個表格的 B8 顯示 53211(每組所需樣本數),第 3 個表格的 B3 顯示 54(所需天數),第 4 個表格的 B8 顯示約 55.71(檢定力 55.71%)。
NORM.S.INV 把機率換成 z 值,NORM.S.DIST(第 2 個引數為 TRUE)把 z 值換成機率。單尾檢定時,把 z_α/2 公式中的「/2」刪掉,改成 =NORM.S.INV(1-B3/100)。ROUNDUP(…,0) 是無條件進位。

用 Google 試算表計算的方法

把下方表格整個複製,貼到 Google 試算表的 A1 儲存格就能直接使用。
求「目標 CVR」的表格(以相對 % 指定)
基準 CVR p1(%) 3
相對提升幅度 r(%) 10
目標 CVR p2(%) =B1*(1+B2/100)
求「每組所需樣本數」的表格
基準 CVR p1(%) 3
目標 CVR p2(%) 3.3
顯著水準 α(%,雙尾) 5
檢定力 1−β(%) 80
z_α/2 =NORM.S.INV(1-B3/100/2)
z_β =NORM.S.INV(B4/100)
平均 CVR p̄ =(B1+B2)/2/100
每組所需樣本數 n(無條件進位) =ROUNDUP((B5*SQRT(2*B7*(1-B7))+B6*SQRT(B1/100*(1-B1/100)+B2/100*(1-B2/100)))^2/((B2-B1)/100)^2,0)
求「所需天數」的表格
每組所需樣本數 n 53211
每日流量 V(兩組合計) 2000
所需天數 D(無條件進位) =ROUNDUP(2*B1/B2,0)
求「檢定力」的表格(固定每組樣本數)
基準 CVR p1(%) 3
目標 CVR p2(%) 3.3
顯著水準 α(%,雙尾) 5
每組樣本數 n 30000
z_α/2 =NORM.S.INV(1-B3/100/2)
平均 CVR p̄ =(B1+B2)/2/100
z_1−β =(ABS(B2-B1)/100*SQRT(B4)-B5*SQRT(2*B6*(1-B6)))/SQRT(B1/100*(1-B1/100)+B2/100*(1-B2/100))
檢定力 1−β(%) =NORM.S.DIST(B7,TRUE)*100
和 Excel 相同的公式可以直接使用(Google 試算表也有 NORM.S.INV、NORM.S.DIST、ROUNDUP)。把整個表格複製後貼到 A1 儲存格,再把 B 欄的輸入欄改成自己的數字即可。

用 Python 計算的方法

from math import sqrt, ceil
from statistics import NormalDist

base_cvr = 3.0          # 基準 CVR(%)
relative_mde = 10.0     # 想偵測的提升幅度(相對 %)
alpha = 0.05            # 顯著水準(雙尾)
power = 0.80            # 檢定力
daily_visits = 2000     # 每日流量(A、B 合計)

p1 = base_cvr / 100
p2 = p1 * (1 + relative_mde / 100)          # 目標 CVR
z_alpha = NormalDist().inv_cdf(1 - alpha / 2)  # 單尾檢定時改用 1 - alpha
z_beta = NormalDist().inv_cdf(power)
p_bar = (p1 + p2) / 2

n_exact = (z_alpha * sqrt(2 * p_bar * (1 - p_bar))
           + z_beta * sqrt(p1 * (1 - p1) + p2 * (1 - p2))) ** 2 / (p2 - p1) ** 2
n_per_group = ceil(n_exact)                  # 每組所需樣本數(無條件進位)
days = ceil(2 * n_per_group / daily_visits)  # 所需天數

print(f"目標 CVR:{p2 * 100:.4g}%")
print(f"每組所需樣本數:{n_per_group} 人(合計 {2 * n_per_group} 人)")
print(f"所需天數:{days} 天")

# 反過來求:每組 30,000 人時的檢定力
n_fixed = 30000
z_power = (abs(p2 - p1) * sqrt(n_fixed) - z_alpha * sqrt(2 * p_bar * (1 - p_bar))) \
          / sqrt(p1 * (1 - p1) + p2 * (1 - p2))
print(f"每組 {n_fixed} 人時的檢定力:{NormalDist().cdf(z_power) * 100:.2f}%")
只用標準函式庫就能執行(statistics.NormalDist 需要 Python 3.8 以上)。這個例子的目標 CVR 是 3.3%,每組所需樣本數是 53211 人(合計 106422 人),所需天數是 54 天,每組 30,000 人時的檢定力約 55.71%。請修改開頭的數值後執行。

用 LaTeX 等數學式語言的寫法(可直接複製)

求目標 CVR(期望 B 版本達到的 CVR)的公式
p₂ = p₁ × (1 + r/100)
p_2 = p_1 \left(1 + \dfrac{r}{100}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>p</mi><mn>2</mn></msub>
    <mo>=</mo>
    <msub><mi>p</mi><mn>1</mn></msub>
    <mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mi>r</mi><mn>100</mn></mfrac><mo>)</mo>
  </mrow>
</math>
p_2 = p_1 (1 + r/100)
p1*(1 + r/100)
p2 := p1*(1 + r/100);
p2 = p1*(1 + r/100);
p_2 = p_1 (1 + r/100)
求每組所需樣本數的公式(兩樣本比例 z 檢定)
n = (z_α/2 √(2p̄(1 − p̄)) + z_β √(p₁(1 − p₁) + p₂(1 − p₂)))² ÷ (p₂ − p₁)²
n = \dfrac{\left( z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})} + z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)} \right)^2}{(p_2 - p_1)^2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>n</mi>
    <mo>=</mo>
    <mfrac>
      <msup>
        <mrow>
          <mo>(</mo>
          <msub><mi>z</mi><mrow><mi>&#x3B1;</mi><mo>/</mo><mn>2</mn></mrow></msub>
          <msqrt><mn>2</mn><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>)</mo></msqrt>
          <mo>+</mo>
          <msub><mi>z</mi><mi>&#x3B2;</mi></msub>
          <msqrt>
            <msub><mi>p</mi><mn>1</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo>
            <mo>+</mo>
            <msub><mi>p</mi><mn>2</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>2</mn></msub><mo>)</mo>
          </msqrt>
          <mo>)</mo>
        </mrow>
        <mn>2</mn>
      </msup>
      <msup>
        <mrow><mo>(</mo><msub><mi>p</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo></mrow>
        <mn>2</mn>
      </msup>
    </mfrac>
  </mrow>
</math>
n = (z_(alpha/2) sqrt(2 bar p (1 - bar p)) + z_beta sqrt(p_1(1 - p_1) + p_2(1 - p_2)))^2 / (p_2 - p_1)^2
Ceiling[(za*Sqrt[2*pbar*(1 - pbar)] + zb*Sqrt[p1*(1 - p1) + p2*(1 - p2)])^2/(p2 - p1)^2]
n := ceil((za*sqrt(2*pbar*(1 - pbar)) + zb*sqrt(p1*(1 - p1) + p2*(1 - p2)))^2/(p2 - p1)^2);
n = ceil((za*sqrt(2*pbar*(1 - pbar)) + zb*sqrt(p1*(1 - p1) + p2*(1 - p2)))^2/(p2 - p1)^2);
n = (z_(α/2) √(2p̄(1 − p̄)) + z_β √(p_1(1 − p_1) + p_2(1 − p_2)))^2/(p_2 − p_1)^2
求所需天數的公式(用每日流量)
D = ⌈2n ÷ V⌉
D = \left\lceil \dfrac{2n}{V} \right\rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>D</mi>
    <mo>=</mo>
    <mo>&#x2308;</mo>
    <mfrac><mrow><mn>2</mn><mi>n</mi></mrow><mi>V</mi></mfrac>
    <mo>&#x2309;</mo>
  </mrow>
</math>
D = |~ (2n)/V ~|
Ceiling[2*n/v]
days := ceil(2*n/V);
D = ceil(2*n/V);
D = ⌈2n/V⌉
求檢定力的公式(固定每組樣本數時)
1 − β = Φ((|p₂ − p₁|√n − z_α/2 √(2p̄(1 − p̄))) ÷ √(p₁(1 − p₁) + p₂(1 − p₂)))
1 - \beta = \Phi\left( \dfrac{|p_2 - p_1|\sqrt{n} - z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}}{\sqrt{p_1(1-p_1)+p_2(1-p_2)}} \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mn>1</mn><mo>&#x2212;</mo><mi>&#x3B2;</mi>
    <mo>=</mo>
    <mi>&#x3A6;</mi>
    <mo>(</mo>
    <mfrac>
      <mrow>
        <mo>|</mo><msub><mi>p</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>|</mo>
        <msqrt><mi>n</mi></msqrt>
        <mo>&#x2212;</mo>
        <msub><mi>z</mi><mrow><mi>&#x3B1;</mi><mo>/</mo><mn>2</mn></mrow></msub>
        <msqrt><mn>2</mn><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>)</mo></msqrt>
      </mrow>
      <msqrt>
        <msub><mi>p</mi><mn>1</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo>
        <mo>+</mo>
        <msub><mi>p</mi><mn>2</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>2</mn></msub><mo>)</mo>
      </msqrt>
    </mfrac>
    <mo>)</mo>
  </mrow>
</math>
1 - beta = Phi((|p_2 - p_1| sqrt(n) - z_(alpha/2) sqrt(2 bar p (1 - bar p))) / sqrt(p_1(1 - p_1) + p_2(1 - p_2)))
CDF[NormalDistribution[0, 1], (Abs[p2 - p1]*Sqrt[n] - za*Sqrt[2*pbar*(1 - pbar)])/Sqrt[p1*(1 - p1) + p2*(1 - p2)]]
power := Statistics[CDF](Normal(0, 1), (abs(p2 - p1)*sqrt(n) - za*sqrt(2*pbar*(1 - pbar)))/sqrt(p1*(1 - p1) + p2*(1 - p2)));
power = normcdf((abs(p2 - p1)*sqrt(n) - za*sqrt(2*pbar*(1 - pbar)))/sqrt(p1*(1 - p1) + p2*(1 - p2)));
1 − β = Φ((|p_2 − p_1| √n − z_(α/2) √(2p̄(1 − p̄)))/√(p_1(1 − p_1) + p_2(1 − p_2)))

請 ChatGPT  幫忙計算的方法

你是規劃 A/B 測試的助理。請實際執行 Python 程式來完成下面的計算,並只根據執行結果的數值回答(不要用心算或推測回答)。

目前網頁的 CVR(基準 CVR)是 3%。希望 B 版本能偵測到相對 10% 的提升(CVR 3.3%)。
在顯著水準 5%(雙尾檢定)、檢定力 80% 下,請分別求出:
1. 目標 CVR p2(p2 = p1 × (1 + 10/100))
2. 每組所需樣本數 n(兩樣本比例 z 檢定的公式:n = (z_{α/2}·√(2p̄(1−p̄)) + z_β·√(p1(1−p1) +p2(1−p2)))² ÷ (p2−p1)²,p̄ = (p1+p2)/2,無條件進位),以及 A、B 合計的樣本數
3. 每日流量 2,000 次(A、B 合計)時的所需天數(無條件進位)
4. 每組只能湊到 30,000 人時的檢定力(1−β = Φ((|p2−p1|·√n − z_{α/2}·√(2p̄(1−p̄))) ÷ √(p1(1−p1) +p2(1−p2))))

z 值和累積分布函數請使用 statistics.NormalDist,並列出使用的公式和執行結果的數值。

使用方法
  1. 1
    輸入數值
    在輸入欄中輸入要計算的數值
  2. 2
    計算
    按下「計算」按鈕
  3. 3
    查看結果
    計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
  DataChef 的特色
簡單又免費
免費且無使用次數限制
不需專業知識,操作直覺又簡單
免註冊會員
開啟頁面即可立即使用
無須登錄任何個人資料
安全又安心
通訊全程高度加密
按下「下載」後自動刪除檔案
高速
顯示與轉換都快速順暢,毫無等待壓力
無浮水印
沒有浮水印
無須標註來源出處
可商業使用
可免費用於商業用途
亦無須事先取得商用授權