在量化交易中,當我們計算因子值時,經常會遇到一些極端值。本文想談談一些簡單常見的因子極端值處理方法。
為什麼極端值會影響因子分析
大多數統計方法,如線性回歸、標準化,都假設數據的分佈是相對連續的,沒有極端值。當因子值出現極端值時,它們會拉偏模型的估計。
舉例來說,你計算某個因子與未來報酬的相關係數。大部分股票的因子值在 0 到 20 之間,但有一檔股票的因子值是 500。這一個極端值會把相關係數拉高,讓你誤以為因子有效。如果你沒有處理這個極端值,你的回測結果可能是虛假的。
方法一:刪除
這是最直接的方法:把極端值直接從數據集中移除。常見的刪除標準包括:因子值超過均值 ± 3 倍標準差、因子值超過 Q3 + 1.5×IQR、因子值超過某個百分位數。
優點是簡單、直接,完全消除極端值的影響。
缺點是如果極端值是真實的市場事件,刪除它們會讓你低估尾部風險。當樣本量較小時,刪除極端值可能導致資訊損失,特別是在金融數據集規模相對有限的情況下,這個影響會更明顯。
方法二:縮尾
縮尾不刪除極端值,而是把它們替換為某個百分位數的值。例如,5% 縮尾就是把所有小於第 5 百分位數的值替換為第 5 百分位數的值,把所有大於第 95 百分位數的值替換為第 95 百分位數的值。縮尾保留了樣本數量,同時降低了極端值的影響。
優點是保留了所有樣本,不會損失數據量,處理方式較為穩健。
缺點是會改變數據的真實分佈,如果縮尾比例過大,可能會掩蓋真正的極端事件。在金融市場中,極端事件往往包含重要資訊,過度縮尾可能導致低估風險。
方法三:轉換
轉換是對因子值施加一個非線性變換,壓縮極端值的影響,同時保留所有樣本。常見的轉換包括:對數轉換,適用於右偏的正數因子;平方根轉換,比對數更溫和;Box-Cox 轉換,用一個參數自動找到最佳轉換方式;Rank 轉換,把因子值轉換成排序,完全消除極端值的影響。
優點是保留所有樣本,且可以同時矯正偏態。
缺點是解釋性下降,轉換後的因子值不再是原來的單位。但不同轉換方法的效果差異明顯,可能需要搭配交叉驗證來判斷最適合的處理方式。
原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文

