← 全部概念地圖
標準

概念地圖・Switchback 實驗設計

分類:創業

這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →

Switchback 實驗設計:把時間切成兩色,自己當對照組

全店只有一組結帳台、一批庫存、同一群店員。想知道那個買一送一到底有沒有用,你會發現客人根本切不開——A 組看得到促銷、B 組看不到,兩邊在同一條走道上撞成一團,數字就髒了。Switchback 換一個東西切:把營業時間剁成一段一段,每一段擲一次銅板決定要不要開促銷,讓同一家店在不同時段輪流扮演兩種角色。代價是它有一套自己的規矩——段要多長、切換之後前幾分鐘算不算、怎麼確定隔壁時段沒有把答案帶壞。

Switchback:一條時間軸隨機切成處理段與對照段 一條橫向時間軸從左到右等分成十四段,交替塗成金色與淡色:金色是開了促銷的處理段,淡色是照原價的對照段,交替順序刻意不規律,代表每一段是隨機指派的。每一段左緣有一小塊斜線區,是切換之後不列入計算的緩衝。時間軸下方另有一條同長度的細帶,五個朱紅箭頭一律向右,表示上一段的效應會滲進下一段開頭。軸上方三個標籤標出段長、緩衝與指派方式。 Switchback:一條時間軸,隨機決定哪幾段開促銷 上排三個標籤,是動手之前要自己訂下來的三個旋鈕 段長 緩衝 指派方式 上一段的殘留往右流進下一段開頭,剛好落在斜線那一小塊 促銷段 對照段 緩衝:不列入計算
哪幾段開促銷由抽籤決定,每一段開頭那一小塊固定不算。

一條時間軸切成幾段,哪幾段開了促銷

把上面那張圖拆成文字,五個元件各管一件事。

圖上的元件它在畫什麼訂它的時候在權衡什麼
一格色塊一段連續的時間,段內所有交易被算成同一個觀測點段愈長,點愈紮實;段愈少,隨機愈使不上力
金色與淡色交替每一段擲一次銅板,決定這一段開不開促銷順序看起來愈亂愈好,太規律就會跟現場的節奏對上
左緣的斜線區切換之後不列入計算的緩衝,讓上一段的殘留先散掉留太窄,殘留混進帳裡;留太寬,資料倒掉一大半
下方的細帶與箭頭上一段的效應往右流進下一段開頭,方向只有一個尾巴多長,緩衝就要多寬
上方三個標籤段長、緩衝、指派方式,動手之前要先訂下來的三個旋鈕三個互相牽動,改一個,另外兩個要跟著重算

表裡最容易被跳過的是第三列。斜線那一小塊不會出現在任何報表上,它只是「不算」,所以最容易被當成可有可無的東西砍掉。可是整套設計能不能成立,就押在它身上——處理段與對照段能不能真的分開,靠的是那幾分鐘把上一段的尾巴消化掉。第五列則是另一種陷阱:三個旋鈕互相牽動,段長一改,緩衝佔的比例、兩週能跑的段數、每一段累積得到的筆數會一起變。

抓四個條件,看你這件事能不能沿時間切

一、干擾走哪一條路。免稅店的促銷會沿著現場流動——同一個補貨箱、同一位店員的口頭推薦、同一條排隊動線。你把客人分成兩組,兩組還是共用這些東西,處理的效果會自己漏到對照組身上,量到的差距被稀釋。這種漏法用人來切擋不住,用時間切才行:同一個時段裡的所有人拿到同一種待遇,干擾就被關進格子裡。自問:我這件事的效果,會沿著什麼東西流到沒被處理的人身上?

二、殘留有多長的尾巴。促銷關掉那一刻,效應不會跟著關掉。剛才被買一送一吸住、正在排隊的旅客,會把帳結在下一段的開頭。免稅店這條尾巴大約十分鐘——一趟從貨架走到櫃檯再刷完卡的時間。尾巴多長,緩衝就要留多寬;量不出尾巴,這個設計就沒有地基。自問:處理停掉之後,它的影響還會拖多久才散掉?

三、一段要撐多久才有量。一段就是一個觀測點,那個點的品質看它裡面累積了多少筆交易。免稅店一段三十分鐘,扣掉緩衝還剩二十分鐘、二十八筆結帳,點是紮實的。換成一小時只賣三筆的店家,同樣切三十分鐘,會得到一整排幾乎空白的點——隨機做得再漂亮也救不回來,因為每個點自己就是雜訊。自問:我的一段裡面,平均累積得到幾筆可以拿來算的紀錄?

