請輸入 A 組(原本的版本)和 B 組(修改後的版本)各自的造訪數和轉換次數。除了各組的 CVR、差和相對提升率,也會用兩樣本比例 z 檢定算出 z 值和 p 值,並依您選擇的顯著水準判定「有/無顯著差異」。
這個頁面可以做什麼
- 只要輸入 A 組、B 組各自的造訪數(點擊次數、工作階段數也可以)和轉換次數,就能一次算出各組的 CVR、CVR 的差和相對提升率
- 用兩樣本比例 z 檢定判斷「B 的 CVR 看起來比較高,會不會只是偶然的波動?」(z 值、雙尾與單尾的 p 值、顯著水準 5%、1%、10% 的判定)
- 也能看出 CVR 差的信賴區間(95% 等),以及 z 值距離顯著的界線還有多少差距
- 在標準常態分布的圖形上,標出這次 z 值的位置,並塗出拒絕域(落在這裡就是顯著)
- 公式的簡單解說,以及可直接複製的 Excel、Google 試算表、Python 公式,都整理在這一頁
這個計算有什麼用?
「換了按鈕顏色的 B 版本,讓 CVR 從 2.0% 上升到 2.5%。」確認這個差不是偶然,就是網路行銷每天都在做的 A/B 測試顯著性判定。各 10,000 次造訪時,雙尾 p 值約 0.017,「在 5% 下顯著」。但如果是各 500 次造訪、CVR 差不多(轉換 10 次對 12、13 次),p 值約 0.5~0.7,只能說「可能是偶然」。
因為「B 看起來比較好」就切換,結果下個月又回到原樣的情況很常見。事先決定造訪數,再用顯著水準判定,就能避免這種事(前提是訪客是隨機分配的)。
把同一封電子報分成 2 種主旨,各寄給名單的一半,比較開信率 48% 和 52%。這也是 2 個比率差異的檢定。各寄 5,000 封時,4 個百分點的差,z 值約為 4,是很難用偶然解釋的差。
開信率這種較大的比率,和 CVR 這種較小的比率相比,同樣的寄送數比較容易判定(差相對於標準誤差容易比較大)。用這個公式,就能掌握比較的指標不同、需要的寄送數會怎麼變。
像「標準療法有 60% 改善,新療法有 70% 改善」這樣比較 2 組的改善率,是臨床研究的基本檢定(實際的研究會採用隨機分配、盲性等嚴格的設計)。
作為藥物核准和治療指引依據的論文,一定會寫出 p 值和信賴區間。理解這個公式後,就不會被「顯著」這個詞牽著走,也能看懂「差有多大」「病人數夠不夠」。
新製程 B 看起來讓不良率從 1.5% 降到 1.0% 時,判定會隨數量而變:各 2,000 個時是「在偶然的範圍內」,各 20,000 個時則是「顯著改善」。這個計算可以避免設備、製程的變更決策,被小樣本的偶然左右。
不良率這種小比率,在期望不良數(數量 × 不良率)低於 5 時,常態近似會變粗略,所以會改用直接使用二項分布的精確檢定(費雪精確檢定等)。
「使用新教科書的班級及格率 75%,舊教科書是 65%」這種比較也能用同樣的檢定。不過如果按班級分配教科書,學生並不是隨機分配的,老師和學生的差異也會混進結果裡。
在教育、社會科學的研究中,除了用這個公式確認顯著性,設計也很重要:是否隨機分組?有沒有在看了結果後才改變比較的切法?了解公式背後的前提,才不會被數字騙。
公式
符號與用語解說
符號
| \(n_A,\ n_B\) | n 下標 A、n 下標 B | A 組、B 組的造訪數(點擊次數、工作階段數)。\(n\) 取自 number(數)的第一個字母,在統計中習慣用來表示樣本大小(樣本數)。 |
| \(x_A,\ x_B\) | x 下標 A、x 下標 B | A 組、B 組的轉換次數。用 \(x\) 表示「成功的次數」是二項分布的慣例。 |
| \(\hat{p}_A,\ \hat{p}_B\) | p hat 下標 A、p hat 下標 B | A 組、B 組的 CVR(由樣本求出的比率)。\(p\) 取自 proportion(比率)或 probability(機率)的第一個字母,上方的「\(\hat{}\)」(hat)表示這是用樣本推估真正的值 \(p\) 得到的值。 |
| \(\hat{p}\) | p hat | 合併 CVR。假設「沒有差異」,把兩組的資料合起來求出的 1 個 CVR 推估值,\(\hat{p} = (x_A + x_B) \div (n_A + n_B)\)。 |
| \(d\) | d | CVR 的差(\(\hat{p}_B - \hat{p}_A\)),取自 difference(差)的第一個字母。這個頁面乘以 100,以「百分點」顯示。 |
| \(L\) | L | 相對提升率(%),取自 lift(提升)的第一個字母,表示 B 的 CVR 相對於 A 的 CVR 增加了幾 %。 |
| \(\mathrm{SE}\) | S E | 標準誤差(Standard Error)。由樣本求出的值(這裡是 CVR 的差)會因偶然變動多少的參考值,也就是這個樣本值的標準差。檢定時用合併 CVR 求出,信賴區間則用由各組 CVR 求出的 \(\mathrm{SE}_d\)。 |
| \(z\) | z | z 值(檢定統計量)。差除以標準誤差的值,表示差是偶然波動的幾倍。沒有差異時服從標準常態分布(平均數 0、標準差 1),所以由它的大小求出 p 值。 |
| \(|z|\) | z 的絕對值 | 去掉 z 值正負號的大小。雙尾檢定不管差是哪個方向,所以用絕對值。 |
| \(\Phi\) | Phi(大寫) | 標準常態分布的累積分布函數。\(\Phi(z)\) 是標準常態的值小於或等於 \(z\) 的機率,也就是鐘形曲線在 \(z\) 左側的面積。希臘字母大寫 Phi 習慣用來表示它。 |
| \(p_2,\ p_1\) | p 下標 2、p 下標 1 | 雙尾 p 值和單尾 p 值。下標 2、1 表示「2 個尾端(雙尾)」「1 個尾端(單尾)」,是這個頁面的區分寫法,統計書中只寫 \(p\)。 |
| \(\alpha\) | alpha | 顯著水準:事先決定「p 值小於它就拒絕虛無假設」的界線,常用 5%(0.05)。希臘字母 alpha,相當於型一錯誤(沒有差異卻判定為有)的機率。 |
| \(z_{\alpha/2}\) | z 下標 alpha/2 | 兩側尾端合計留下 \(\alpha\) 機率時的邊界 z 值(臨界值)。95% 信賴區間(\(\alpha = 0.05\))時為 1.96,99% 時為 2.576。單尾時是 \(z_\alpha\)(5% 時為 1.645)。 |
| \(d_L,\ d_U\) | d 下標 L、d 下標 U | 差的信賴區間的下限(Lower)和上限(Upper),也就是「真正的差很可能在這個範圍」的區間兩端。 |
用語
| A/B 測試 | 在同一期間把原本的版本(A)和修改後的版本(B)隨機分配給訪客,比較成果的實驗。網站、廣告、電子郵件都廣泛使用。隨機分配可以讓版本以外的因素(星期幾、流量來源等)在兩組中相同。 |
| 轉換率 | 造訪(點擊)中完成購買、報名等成果(轉換)的比率,英文縮寫 CVR。只要計算或反推 1 組的轉換率,請見「CVR 轉換率計算機」頁面。 |
| 虛無假設 | 「A 和 B 的 CVR 其實沒有差異(\(p_A = p_B\))」這個檢定想要否定的假設。檢定會確認:如果它成立,觀察到的差有多不可能出現。 |
| 對立假設 | 和虛無假設相對、想要證明的假設。雙尾檢定是「A 和 B 有差異(\(p_A \neq p_B\))」,單尾檢定是「B 比 A 高(\(p_B > p_A\))」。 |
| 顯著水準 | 測試前先決定「p 值小於它就拒絕虛無假設」的界線。常用 5%,想嚴格判定時用 1%。「在 5% 下顯著」的意思是「其實沒有差異卻出現這麼大差距的機率不到 5%」。 |
| p 值 | 假設虛無假設(沒有差異)成立時,偶然出現這次以上差距的機率。越小越難用偶然解釋。請注意它不是「B 比較好的機率」(這是常見的誤解)。 |
| 顯著差異 | p 值小於顯著水準,被判斷為「難以用偶然波動解釋的差異」。不保證差很大或效果一定存在;造訪數非常多時,再小的差也會顯著。 |
| 檢定統計量 | 為了檢定而由資料計算出的 1 個數值。這個頁面就是 z 值,用「差 ÷ 標準誤差」求出。它有多極端,就決定了 p 值。 |
| 兩樣本比例 z 檢定 | 用常態分布檢查 2 組的比率(CVR 等)有沒有差異的檢定,是判斷 A/B 測試顯著性最基本的方法。用 2×2 的卡方檢定也能做到幾乎相同的事,雙尾的 p 值會一致。 |
| 標準誤差 | 由樣本求出的統計量(這裡是 CVR 的差)因抽樣方式而偶然變動的標準差。它和造訪數的平方根成反比,所以要讓標準誤差減半,造訪數需要 4 倍。 |
| 合併 | 假設「沒有差異」,把兩組的資料合在一起推估 1 個 CVR,英文 pooling(合併成一個)。檢定用的標準誤差就是用這個合併值求出。 |
| 信賴區間 | 「真正的差很可能在這個範圍」的區間。95% 信賴區間是指用這種方法建立區間時,同樣的實驗做很多次,有 95% 的區間會包含真正的差。區間不包含 0,幾乎都和 5% 的雙尾檢定顯著一致。 |
| 雙尾檢定 | 檢查「有沒有差異(不管哪個比較高)」的檢定。不知道結果會偏向哪一邊的一般 A/B 測試用這種。 |
| 單尾檢定 | 像「B 是否比 A 高」這樣決定方向的檢定。p 值是雙尾的一半,比較容易顯著,只有在測試前就決定好方向時才能使用。 |
| 拒絕域 | z 值落入這裡就拒絕虛無假設的標準常態分布尾端區域。雙尾 5% 時是 \(z < -1.96\) 和 \(z > 1.96\) 的兩側尾端,面積合計 0.05,也就是這個頁面圖表中塗色的部分。 |
| 臨界值 | 拒絕域邊界的 z 值。雙尾 5% 為 1.96,雙尾 1% 為 2.576,單尾 5% 為 1.645。結果中的「z 值與臨界值的差距」,表示這次的 z 值比臨界值高(或低)多少。 |
| 常態近似 | 轉換次數的波動本來服從二項分布,但造訪數多時,可以用常態分布(鐘形曲線)很好地近似。z 檢定用的就是這個近似,所以參考標準是各組的期望轉換次數 \(n\hat{p}\) 和期望未轉換次數 \(n(1-\hat{p})\) 都在 5 以上(最好 10 以上)。 |
| 檢定力 | 真的有差異時,檢定能把它偵測為「顯著」的機率,英文 statistical power。造訪數少時檢定力低,即使真的有效果,也常常出現「不顯著」。「無顯著差異」並不是「沒有差異」的證明。 |
| 型一錯誤 | 其實沒有差異,卻判定為「有顯著差異」的錯誤(偽陽性)。顯著水準 \(\alpha\) 就是容許這種錯誤的機率;5% 的意思是「在其實沒有差異的情況下做 100 次測試,大約有 5 次會偶然顯著」。 |
| 多重比較 | 同時檢定許多版本或指標。即使顯著水準是 5%,檢定 20 個指標,很可能就有 1 個會偶然「顯著」。需要事先縮小指標範圍,或使用更嚴格的顯著水準(Bonferroni 校正等)。 |
| 提前停止 | 測試途中一再檢視結果,一出現顯著就停止測試,英文叫 peeking(偷看結果)。測試途中 p 值會上上下下,如果一直「第一次低於 5% 就停止」,其實沒有差異卻顯著的機率會遠超過 5%。基本原則是先決定所需的造訪數,等到達標再判定。 |
| 相對提升率 | B 的 CVR 相對於 A 的 CVR 增加了幾 %:把差 \(d\) 除以 A 的 CVR 再乘以 100,英文 relative lift。「提升 25%」比「上升 0.5 個百分點」更容易換算成增加的轉換次數和營收。 |
| 百分點 | 表示百分比之間相減結果的單位。像「2.5% − 2% = 0.5 個百分點」這樣使用,可以避免寫成「0.5%」時被誤會成「2% 的 0.5%」。 |
建議先了解的基礎知識
為了讓您「理解意義」地使用這個頁面的計算,這裡整理了建議先了解的基礎知識。
遇到卡關時,回頭複習這些內容是最快的方法。
| 比率與百分率(國小五年級,10~11 歲) |
|
| 倒數與平方根(國小六年級~國中八年級,11~14 歲) |
|
| 常態分布與標準差(高中,15~18 歲) |
|
| 假設檢定的思考方式(高中到大學入門統計,15 歲以上) |
|
| 二項分布與常態近似(高中,15~18 歲) |
|
用 Excel 計算的方法
| A 組的造訪數 n_A | 10000 |
| A 組的轉換次數 x_A | 200 |
| B 組的造訪數 n_B | 10000 |
| B 組的轉換次數 x_B | 250 |
| A 組的 CVR p̂_A | =B2/B1 |
| B 組的 CVR p̂_B | =B4/B3 |
| A 組的 CVR p̂_A | 0.02 |
| B 組的 CVR p̂_B | 0.025 |
| CVR 的差 d | =B2-B1 |
| 相對提升率 L(%) | =B3/B1*100 |
| A 組的轉換次數 x_A | 200 |
| B 組的轉換次數 x_B | 250 |
| A 組的造訪數 n_A | 10000 |
| B 組的造訪數 n_B | 10000 |
| 合併 CVR p̂ | =(B1+B2)/(B3+B4) |
| 合併 CVR p̂ | 0.0225 |
| A 組的造訪數 n_A | 10000 |
| B 組的造訪數 n_B | 10000 |
| CVR 的差 d | 0.005 |
| 標準誤差 SE | =SQRT(B1*(1-B1)*(1/B2+1/B3)) |
| z 值 z | =B4/B5 |
| z 值 z | 2.384 |
| 雙尾 p 值 p₂ | =2*(1-NORM.S.DIST(ABS(B1),TRUE)) |
| 單尾 p 值 p₁ | =1-NORM.S.DIST(B1,TRUE) |
| A 組的 CVR p̂_A | 0.02 |
| A 組的造訪數 n_A | 10000 |
| B 組的 CVR p̂_B | 0.025 |
| B 組的造訪數 n_B | 10000 |
| CVR 的差 d | 0.005 |
| 信心水準(0.95 = 95%) | 0.95 |
| z_(α/2) | =NORM.S.INV(1-(1-B6)/2) |
| 標準誤差 SE_d | =SQRT(B1*(1-B1)/B2+B3*(1-B3)/B4) |
| 下限 d_L | =B5-B7*B8 |
| 上限 d_U | =B5+B7*B8 |
第 1 個表格的 B5 顯示 A 組的 CVR 0.02,B6 顯示 B 組的 0.025。第 2 個表格算出差 0.005(0.5 個百分點)和提升率 25,第 3 個表格算出合併 CVR 0.0225,第 4 個表格算出標準誤差約 0.002097 和 z 值約 2.384。
第 5 個表格的 NORM.S.DIST(z, TRUE) 會傳回標準常態分布的累積機率 Φ(z),雙尾 p 值約 0.0171,單尾 p 值約 0.0086。第 6 個表格的 NORM.S.INV 由累積機率求出 z 值(信心水準 95% 時為 1.96),下限約 0.0009、上限約 0.0091(0.09~0.91 個百分點)。
用 Google 試算表計算的方法
| A 組的造訪數 n_A | 10000 |
| A 組的轉換次數 x_A | 200 |
| B 組的造訪數 n_B | 10000 |
| B 組的轉換次數 x_B | 250 |
| A 組的 CVR p̂_A | =B2/B1 |
| B 組的 CVR p̂_B | =B4/B3 |
| A 組的 CVR p̂_A | 0.02 |
| B 組的 CVR p̂_B | 0.025 |
| CVR 的差 d | =B2-B1 |
| 相對提升率 L(%) | =B3/B1*100 |
| A 組的轉換次數 x_A | 200 |
| B 組的轉換次數 x_B | 250 |
| A 組的造訪數 n_A | 10000 |
| B 組的造訪數 n_B | 10000 |
| 合併 CVR p̂ | =(B1+B2)/(B3+B4) |
| 合併 CVR p̂ | 0.0225 |
| A 組的造訪數 n_A | 10000 |
| B 組的造訪數 n_B | 10000 |
| CVR 的差 d | 0.005 |
| 標準誤差 SE | =SQRT(B1*(1-B1)*(1/B2+1/B3)) |
| z 值 z | =B4/B5 |
| z 值 z | 2.384 |
| 雙尾 p 值 p₂ | =2*(1-NORMSDIST(ABS(B1))) |
| 單尾 p 值 p₁ | =1-NORMSDIST(B1) |
| A 組的 CVR p̂_A | 0.02 |
| A 組的造訪數 n_A | 10000 |
| B 組的 CVR p̂_B | 0.025 |
| B 組的造訪數 n_B | 10000 |
| CVR 的差 d | 0.005 |
| 信心水準(0.95 = 95%) | 0.95 |
| z_(α/2) | =NORMSINV(1-(1-B6)/2) |
| 標準誤差 SE_d | =SQRT(B1*(1-B1)/B2+B3*(1-B3)/B4) |
| 下限 d_L | =B5-B7*B8 |
| 上限 d_U | =B5+B7*B8 |
用 Python 計算的方法
import math
visits_a, conversions_a = 10000, 200 # A 組的造訪數與轉換次數
visits_b, conversions_b = 10000, 250 # B 組的造訪數與轉換次數
alpha = 0.05 # 顯著水準(5%)
def normal_cdf(z):
# 標準常態分布的累積分布函數 Φ(z)
return 0.5 * math.erfc(-z / math.sqrt(2))
def normal_ppf(p):
# Φ 的反函數(二分法;用來求 z_(α/2))
low, high = -10.0, 10.0
for _ in range(100):
mid = (low + high) / 2
if normal_cdf(mid) < p:
low = mid
else:
high = mid
return (low + high) / 2
cvr_a = conversions_a / visits_a
cvr_b = conversions_b / visits_b
diff = cvr_b - cvr_a
lift = diff / cvr_a * 100
pooled = (conversions_a + conversions_b) / (visits_a + visits_b)
se_pooled = math.sqrt(pooled * (1 - pooled) * (1 / visits_a + 1 / visits_b))
z = diff / se_pooled
p_two_sided = 2 * (1 - normal_cdf(abs(z)))
p_one_sided = 1 - normal_cdf(z)
se_diff = math.sqrt(cvr_a * (1 - cvr_a) / visits_a + cvr_b * (1 - cvr_b) / visits_b)
z_half = normal_ppf(1 - alpha / 2)
ci_low, ci_high = diff - z_half * se_diff, diff + z_half * se_diff
print(f"A 組的 CVR:{cvr_a * 100:.2f}% B 組的 CVR:{cvr_b * 100:.2f}%")
print(f"差:{diff * 100:.2f} 個百分點 相對提升率:{lift:.1f}%")
print(f"z 值:{z:.3f} 雙尾 p 值:{p_two_sided:.4f} 單尾 p 值:{p_one_sided:.4f}")
print("判定(雙尾):", "有顯著差異" if p_two_sided < alpha else "無顯著差異")
print(f"差的 {(1 - alpha) * 100:.0f}% 信賴區間:{ci_low * 100:.2f}~{ci_high * 100:.2f} 個百分點")
用 LaTeX 等數學式語言的寫法(可直接複製)
p̂_A = x_A ÷ n_A
\hat{p}_A = \dfrac{x_A}{n_A}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub>
<mo>=</mo>
<mfrac>
<msub><mi>x</mi><mi>A</mi></msub>
<msub><mi>n</mi><mi>A</mi></msub>
</mfrac>
</mrow>
</math>
hat(p)_A = x_A / n_A
xA/nA
pA := xA/nA;
pA = xA/nA;
p̂_A = x_A/n_A
d = p̂_B − p̂_A, L = d ÷ p̂_A × 100
d = \hat{p}_B - \hat{p}_A, \quad L = \dfrac{d}{\hat{p}_A} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>d</mi><mo>=</mo>
<msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub>
<mo>−</mo>
<msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub>
<mo>,</mo><mspace width="1em"/>
<mi>L</mi><mo>=</mo>
<mfrac><mi>d</mi><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub></mfrac>
<mo>×</mo><mn>100</mn>
</mrow>
</math>
d = hat(p)_B - hat(p)_A, L = d / hat(p)_A xx 100
d = pB - pA; d/pA*100
d := pB - pA; L := d/pA*100;
d = pB - pA; L = d/pA*100;
d = p̂_B − p̂_A, L = d/p̂_A × 100
p̂ = (x_A + x_B) ÷ (n_A + n_B)
\hat{p} = \dfrac{x_A + x_B}{n_A + n_B}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mover accent="true"><mi>p</mi><mo>^</mo></mover>
<mo>=</mo>
<mfrac>
<mrow><msub><mi>x</mi><mi>A</mi></msub><mo>+</mo><msub><mi>x</mi><mi>B</mi></msub></mrow>
<mrow><msub><mi>n</mi><mi>A</mi></msub><mo>+</mo><msub><mi>n</mi><mi>B</mi></msub></mrow>
</mfrac>
</mrow>
</math>
hat(p) = (x_A + x_B) / (n_A + n_B)
(xA + xB)/(nA + nB)
pPool := (xA + xB)/(nA + nB);
pPool = (xA + xB)/(nA + nB);
p̂ = (x_A + x_B)/(n_A + n_B)
SE = √(p̂(1 − p̂)(1/n_A + 1/n_B)), z = d ÷ SE
\mathrm{SE} = \sqrt{\hat{p}(1-\hat{p})\left(\dfrac{1}{n_A}+\dfrac{1}{n_B}\right)}, \quad z = \dfrac{d}{\mathrm{SE}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>z</mi><mo>=</mo>
<mfrac>
<mrow><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub><mo>−</mo><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub></mrow>
<msqrt>
<mover accent="true"><mi>p</mi><mo>^</mo></mover>
<mo>(</mo><mn>1</mn><mo>−</mo><mover accent="true"><mi>p</mi><mo>^</mo></mover><mo>)</mo>
<mo>(</mo>
<mfrac><mn>1</mn><msub><mi>n</mi><mi>A</mi></msub></mfrac>
<mo>+</mo>
<mfrac><mn>1</mn><msub><mi>n</mi><mi>B</mi></msub></mfrac>
<mo>)</mo>
</msqrt>
</mfrac>
</mrow>
</math>
SE = sqrt(hat(p)(1 - hat(p))(1/n_A + 1/n_B)), z = d / SE
se = Sqrt[pPool*(1 - pPool)*(1/nA + 1/nB)]; z = d/se
SE := sqrt(pPool*(1 - pPool)*(1/nA + 1/nB)); z := d/SE;
SE = sqrt(pPool*(1 - pPool)*(1/nA + 1/nB)); z = d/SE;
SE = √(p̂(1 − p̂)(1/n_A + 1/n_B)), z = d/SE
p₂ = 2(1 − Φ(|z|)), p₁ = 1 − Φ(z)
p_2 = 2\left(1 - \Phi(|z|)\right), \quad p_1 = 1 - \Phi(z)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>p</mi><mn>2</mn></msub><mo>=</mo>
<mn>2</mn><mo>(</mo><mn>1</mn><mo>−</mo>
<mi>Φ</mi><mo>(</mo><mo>|</mo><mi>z</mi><mo>|</mo><mo>)</mo><mo>)</mo>
<mo>,</mo><mspace width="1em"/>
<msub><mi>p</mi><mn>1</mn></msub><mo>=</mo>
<mn>1</mn><mo>−</mo><mi>Φ</mi><mo>(</mo><mi>z</mi><mo>)</mo>
</mrow>
</math>
p_2 = 2(1 - Phi(|z|)), p_1 = 1 - Phi(z)
p2 = 2*(1 - CDF[NormalDistribution[0, 1], Abs[z]]); p1 = 1 - CDF[NormalDistribution[0, 1], z]
p2 := 2*(1 - Statistics:-CDF(Normal(0, 1), abs(z))); p1 := 1 - Statistics:-CDF(Normal(0, 1), z);
p2 = 2*(1 - normcdf(abs(z))); p1 = 1 - normcdf(z);
p_2 = 2(1 − Φ(|z|)), p_1 = 1 − Φ(z)
d ± z_(α/2) × √(p̂_A(1 − p̂_A)/n_A + p̂_B(1 − p̂_B)/n_B)
d \pm z_{\alpha/2}\sqrt{\dfrac{\hat{p}_A(1-\hat{p}_A)}{n_A}+\dfrac{\hat{p}_B(1-\hat{p}_B)}{n_B}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>d</mi><mo>±</mo>
<msub><mi>z</mi><mrow><mi>α</mi><mo>/</mo><mn>2</mn></mrow></msub>
<msqrt>
<mfrac>
<mrow><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub><mo>(</mo><mn>1</mn><mo>−</mo><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>A</mi></msub><mo>)</mo></mrow>
<msub><mi>n</mi><mi>A</mi></msub>
</mfrac>
<mo>+</mo>
<mfrac>
<mrow><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub><mo>(</mo><mn>1</mn><mo>−</mo><msub><mover accent="true"><mi>p</mi><mo>^</mo></mover><mi>B</mi></msub><mo>)</mo></mrow>
<msub><mi>n</mi><mi>B</mi></msub>
</mfrac>
</msqrt>
</mrow>
</math>
d +- z_(alpha/2) sqrt((hat(p)_A(1 - hat(p)_A))/n_A + (hat(p)_B(1 - hat(p)_B))/n_B)
seD = Sqrt[pA*(1 - pA)/nA + pB*(1 - pB)/nB]; {d - zHalf*seD, d + zHalf*seD}
seD := sqrt(pA*(1 - pA)/nA + pB*(1 - pB)/nB); [d - zHalf*seD, d + zHalf*seD];
seD = sqrt(pA*(1 - pA)/nA + pB*(1 - pB)/nB); ci = [d - zHalf*seD, d + zHalf*seD];
d ± z_(α/2) √(p̂_A(1 − p̂_A)/n_A + p̂_B(1 − p̂_B)/n_B)
請 ChatGPT 幫忙計算的方法
你是統計(假設檢定)的計算助理。請實際執行 Python 程式來完成下面的計算,並只根據執行結果的數值回答(不要用心算或推測回答)。 A/B 測試的結果如下: - A 組:造訪 10000 次,轉換 200 次 - B 組:造訪 10000 次,轉換 250 次 請分別求出: 1. 各組的轉換率(%)、轉換率的差(百分點)和相對提升率(%) 2. 合併轉換率,以及合併的標準誤差 SE = √(p̂(1−p̂)(1/n_A + 1/n_B)) 3. z 值 = 差 ÷ SE,以及雙尾、單尾 p 值(標準常態分布) 4. 在顯著水準 5%(雙尾)下是否有顯著差異 5. 差的 95% 信賴區間(標準誤差用各組轉換率求出的 √(p̂_A(1−p̂_A)/n_A + p̂_B(1−p̂_B)/n_B)) Python 請使用 math.erfc(或 scipy.stats.norm),並列出使用的公式和執行結果的數值。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權