Skip to content

A/B 測試:用資料「做決策」

核心問題

如何科學地驗證產品改動的效果? 你可能經歷過這樣的場景:團隊花了一個月做的新功能上線後,資料大漲!大家歡呼雀躍,可三週後資料又神秘地跌回了原貌。到底是因為新功能真的很好,還是因為剛好趕上節假日流量大?A/B 測試解決的就是如何剔除外界的干擾噪音,讓資料說出真相的問題。


0. 全景圖:對抗「拍腦袋」的科學武器

在探討具體技術之前,讓我們先思考一下人類是如何做決策的。

當你面臨兩個按鈕顏色設計:一個是沉穩的藍色,一個是醒目的紅色。通常,決策者會依賴於自身的經驗、直覺、甚至是最高領導的偏好(業界戲稱其為 HiPPO —— Highest Paid Person's Opinion,薪水最高者的意見)。

但使用者的真實回饋往往遠超我們的想像力。也許紅色太刺眼反而導致轉換率下降,也許藍色不夠引人注目……我們怎麼能確信某種改動一定是更好的?

答案源自於經典的科學法則,這種法則和現代醫學在驗證新藥時使用的手段如出一轍:對照實驗

A/B 測試的本質

A/B 測試 = 對比 + 觀察 這就如同醫學研究中的「雙盲測試」:

  • 對照組(A組):吃長得像藥的澱粉片(看到舊版本的頁面)。
  • 實驗組(B組):吃正在研發的新藥(看到新版本的頁面)。 只有當實驗組的治癒率(轉換率)極其穩定且明顯地高於對照組時,我們才能宣告新藥(新改動)確實有效。

1. 流量分配:切割平行宇宙

做 A/B 測試的第一個鐵律就是:同時、隨機、隔離

你絕對不能說:「前半個月所有的使用者看藍按鈕,後半個月所有使用者看紅按鈕。」因為時間跨度帶來了無數的變數——你完全無法知道後半個月轉換率上漲是因為按鈕是紅色的,還是因為碰巧到了雙十一旺季。

我們要做的是在同一時刻創造「平行宇宙」。每個進入網站的使用者,系統都在底層立刻拋出了一枚數位硬幣,決定他被分派到 A 宇宙,還是 B 宇宙。

你可以透過下面的演示,直觀地觀察系統是如何進行流量切割的:

A/B 测试演示

流量分配可视化

观察用户如何被随机分配到对照组(A组)和实验组(B组)

A组 (对照组)
50%
B组 (实验组)
50%
总用户数1000
A组用户500
B组用户500
50/50分配能最快检测出差异,确保两组样本量足够大以获得统计显著性

1.1 為什麼隨機分配如此重要?

只有百分之百的「隨機」,才能最大程度抹平其他一切特徵帶來的差異。如果在足夠大的樣本量下進行了完美的隨機切割,那麼 A 組和 B 組的年輕使用者比例、收入水準、地域分佈原則上都會驚人的一致。

此時,如果二者的資料表現不同,那就排除了所有其他的干擾項和狡辯。唯一的不同,只能是因為你改了紅色按鈕。


2. 樣本與檢驗:戰勝假象的數學邏輯

好了,既然分了組,我們找 10 個使用者分別看看結果不就行了?這就引出了 A/B 測試裡最冷酷無情的數學法則:大數定律與樣本量(Sample Size)

想像你拋了 10 次硬幣,結果 7 次正面、3 次反面,這能說明硬幣被別人做過手腳嗎?顯然不能,因為基數太小,7:3 純粹就是波動、運氣。但如果你拋了 10 萬次,發現有 7 萬次正面,那這時候就可以鐵腕斷言:硬幣一定是偏心的。

同樣,如果只是 100 個人測試,多一個人點擊都會帶來 1% 的暴漲暴跌。這就需要我們在實驗開始前,透過公式計算必須湊滿多少流量。

A/B 测试演示

样本量计算器

计算达到统计显著性所需的最小样本量

%
当前版本的转化率
%
希望检测到的最小相对提升(相对值)
犯第一类错误的概率
检测到真实效应的概率
提升目标越小,所需样本量越大。5%的提升比20%的提升需要更多样本

2.1 統計學中的兩大守護神

一旦跑滿了這些流量條件,統計學就在我們尋找真相的旅程中佈置了兩尊門神:

  • 統計功效 (Power, 通常要求 80%):它代表如果你的新改動確實有效,你有多大的把握能把這個有效的效果偵測出來,而不是將其誤認為是一種噪音放任自流。(防止說「無效」但其實「有效」的假陰性漏網之魚)
  • 顯著性水準 (P-Value, 通常要求小於 0.05):也就是大家常說的「P<0.05」。它的意思是,兩組出現這樣區別,如果是純靠運氣導致的機率是否小於 5%?要是運氣佔比連 5% 都不到,我們就會承認這就是統計顯著(Significant),這改動真的發揮了非凡的作用。(防止說「有效」但其實只是走運的假陽性)

3. 結果對決:真相審判

收集完充足的資料後,我們需要透過下面這套專業的漏斗模型進行精確評判。對比結果不僅僅是一個簡單的加減法,而是牽扯到信心水準、常態分佈計算的重頭戲:

A/B 测试演示

A/B组结果对比

比较两组的转化率和统计显著性

%
%
A组(对照组)
转化率5%
转化数500
样本量10000
VS
B组(实验组)
转化率6%
转化数600
样本量10000
相对提升+20.00%
Z值3.102
P值0.00192
统计显著性显著
95%置信区间
0.37%← 真实差异 →1.63%
我们有95%的信心认为,真实差异在这个区间内
P值 < 0.05 表示结果统计显著,说明差异不太可能是随机产生的

當你看到頁面上回饋了一個明確的「顯著」時,那意味著我們可以向全公司自豪地宣佈:拋棄我們主觀幼稚的爭論,立刻全量上線 B 方案!一切都有堅實的數學原理作為後盾。


4. 幽暗的陷阱:分析中的誤區

雖然 A/B 測試本身是理性和科學的體現,但操作它的人卻深受人性的弱點左右。人們往往只願意看到自己期望的結果,這很容易讓整個測試由於失真而陷入可怕的反噬:

A/B 测试演示

A/B测试常见误区

过早停止实验
看到结果"显著"就立即停止实验,实际上只是随机波动
示例:运行2天后发现B组领先,立即宣布胜利。但继续运行一周后,差异消失。
解决方案:预先计算所需样本量,运行完整周期(至少2周)后再做决策
频繁窥探结果
每天查看数据,一旦"显著"就停止,这会大幅增加假阳性率
示例:每天检查p值,看到<0.05就停止。这种做法会让假阳性率从5%飙升到30%+。
解决方案:使用序贯检验方法,或预先设定唯一的检查点
辛普森悖论
分组看B组更差,但合并后B组反而更好(或相反)
示例:移动端转化率B>A,桌面端也是B>A,但合并后却A>B。原因:流量分配不均。
解决方案:按流量来源、设备、用户群体等维度分别分析,验证随机化是否正确
P值操纵(P-hacking)
通过尝试不同指标、不同子群体,直到找到"显著"结果
示例:主指标不显著,就按年龄、地区、设备细分,发现某个子群显著就宣称成功。
解决方案:预先注册假设和指标,只分析预先设定的指标
新奇效应
用户因好奇点击新功能,导致短期数据虚高
示例:新按钮上线首周点击率提升30%,但三周后回落到原水平甚至更低。
解决方案:运行足够长的时间(至少2-4周),让新奇效应消退
样本量不足
样本量太小,即使有真实差异也检测不出来
示例:预期提升5%,但只运行了1000样本,结果"不显著"就放弃,实际上需要30000样本。
解决方案:实验前计算所需样本量,确保统计功效≥80%

4.1 警惕「新奇效應」

當某樣東西剛剛出現時,使用者會因為純粹的獵奇和新奇感,去點擊你那個看起來亂七八糟的新按鈕,這會讓你的轉換率在前三天呈現火箭式的拉升。

很多產品經理會在第三天果斷拿著完美的資料停止實驗並發送戰報。但如果你耐心等到兩週之後,你會發現使用者的新鮮感一過,資料又陰暗地跌到了舊版本的紅線之下。這就是為什麼實驗的週期設定尤為關鍵,切勿被短期的虛高蒙蔽雙眼。


5. 總結:培養向資料屈服的勇氣

總而言之,從「直覺式猜想」走向「A/B 測試」,對於任何一個團隊來說都是一場巨大的心智蛻變。

  1. 提出謹慎假設:基於對使用者的嚴謹觀察,建立一條可以被量化的假說。
  2. 切分平行世界:以純粹的隨機撕裂流量,剔除外在的噪音牽絆。
  3. 接受樣本洗禮:等待大數定律生效,用足量的時間和樣本降低波動。
  4. 進行數學審判:讓 P 值來宣判方案的好壞,嚴格服從顯著性的事實。

作為軟體的締造者,最大的智慧莫過於——學會向事實屈服的勇氣。我們不用再花費幾個小時在會議室裡為藍色和紅色吵得面紅耳赤;只需靜待兩週,點擊率會向我們證明,究竟誰才是最受使用者擁簇的王者。