資料科學面試:如何用 CUPED 降低實驗變異數而不改變因果估計?
面試官考察點
這題考察實驗設計、因果估計和資料品質邊界。面試官希望看到你區分「降低估計變異數」與「改變業務指標」,說明共變量必須來自處理前,推導校正後的平均差,並提出 A/A、隨機分派與敏感度分析驗證結果。Microsoft 把 CUPED 描述為利用處理前資料移除可解釋波動的變異數降低方法;這支持方法的工程代表性,但不能推出任何公司的固定面試頻率。
- 是否明確隨機化仍是無偏性的基礎。
- 是否解釋共變量與結果指標的相關性如何影響變異數。
- 是否識別處理後特徵、缺失值和樣本選擇造成的洩漏。
- 是否給出上線前後可重現的統計驗證,而非只報顯著性數字。
30 秒回答框架
先說邊界:CUPED 只用處理前共變量調整,不取代隨機化,也不把處理後行為放進模型。對每個實驗單位計算結果指標 Y、處理前共變量 X,在全體隨機化樣本估計 theta = Cov(Y, X) / Var(X),再用 Y' = Y - theta * (X - mean(X)) 比較處理組與對照組。若 X 與 Y 相關,Y' 的變異數會下降;因為 X 在處理前且與處理獨立,平均處理效果仍保持目標含義。最後用 A/A、預先固定分析規則、信賴區間和原始指標對照驗證。
回答前需要澄清的問題
- 實驗單位是使用者、帳戶、裝置還是市場?隨機化層級決定標準誤與共變量聚合方式。
- 結果指標是平均值、比例、比率還是分位數?估計量不同,校正和信賴區間不能直接套用。
- 共變量是否在分流前凍結,是否覆蓋所有隨機化單位?缺失值如何處理?
- 是否存在網路干擾、觸發條件或實驗中途換桶?這些會破壞簡單的獨立同分布假設。
- 目標是縮短實驗時間、偵測更小效果,還是降低報告波動?驗收指標要先寫清楚。
分步驟深入解答
第一步:先固定隨機化與分析單位
把單位、分流鍵、觸發規則和主要指標寫入實驗協議。CUPED 是估計階段的變異數降低,不能修復處理組與對照組分派錯誤、樣本比例偏差或網路干擾。共變量應在處理發生前取得,並按同一實驗單位聚合;如果一個帳戶有多台裝置,不能把裝置級共變量直接當作帳戶級獨立樣本。
第二步:建立處理前共變量
選擇與結果指標相關、但不會被處理影響的歷史行為,例如實驗前固定窗口內的活躍次數。先在實驗開始前鎖定窗口與計算邏輯,再把共變量連接到實驗單位。對缺失值、極端值和新使用者設定預先規則;不能看到結果後再挑選最相關特徵,否則會變成事後模型選擇。
第三步:推導校正量
theta = Cov(Y, X) / Var(X)
Y_prime = Y - theta * (X - mean(X))
ATE_prime = mean(Y_prime | T=1) - mean(Y_prime | T=0)當 X 與 Y 正相關時,校正會移除兩組共同的可解釋波動。theta 可以用實驗前歷史資料估計,也可以按預先凍結的全體實驗樣本估計;重點是不能讓處理結果反過來決定共變量或校正規則。對比例、比率和重尾指標,要說明採用的估計量與穩健標準誤。
第四步:證明估計目標沒有改變
隨機化使處理指派與處理前 X 獨立。校正項的期望在兩組相同,因此處理組與對照組的平均差仍針對同一平均處理效果;變化主要在估計變異數。這是在設計與假設成立時的結論,不代表任何回歸調整都自動無偏。若觸發率不同、共變量缺失與處理相關,要回到實驗單位和估計目標重新定義。
第五步:用對照實驗與敏感度分析驗收
先做 A/A 或歷史回放,檢查校正後處理效果是否圍繞零、信賴區間覆蓋率是否合理、共變量是否平衡。上線實驗同時報告原始指標與校正指標、變異數降低比例、樣本數、分流比例和缺失率。對 theta 的估計窗口、共變量截斷、不同使用者層級做敏感度分析;如果結論只在一個任意規則下成立,就不能視為穩健證據。
高品質示範回答
我會先確認實驗單位與隨機化層級,再把主要結果 Y 和處理前凍結的共變量 X 寫入分析協議。CUPED 校正是 Y' = Y - theta * (X - mean(X)),其中 theta 來自共變異數除以共變量變異數。隨機化保證 X 與處理獨立,所以在沒有洩漏、分流正確且估計量匹配的前提下,兩組期望差仍是同一處理效果;相關性越強,估計變異數通常越低。
我不會使用實驗開始後的點擊、訂單或留存作為共變量,也不會看到結果後反覆挑特徵。上線前凍結時間窗口、缺失和極端值規則,做 A/A 驗證假陽性率與信賴區間。上線時同時發布原始和校正結果,監控分流比例、觸發率、共變量平衡、變異數收益與結論敏感度。若網路干擾或跨層級聚合存在,我會先修正實驗設計,再討論 CUPED。
常見錯誤
- 把 CUPED 說成「讓指標變好」,忽略它只改變估計精度。
- 使用處理後行為作共變量,造成 post-treatment leakage。
- 只報變異數下降百分比,不報原始指標、效果區間和 A/A 結果。
- 看到結果後自由選擇共變量、截斷規則或分析窗口。
- 忽略隨機化層級,把使用者級實驗當成裝置級獨立樣本。
- 對比率、分位數或重尾指標直接套用平均值公式,卻沒有說明標準誤估計。
實作取捨
依實驗規模、共變量品質與上線風險決定是否採用 CUPED,並用模擬與護欄指標驗證。
追問及應對
如果共變量與結果幾乎不相關,還要用 CUPED 嗎?
收益會接近零,甚至因估計雜訊增加複雜度。先用預實驗資料估計相關性與變異數收益,再決定是否啟用;不能為了使用方法而製造報告指標。
可以用多個共變量嗎?
可以把單變量投影擴展為多變量回歸調整,但要凍結特徵、處理共線性並使用匹配實驗設計的標準誤。共變量越多不等於越好,必須用交叉驗證或預註冊規則限制過擬合。
為什麼不能用實驗中的點擊次數?
點擊可能已被處理影響,調整它會切掉部分處理效果或引入碰撞偏差。只有明確位於處理之前、且不會被處理改變的變數才可作為 CUPED 共變量。
變異數下降但處理效果方向改變,怎麼辦?
先檢查指標口徑、樣本連接、缺失和極端值,再比較原始與校正結果的信賴區間。若方向改變且不是抽樣波動,應停用該分析版本,查找洩漏或估計量不匹配原因。
如何把 CUPED 結果交給產品決策?
同時給出業務效果、信賴區間、原始指標、校正指標、變異數收益、實驗持續時間和假設限制。產品決策依賴最小有意義效果與風險邊界,不應只看校正後的顯著性。
評分標準
| 維度 | 通過表現 | 失分訊號 |
|---|---|---|
| 實驗設計 | 說清隨機化單位、分流與干擾邊界 | 用 CUPED 修復錯誤分流 |
| 統計推導 | 能寫出共變異數係數和校正平均差 | 只背術語,不說明估計目標 |
| 資料時序 | 共變量全部來自處理前並有凍結規則 | 使用點擊、訂單等處理後變數 |
| 驗證與決策 | 提出 A/A、原始對照、區間和敏感度分析 | 只報變異數下降或 p 值 |
若候選人能把變異數降低、因果邊界、資料品質和產品決策連成可重現流程,可評為強通過;若只會呼叫函式、無法解釋洩漏和隨機化,應繼續追問。