四、時間自己也在動。機場最麻煩的地方在這裡——班機時刻表、免稅品補貨、旅行團報到,全都跟著時間走。這些節奏要是跟你的段長對上了,隨機指派就會被綁架:每一個促銷段都剛好卡在同一班長程航班的候機時間。破法有兩層,先讓段長跟現場的週期錯開,事後再把兩組的班次與人潮結構攤開來對一次。自問:這段期間有什麼東西也在跟著時間變,它的週期跟我的段長撞得上嗎?

一間機場免稅店的兩週,把時段排一次

底下這家台灣中部機場的免稅店,是為了把這個結構講清楚而編出來的示意情境,沒有指涉任何真實公司。

實例演練
  • 先排時段表:早上十點開門、晚上十點打烊,一天營業 12 小時,切成 30 分鐘一段,一天 24 段。單位清楚
  • 再擲銅板:兩週 14 天合計 336 段,隨機抽出其中 168 段開促銷,剩下 168 段照原價賣。順序自己亂
  • 切掉開頭:每一段前 10 分鐘不列入計算,一段真正拿來算的只剩 20 分鐘。丟掉三分之一
  • 數樣本:一段平均結帳 42 筆,乘上 20 分鐘再除以 30 分鐘,有效區剩 28 筆;336 段合起來 9408 筆。量夠看
  • 讀差距:促銷段平均客單 1850 元,對照段 1720 元,兩邊相差 130 元,換算約 7.6%。還沒扣成本

這張時段表最值得記住的接縫,在那 10 分鐘。它看起來像浪費——336 段各丟 10 分鐘,兩週等於把五十六個小時的資料倒掉。可是不丟,前一段被促銷吸住的旅客會把帳結在下一段頭上,對照段的客單被墊高,130 元那個差距會縮水,而你在報表上完全看不出來。第二個接縫在班機。這兩週要是有一班每天固定進場的長程航線,它的旅客會系統性地落在特定時段;隨機指派能攤平隨機的東西,固定週期的東西要另外拉出來檢查一次。以上為說明結構用的示意情境,僅供理解框架之用。

段長訂錯的時候,會壞在哪幾個地方

  1. 太短,殘留就吃掉整段。把段從 30 分鐘壓到 10 分鐘,緩衝那 10 分鐘等於整段,可用的交易剩下零筆。多數人這時會把緩衝一起砍掉——砍掉的下場是每一段都混著上一段的尾巴,處理段跟對照段互相污染,量到的差距往中間靠,一個真正有效的促銷會被判成沒用。段長的下限由殘留時間決定,跟你想跑幾段沒有關係。
  2. 太長,段數變少,隨機就攤不平。反過來把段拉到四小時,一天只剩 3 段,兩週 42 段。隨機分配靠的是段數多,把你沒觀察到的干擾攤到兩邊——段數一少,一次不巧的抽籤就能讓促銷段全都落在下午人潮最旺的時候。你會拿到一個很漂亮的差距,它其實在測人潮。段數少的時候還得逐項檢查兩組的時段分布,那等於承認隨機沒把工作做完。
  3. 緩衝跟著段長走,訂寬了等於把資料倒掉。緩衝的長度由殘留時間訂,可是它吃掉多少比例,取決於段有多長。30 分鐘的段留 10 分鐘緩衝,有效區還有三分之二;同樣留 10 分鐘,段若壓到 15 分鐘,有效區只剩三分之一。很多人只調段長、忘了這個比例跟著變,兩週跑完才發現有效樣本掉了一半——那時候已經沒有第二個兩週可以重來。
  4. 段長撞上現場的節奏,隨機會變成偽裝。整點換班、每天固定時間的補貨、班機起降的批次——現場本來就有自己的週期。段長要是剛好是那個週期的整數倍或整除數,抽籤看起來完全隨機,實際上每一段都被同一件事蓋了章。這種錯最陰險的地方在於:所有隨機性檢查都會過,因為指派真的是隨機的,壞掉的是「段」這個容器。先把現場的週期畫出來,再挑一個跟它錯開的段長。
  5. 一段就是一個觀測點,樣本數要用段來數。9408 筆結帳很好看,可是它們來自 336 段,同一段裡的交易共享同一批客流、同一個店員、同一場天氣。把 9408 當成獨立樣本丟進檢定,信賴區間會被壓得比真實情況窄,一個還泡在雜訊裡的差距會被判成顯著。正確的做法是先把每一段收斂成一個數字,也就是那一段的平均客單,再拿 336 個數字去比。帳面上樣本變少了,結論才站得住。

