相信唔少玩開數據分析嘅朋友都曾經喺 Reddit r/AskStatistics 上見過呢條經典問題:「Welch ANOVA or Kruskal Wallis?」特別係做緊港金(Hong Kong gold)交易策略回溯測試,或者比較幾個不同投資組合嘅回報率時,好易就會陷入唔知揀邊種統計檢定嘅困境。兩個方法都可以處理三組或以上嘅平均數比較,但背後嘅假設同運算邏輯完全唔同。揀錯嘅話,p-value 可能完全誤導,令你嘅交易決策行錯方向。呢篇文章就會由淺入深,幫你徹底理解 Reddit r/AskStatistics 上爭論不休嘅 Welch ANOVA or Kruskal Wallis 問題,同時教你點樣喺真實港金數據分析入面正確應用。
乜嘢係 Welch ANOVA 同 Kruskal-Wallis?
先由基本定義講起。Welch ANOVA 係傳統單因子變異數分析(One-Way ANOVA)嘅改良版,專門用嚟處理各組變異數唔相等(heteroscedasticity)嘅情況。傳統 ANOVA 要求各組數據嘅變異數相同,但現實世界——尤其係金融市場數據——呢個假設經常唔成立。Gold price volatility 喺不同經濟周期可以爭好遠,Bull 市同 Bear 市嘅回報率標準差可以差幾倍。Welch ANOVA 放棄咗變異數同質性嘅假設,改用調整後嘅自由度同加權計算,令到即使方差唔齊,仍然可以穩健地檢定各組平均數係咪有顯著差異。
Kruskal-Wallis 檢定就係另一條完全唔同嘅路。佢係一種非參數檢定(non-parametric test),唔依賴數據嘅常態分佈假設。Kruskal-Wallis 會將所有數據轉換成等級(rank),然後比較各組嘅等級總和,睇下係咪有顯著差別。你可以當佢係 Mann-Whitney U 檢定擴展到三組或以上嘅版本。呢個方法對異常值(outlier)同偏態(skewness)好強健,非常適合用喺港金市場嗰啲成日出極端價格跳動嘅日回報數據。
假設條件大拆解:常態分佈同變異數同質性
Reddit r/AskStatistics 上啲統計高手成日強調:「揀檢定之前,一定要望真你啲數據。」呢句說話一啲都冇錯。Welch ANOVA 同 Kruskal-Wallis 最大嘅分野就係佢哋對數據假設嘅要求。
Welch ANOVA 嘅假設相對寬鬆過傳統 ANOVA,但仍然有幾個前提:
- 各組觀察值之間要獨立(independence),呢樣嘢喺金融數據通常都做到,只要你唔係用重疊嘅時間窗口。
- 各組數據應該係連續變數(continuous),例如回報率、成交量、變幅(pip movement)。
- 唔需要變異數同質性,呢個係佢最大賣點。
- 數據應大致符合常態分佈,但喺大樣本下,由於中央極限定理,輕微偏離常態都可以接受。
Kruskal-Wallis 嘅假設就更加簡單:
- 各組觀察值獨立。
- 數據係連續或者有序類別變數。
- 各組數據嘅分佈形狀大致相同(例如都係右偏),只係位置參數可能有差異。如果形狀明顯唔同,Kruskal-Wallis 解釋就要小心,因為佢實際係檢定各組分佈係咪一樣,而唔單止係中位數。
好多人喺 Reddit r/AskStatistics 問 Welch ANOVA or Kruskal Wallis 嗰陣,就係卡喺呢度:明明自己數據唔係 normal distribution,方差又唔齊,到底應該點揀?答案係:要睇違反假設嘅嚴重程度同你嘅樣本量。
幾時應該用 Welch ANOVA?方差不齊嗰陣嘅最佳方案
如果你手上嘅數據係每組超過 15-20 個觀察值,而且你主要關心嘅係平均數差異(例如比較三個唔同港金交易系統嘅平均每日回報),咁 Welch ANOVA 通常係一個好選擇。原因係金融回報數據雖然常有肥尾(fat tail),但喺合理樣本量下,Welch ANOVA 對常態性偏離有相當嘅穩健性。
一個典型場景:你想比較四個唔同時段(亞洲盤、歐洲盤、美洲盤、全日混合)嘅港金即市回報率。Levene’s test 顯示變異數有顯著差異(p < 0.05),但各組樣本量都超過 30。呢個時候就可以直接行 Welch ANOVA,唔需要做數據轉換,亦唔使斬腳趾避沙蟲咁跳去非參數檢定。Welch ANOVA 會輸出一個經過調整嘅 F 值同對應嘅 p-value,如果顯著,就可以做 Games-Howell 事後比較,呢個事後檢定同樣唔假設變異數相等。
但有一點必須留意:Welch ANOVA 始終係均值比較,如果你嘅數據有好嚴重嘅極端值,平均值可能會被完全扯開,影響結果嘅可靠性。呢個時候就輪到 Kruskal-Wallis 出場。
幾時應該用 Kruskal-Wallis?非常態分佈嘅非參數救星
當你嘅數據樣本好細(每組少過 10-15)、嚴重偏態、或者經常出現異常波動,Kruskal-Wallis 就係穩陣之選。港金市場容易受突發新聞影響,例如地緣政治局勢升溫、央行突然改變儲備政策,可以令金價單日飆升或急跌 3-5%。呢類極端事件會令回報分佈出現長尾,完全違反常態假設。直接比較平均數喺呢種情況下會好大誤導,因為一兩日嘅極端回報就會扭曲成個組別嘅平均值。
Kruskal-Wallis 因為將所有數據轉化為等級,令到極端值嘅影響大幅減低。舉個例,你比較五個港金期貨策略嘅 Sharpe ratio 分佈,每個策略都得十五個觀察值,數據仲要有明顯左偏。呢個時候用 Kruskal-Wallis 檢定各組中位數(或者更準確講,分佈位置)有冇差異,會比任何均值比較來得更可靠。如果 Kruskal-Wallis 顯著,事後可以用 Dunn’s test(通常加 Bonferroni 校正)去搵出邊幾組之間有差異。
當然,缺點都有。Kruskal-Wallis 嘅統計檢定力(statistical power)喺數據真係符合常態嘅時候會略低過 Welch ANOVA,所以你唔應該冇睇過數據就盲目用非參數檢定。
實戰案例:用 Welch ANOVA or Kruskal Wallis 分析港金策略回報
等我哋模擬一個港金投資者喺 Reddit r/AskStatistics 出文問嘅情境。假設你開發咗四個算法交易策略(Trend Following、Mean Reversion、Breakout、Scalping),每個策略都喺過去五年產生咗 60 個月度回報數據。你想知呢四組策略嘅平均月回報係咪有顯著分別。
第一步,檢查假設。你畫出 Q-Q plot 同做 Shapiro-Wilk test,發現 Scalping 策略嘅回報偏離常態(p = 0.02)。再用 Levene’s test 睇變異數同質性,發現 p = 0.005,即係方差唔齊。呢個情況正正就係 Reddit r/AskStatistics 上嘅典型兩難:常態性有少少問題,方差又唔齊,到底揀 Welch ANOVA or Kruskal Wallis?
穩健做法係兩個檢定都 run,然後比較結果。Welch ANOVA 可能俾你 p = 0.03,而 Kruskal-Wallis 俾 p = 0.04。如果兩個檢定都指向相同結論(喺 0.05 水平顯著),你就可以好有信心話四個策略嘅表現有差異。萬一兩個結果矛盾(例如一個顯著一個唔顯著),通常建議信 Kruskal-Wallis,因為佢對假設嘅依賴較少,特別係當你有明顯嘅分佈問題同方差唔齊同時出現嘅時候。
Reddit 大神點樣睇?精選討論同常見迷思
Reddit r/AskStatistics 上有幾條關於 Welch ANOVA or Kruskal Wallis 嘅討論特別有參考價值。唔少統計學背景嘅用戶指出以下幾個重點:
- 唔好淨係靠 normality test 決定:Shapiro-Wilk 等檢定喺大樣本下會過度敏感,成日將根本冇問題嘅輕微偏差都判定為「唔 normal」。大樣本(n > 30-50)下,集中睇 Q-Q plot 同直方圖,用實際判斷多過機械式 p-value。
- 變異數唔齊 + 非常態點算? 有 Reddit 用戶建議可以考慮使用穩健回歸(robust regression)或者 bootstrap 方法,現今電腦運算力咁強,用 bootstrap ANOVA 或者 bootstrap Kruskal-Wallis 可以完全避開分佈假設問題。特別係金融數據,bootstrap 方法漸漸成為業界標準。
- 事後比較唔好亂用:好多人行完 Kruskal-Wallis 顯著之後,就即刻做 pairwise Mann-Whitney U 仲要冇校正。Reddit 高手提醒一定要用 Dunn’s test 或者 Conover’s test,並且做多重比較校正,否則 Type I error 會爆升。
- 效應量(effect size)同樣重要:無論揀 Welch ANOVA 定 Kruskal-Wallis,p-value 只係話俾你知有冇差異,唔代表差異有幾大。務必報告 eta-squared(for Welch)或者 rank-biserial correlation 等效應量指標,呢樣嘢對港金投資者嚟講先係真正決定策略取捨嘅關鍵。
常見問題(FAQ)
Welch ANOVA 同普通 One-Way ANOVA 有咩分別?
普通 One-Way ANOVA 假設各組變異數相等,而 Welch ANOVA 就唔需要呢個假設。Welch 版本會用加權最小平方法同調整自由度,喺方差不齊嗰陣俾出更準確嘅 p-value。如果你的 Levene’s test 顯著,就應該直接用 Welch ANOVA,唔好再用傳統 ANOVA。
Kruskal-Wallis 檢定係咪比較中位數?
技術上唔完全係。Kruskal-Wallis 檢定嘅原假設係各組分佈相同,對立假設係至少有一組嘅分佈位置唔同。要準確解釋成中位數差異,需要假設各組分佈形狀相同。如果形狀唔同,顯著結果可能係反映分佈形狀差異而唔係位置差異。
樣本量大但方差不齊,係咪一定要用 Kruskal-Wallis?
唔一定。大樣本下方差不齊對 Welch ANOVA 嘅影響有限,尤其係各組樣本量唔好太過懸殊嘅時候。你亦可以考慮用穩健 ANOVA(例如基於 trimmed mean 嘅檢定),或者直接做 bootstrap 方法。
做完 Welch ANOVA 或者 Kruskal-Wallis 顯著之後,點做事後比較?
Welch ANOVA 嘅話,建議用 Games-Howell test,因為佢同樣唔假設方差相等。Kruskal-Wallis 就用 Dunn’s test 或者 Conover’s test,並加 Bonferroni 或 Holm 校正控制多重比較錯誤率。
喺港金數據分析入面,有冇其他更適合嘅統計方法?
視乎你嘅研究設計。如果要控制多個混雜因素(例如市場波動率、持倉時間),可以考慮用 ANCOVA 或者廣義線性模型(GLM)。如果數據係 repeated measures(例如同一組策略喺不同時段),就要用 mixed-effects model 或者 Friedman test。
總結
Reddit r/AskStatistics 上嘅「Welch ANOVA or Kruskal Wallis」爭論,從來冇一刀切嘅答案。最明智嘅做法係:了解你嘅數據特性,檢查變異數同質性同分佈形態,然後根據樣本量同實際分析目的做決定。大致原則係:樣本量充足、主要關注平均值、方差唔齊就用 Welch ANOVA;樣本偏細、分佈明顯偏離常態、受極端值困擾就用 Kruskal-Wallis。必要時兩個都 run,甚至引入 bootstrap 方法加強穩健性。掌握咗呢個思考框架,下次你喺港金策略比較或者任何多組數據分析嘅時候,就唔會再喺 Welch ANOVA or Kruskal Wallis 呢個路口迷失方向。