題目與適用場景
一個產品實驗按使用者穩定隨機分流,設定比例為 50/50。累計 100,000 名合格使用者後,分析資料中 對照組有 51,000 人,實驗組有 49,000 人;實驗組轉換率比對照組高 1.8%,一般效果檢定的 p 值 小於 0.01。請判斷結果是否可信,並設計 Sample Ratio Mismatch,簡稱 SRM,的偵測、根因診斷、 修復和預防流程。
本題適用於資料科學、產品分析、商業智慧和實驗平台職缺。Amazon 目前的資料職缺面試指引明確要求 統計基礎、處理模糊資料以及把資料轉成可執行結論;Microsoft 的實驗研究則把 SRM 定義為實驗可信度的 重要品質訊號。核心能力屬於 data,因為重點是隨機實驗、統計檢定和資料鏈路診斷,不是設計整個實驗平台。
題目中的 100,000、51,000、49,000 和 1.8% 都是面試演算資料,不代表產業基準。答案採用使用者作為 隨機化單位,並假設每位使用者只應進入一組;若真實實驗按裝置、帳號、工作區或地域叢集分流,檢定單位 必須隨之改變。
面試官考察點
第一個訊號是候選人能否在看業務效果前檢查實驗完整性。一般回答會看到「提升 1.8%,p 值小於 0.01」 就建議上線。強回答會先驗證實際樣本是否符合設定分布,因為效果檢定只能回答兩組觀測結果是否不同, 不能證明進入兩組的人仍來自可比較的隨機樣本。
第二個訊號是能否把肉眼比例差異轉成統計檢定。同樣是 51/49,1,000 名使用者和 100,000 名使用者的 證據強度完全不同。SRM 檢定比較各組觀測人數與設定比例推導出的期望人數;樣本量越大,越能識別小而 系統性的偏差。
第三個訊號是診斷是否涵蓋完整鏈路。SRM 可能來自分流設定、識別碼不穩定、版本執行差異、事件遺失、 反作弊篩選、資料連接或使用實驗結果之後才成立的篩選條件。把所有問題歸為「亂數不夠隨機」會漏掉大量 更常見的資料處理和分析錯誤。
最後看候選人是否敢於停止錯誤決策。SRM 是症狀,不能用重新加權自動消除。公開案例中,實驗版本改變了 使用者參與行為,反而讓更多高參與使用者被機器人篩選器刪除,修復後業務結論發生反轉。根因未解釋前, 正確動作是凍結上線判斷,而不是挑一個仍然顯著的指標繼續推進。
回答前需要釐清的問題
- 50/50 指的是分配、曝光還是最終分析人群? 分配日誌可能正常,但曝光、觸發或指標資格篩選後
出現 SRM。必須逐階段檢查,不能只看最終表。
- 隨機化單位是什麼? 按工作區分流時,成員人數天然不相等;應先檢定工作區數量,再用符合叢集
隨機化的方法分析成員結果。
- 使用者識別碼是否穩定且互斥? 跨裝置登入、Cookie 清除、匿名轉登入和 ID 合併可能讓同一人
重複分配或在組間移動。
- 實驗比例是否在執行中調整過? 10/90、50/50 等分階段放量需要按每個時段的設定計算期望人數,
不能用最後一個比例解釋全程。
- 「合格使用者」由什麼條件定義? 條件若受實驗版本影響,例如只保留點擊新按鈕的人,就屬於
處理後篩選,會破壞組間可比性。
- 是否存在版本特有的重新導向、效能或錯誤? 一組更慢、當機更多或無法完成事件上報,會在執行和
收集階段遺失使用者。
- 哪些資料鏈路參與最終人數統計? 需要區分分流日誌、曝光日誌、事件日誌、去重、機器人篩選、
維度表連接和指標窗口。
- 決策是否允許重新執行實驗? 若根因無法從原始日誌無偏重建,可靠選擇是修復後重跑,而不是強行
挽救目前結果。
30 秒回答框架
「我不會上線。先按 50/50 計算期望人數各 50,000,卡方統計量是 (51,000 - 50,000)² / 50,000 + (49,000 - 50,000)² / 50,000 = 40,自由度為 1, p 值約 2.54 × 10^-10,表示最終樣本與設定比例嚴重不符。業務效果的 p 值因此不能作為上線證據。 我會依序比較分配、曝光、觸發、日誌處理和最終分析人數,再按時間、平台、版本和識別碼切片,定位偏差 首次出現的位置。根因修復並通過 SRM、事件上報和 A/A 檢查後重新分析;無法無偏重建就重跑實驗。」
分步驟深入解答
先把決策門檻寫清楚:實驗結果必須同時通過隨機化、資料完整性和業務效果檢查。SRM 偵測應先於效果檢定, 而且最好在平台中自動執行並明顯提示。Microsoft 的公開實務使用 p < 0.0005 作為保守告警門檻, 目的是降低大型實驗平台中的誤報;這是一個實務範例,不是所有團隊必須照抄的通用常數。團隊應預先設定 門檻,不能看到結果後再調整。
第一步:正確計算 SRM。
對於兩組 50/50 實驗,總樣本為 100,000,期望人數各 50,000。卡方適合度統計量為:
χ² = Σ (observed - expected)² / expected = 40
兩組且沒有估計額外參數時,自由度為 1,對應 p 值約為 2.54 × 10^-10。這遠低於常見的保守品質門檻, 不能用隨機波動解釋。卡方檢定依賴足夠的期望次數;NIST 提供的常用規則是每組至少約 5 個期望觀測。 極小樣本、極低比例或很多稀疏實驗組應改用精確二項或多項檢定。
比例必須和樣本量一起解釋。若只有 1,000 人、觀察到 510/490,期望各 500,則 χ² = 0.4, p 值約 0.527,不能拒絕 50/50 假設。肉眼看到同樣的 51/49,不代表證據相同。
第二步:找到偏差首次出現的階段。
建立一張階段漏斗,每一步都保留按實驗組統計的唯一隨機化單位數:
| 階段 | 要回答的問題 | 常見根因 | |---|---|---| | 分配 | 雜湊和設定是否產生期望比例 | 比例設定錯誤、鹽值變更、ID 不穩定、組間重疊 | | 曝光 | 已分配使用者是否真的收到對應版本 | 發布失敗、快取、重新導向、版本不可用 | | 觸發 | 分析條件是否在處理前就能確定 | 只在一組記錄條件、實驗改變進入條件的機率 | | 日誌處理 | 兩組事件是否同樣進入事實表 | 事件遺失、去重錯誤、機器人篩選、連接遺失資料列 | | 分析 | 查詢是否保留原始隨機化語意 | 事後篩選、窗口不同、內部使用者排除不一致 |
若分配階段已經失衡,先檢查實驗設定、分桶程式和隨機化 ID。若分配正常、曝光後失衡,檢查某個版本是否 更容易載入失敗、當機或被重新導向。若未觸發的總體分析正常,只有「造訪結帳頁的人」分析失衡,就檢查 觸發條件是否會被實驗影響,或對照組是否缺少等價日誌。若偏差只在最終事實表出現,重點排查篩選、去重和連接。
第三步:用切片和時間軸縮小根因。
按小時畫累計觀測人數與累計期望人數,找出差異從何時開始。突然跳變通常指向設定、發布或資料工作變更; 從實驗開始持續偏離更像分桶或觸發條件問題。再按平台、瀏覽器、應用程式版本、地域、登入狀態、ID 類型 和流量來源切片,但每個切片都要同時展示樣本規模、方向和首次異常時間。
切片不是為了尋找一個「通過 SRM 的子群」繼續上線。大量切片會自然產生少量小 p 值;它們的作用是形成 可驗證的根因假設。例如 SRM 只集中在舊版 iOS,且該版本的實驗組曝光日誌明顯缺失,就應核對用戶端發布 和事件傳送,而不是刪除 iOS 後宣稱總體實驗可信。
第四步:驗證隨機化與身分語意。
分桶函式應由穩定隨機化 ID、實驗 ID 和固定鹽值決定,同一個單位在實驗週期內始終得到同一組。檢查:
- 同一隨機化單位是否出現多個組別。
- 匿名 ID 合併到帳號 ID 時是否重新分流。
- Cookie 清除或跨裝置是否製造重複「新使用者」。
- 排除名單、員工流量和機器人是否在分配前後使用一致規則。
- 逐步放量時,每個設定版本是否有可稽核的生效時間。
按工作區或家庭叢集分流時,SRM 應先比較叢集數。一個實驗組剛好包含幾個超大工作區,成員資料列出現 51/49 不一定表示分流錯誤;把成員當成獨立隨機樣本反而會製造錯誤告警。
第五步:審查處理後篩選和缺失機制。
有效觸發條件應盡量由實驗處理前的資訊決定。例如「進入結帳頁」可透過兩組都存在的頁面曝光記錄定義; 「點擊實驗組新增優惠券按鈕」無法在對照組等價觀測,用它篩選會讓實驗組天然更多。類似地,實驗組效能 改善可能增加事件上報,效能退化可能減少上報;反作弊、逾時和錯誤篩選也可能刪掉受到處理影響最強的人。
不要預設缺失使用者是隨機樣本。應比較原始分配日誌與每個下游表的差集,抽取缺失 ID,檢查其平台、時間、 版本和行為。若實驗結果影響進入分析表的機率,最終轉換差異會混入選擇偏差。
第六步:決定修復、重建還是重跑。
- 分流設定錯誤或使用者跨組:停止實驗,修復後重新隨機化並重跑。
- 原始分配和曝光完整,確定是可逆的日誌工作遺失資料列:修復工作,從未受偏差的原始事件重建,再重新做 SRM。
- 觸發條件受實驗影響:改為處理前條件,或回到未觸發的意向處理人群;不能直接給人數較少的一組加權。
- 某用戶端版本沒有必要日誌且無法回補:目前實驗無法支援該人群結論,通常應修復事件上報後重跑。
- 比例只因預先計畫的分階段放量改變:按每個時段累加期望人數重新檢定,並保留設定稽核記錄。
重新加權只有在選擇機制已知、可估計且獨立驗證時才可能成立;多數 SRM 恰好表示缺失機制未知。把 49,000 名實驗使用者簡單乘上權重,使總數看起來等於 50,000,不會補回缺失使用者的行為,也不會恢復隨機性。
第七步:把防復發能力放進實驗平台。
每次實驗保留不可變的分配記錄、設定比例和生效時間,並在分配、曝光、觸發和分析人群上分別計算 SRM。 業務效果在完整性檢查通過前不應成為上線依據。定期執行 A/A 測試,驗證分桶、事件上報和分析鏈路在沒有 產品差異時是否仍產生異常。
告警要包含總量、期望與觀測人數、p 值、偏差方向、異常開始時間和主要切片。發布、身分系統、反作弊或 ETL 變更後應自動提高檢查優先順序。實驗結束後仍保存足夠的設定與資料血緣資訊,使團隊能重算當時的 期望人數,而不是只保留一張最終指標截圖。
高品質示範回答
「我不會因為轉換率提升 1.8% 且效果檢定顯著就上線。這個結論假設兩組仍是可比較的隨機樣本,但 50/50 設定下觀察到 51,000 和 49,000 人,期望各 50,000。卡方統計量是 40,自由度 1,p 值約 2.54 × 10^-10,表示樣本比例不符,目前業務結果應凍結。
我會先確認使用者是否真是隨機化單位,以及 50/50 是否涵蓋整個實驗週期。接著把人數沿資料鏈拆開: 分配、實際曝光、符合觸發條件、進入事件事實表、進入最終分析。偏差在哪一步首次出現,就從那一步查。 分配已失衡時查設定、穩定 ID、鹽值和跨組;分配正常但曝光失衡時查發布、效能、當機和重新導向;只有 觸發分析失衡時查條件是否被實驗影響;最終表才失衡時查事件上報、機器人篩選、去重和連接。
我還會按時間、平台、應用程式版本、地域、登入狀態和 ID 類型切片,尋找同一方向且能解釋機制的證據, 而不是挑一個沒有 SRM 的子群繼續上線。原始事件能夠無偏重建時,修復資料工作並重新執行完整性檢查; 若使用者跨組、觸發條件受處理影響或關鍵日誌無法回補,就修復後重跑實驗。
預防上,平台應在展示業務結果前自動執行 SRM,保留不可變分配日誌和比例變更歷史,並分別監控分配、 曝光、觸發和分析人數。再用 A/A 測試、穩定分桶和處理前觸發條件驗證鏈路。只有根因解釋清楚、修復後 SRM 通過,我才重新看 1.8% 的業務提升和護欄指標。」
常見錯誤
- 看到業務 p 值小就直接上線 → 效果檢定建立在樣本可比的前提上 → 先通過 SRM 和資料完整性檢查。
- 只看 51/49 的百分比 → 相同比例在不同樣本量下證據強度不同 → 使用期望人數和統計檢定。
- 把 SRM 當成亂數產生器問題 → 執行、日誌和分析篩選同樣會製造失衡 → 沿全鏈路定位首次偏差。
- 繼續執行到人數變得更接近 → 更多受偏資料不會恢復隨機性 → 立即凍結判斷並查根因。
- 簡單重新加權到 50/50 → 權重補不回系統性缺失使用者的行為 → 只有缺失機制可識別且驗證後才討論校正。
- 只檢查最終分析表 → 無法判斷問題來自分配還是下游 → 保存並比較每個階段的唯一隨機化單位。
- 用實驗組新增行為定義觸發 → 對照組沒有等價機會進入樣本 → 使用處理前、兩組對稱的條件。
- 按成員數檢查叢集實驗 → 叢集規模差異會製造假 SRM → 先按真實隨機化單位檢定。
- 切出一個正常平台就上線 → 事後挑選人群增加錯誤結論風險 → 切片用於診斷,並重建或重跑預定人群。
- 根因修復後沿用舊效果報告 → 原報告仍基於錯誤樣本 → 重新產生 SRM、效果和護欄的完整分析。
追問及應對
追問一:如果同樣是 51/49,但總樣本只有 1,000 人呢?
期望人數各 500,觀察人數為 510 和 490,卡方統計量是 (510 - 500)² / 500 + (490 - 500)² / 500 = 0.4,自由度 1 的 p 值約 0.527。 這不足以判定 SRM。它說明不能用固定的「比例差超過 1%」規則取代統計檢定,但仍應檢查是否有明確的 工程異常。
追問二:總體分配沒有 SRM,只有 iOS 使用者出現 SRM,實驗還能用嗎?
先考慮切片數量、iOS 樣本量和異常是否有一致機制。若 SRM 集中在一個預先關注且規模足夠的 iOS 版本, 並能由曝光失敗或事件遺失解釋,就表示該人群結果不可信。其他人群是否可用取決於分析計畫和根因是否真的 隔離;不能在看到結果後任意刪除 iOS。更穩妥的做法是修復用戶端並重跑預定目標人群。
追問三:未觸發的全體使用者沒有 SRM,觸發分析卻有,最可能是什麼問題?
優先檢查觸發條件。它可能只在一個版本記錄,或由實驗處理後的行為決定。把觸發定義改成兩組都能在處理前 滿足的條件,例如進入頁面而不是點擊新增元件。還要比較觸發事件的上報覆蓋率;未觸發總體正常表示基礎分桶 可能沒有問題,但不能證明觸發後的效果分析可信。
追問四:為什麼不能按已觀察到的組別人數重新加權?
因為 SRM 沒有告訴你缺失的是誰。若實驗組少掉的正好是最活躍、最容易轉換或最容易當機的使用者,人數權重 只能補總量,不能補行為分布。只有選擇機率由處理前變數完整解釋、模型可驗證且分析方案允許時,才可能進行 校正;這需要額外假設,不能作為預設補救。
追問五:按工作區 50/50 分流,但使用者人數是 55/45,算 SRM 嗎?
先看工作區數量。如果工作區數符合 50/50,而實驗組隨機抽到更多大型工作區,使用者人數失衡可能是叢集 規模差異,不是分桶故障。效果分析也必須考慮工作區內相關性。若業務要求使用者流量也平衡,應在實驗設計 階段採用按規模分層或配對隨機化,不能事後把使用者資料列當成獨立分流單位。
追問六:實驗從 10/90 逐步放量到 50/50,如何計算期望人數?
按每個設定生效區間分別計算期望人數,再累加到各組。例如第一階段 20,000 人按 10/90,第二階段 80,000 人按 50/50,則兩組總期望人數是 42,000 和 58,000,不是各 50,000。需要使用分配當時實際 生效的設定和時間,不能用實驗結束時的比例回填歷史。