切開時間之後,誰還在互相干擾

痛點視角

隨機分配管得了統計,管不了動機。

Switchback 把干擾關進時間的格子裡,這件事做得漂亮:它讓一家只有一組結帳台的店,也跑得出乾淨的對照。可是這張圖畫得出哪一段開了促銷、哪一段沒開,畫不出那位旅客為什麼在登機前二十分鐘才掏出信用卡。130 元的差距只是結果,原因要另外去問。把《痛點》的 P.A.I.N. 攤開來,這張圖只填得動最後那個 N——能不能算清楚;P(誰在痛)、A(痛得夠不夠)、I(現在他怎麼忍)三格還是空的。那 7.6% 可能來自「怕在國外買貴」,也可能來自「行李箱還有空間」,兩種痛接下來要做的事完全不同。今晚做一件事:把上一次做過的促銷攤開它的時段表,圈出三個你還沒有解釋的高峰,明天挑其中一個時段去現場站二十分鐘,看那二十分鐘裡誰在買、他在猶豫什麼。

常見問題

Switchback 跟一般的 A/B 測試差在哪裡?

A/B 測試把「人」隨機分成兩組,前提是兩組不會互相影響。實體店面、外送媒合、叫車派單這些場景違反這個前提——同一批庫存、同一群外送員、同一個路網,一邊被處理,另一邊的體驗就跟著變。Switchback 把隨機的對象從人換成時間區段:一段時間裡的所有人拿到同一種待遇,比較的單位變成段與段。代價是樣本數從「人數」掉到「段數」,統計效率低很多,同樣的差距通常要跑比較久才看得出來。

段要切多長才對?

沒有標準答案,兩端各有代價。下限由殘留時間定:段長至少要是緩衝的兩、三倍,否則丟掉的比留下的還多。上限由段數定,兩週能跑出來的段數要夠多,隨機才攤得平你沒觀察到的東西。實務上先量殘留——把處理關掉之後,指標多久回到原來的水準,那個時間就是緩衝的長度,段長再抓它的三倍上下。然後拿現場的自然週期,像換班、補貨、班機批次,回頭檢查一次,確定段長跟它們錯開。

緩衝期丟掉的資料,有沒有辦法救回來?

可以,但要付別的代價。一種做法是資料全留,改在模型裡放一個「距離切換點多久」的變數,讓它自己把殘留吃掉——好處是一筆都不浪費,壞處是你得相信自己對殘留形狀的假設。另一種是把段長拉長、緩衝維持不變,讓被丟掉的比例下降:段 60 分鐘、緩衝 10 分鐘,只丟六分之一。代價是兩週的段數從 336 掉到 168,隨機攤平的力氣跟著減半。先跑一版最保守的、看結論穩不穩,再決定要不要省。

只在一家店做,結論能套到別家店嗎?

不能直接套。Switchback 測出來的是「這家店、這兩週、這些旅客」身上的效果,內部效度很高、外部效度很窄。想擴出去有兩條路:一是在多家店同時各跑各的 switchback,再把每家店的段層級結果合起來看,順便量出店與店之間的差異有多大;二是先想清楚這家店哪裡特別——機場的客人趕時間、比價少、身上帶著剛換的外幣,這幾件事在市區店都不成立。把「哪些條件讓效果成立」寫下來,比把 7.6% 抄到別家店有用得多。

想驗一件會互相干擾的事,先問時間能不能切得開。切得開,就往下訂段長與緩衝;要先弄清楚樣本量要多少才看得出差異,去看檢定力與樣本數那張圖。要是干擾是沿著地理擴散的,就把切割的維度從時間換成地圖,那是地理保留組在處理的事。

發現引用或事實有誤?請寫信回報,我會依更正政策修正。

喜歡這篇文章嗎?

每週幫你拆二本好書,把判斷力、好書金句、好問題,直送你的信箱。

不適合你可隨時退訂 · 每週兩封,陪你把書讀進生活。

送出即表示同意我們依隱私權政策使用你的 email。