當你同時使用多個因子時,一個常見的問題是,這些因子之間常常互相關聯,會出現共線性問題。正交化處理,就是為了解決這個問題。本文想談談因子的正交化處理。
正交化
在多因子模型中,價值因子,如本益比,和規模因子,如市值,常常相關,小盤股的價值因子往往比大盤股更極端。動能因子和波動率因子也可能相關,高波動的股票通常動能也較強。如果不做正交化,你很難判斷一個因子的預測力是來自它本身,還是來自它與其他因子的相關性。
正交化的核心概念:把因子變成垂直的向量
正交化的數學本質,是把因子視為空間中的向量,然後讓它們互相垂直。想像兩條線,如果它們的夾角是90度,就是正交的。在因子空間中,正交的因子之間相關係數為零,彼此獨立。
在量化因子處理中,正交化是通過線性變換實現的。具體來說,就是把一個因子分解為兩部分:一部分可以被其他因子解釋,投影到其他因子上的分量,另一部分是獨有的,殘差。正交化後的新因子,本質上就是這個獨有的殘差。
Gram-Schmidt正交化
Gram-Schmidt正交化是將一組相關因子轉化為一組正交因子最常用的方法。這個過程非常直觀:從第一個因子開始,逐步移除每個新因子與前面所有因子的相關部分。
假設你有三個因子 F1、F2、F3,它們之間可能存在相關性。Gram-Schmidt正交化的步驟是這樣的:
- 第一步,保持 F1 不變,記為正交因子 G1 = F1。
- 第二步,將 F2 中與 G1 相關的部分去掉,得到 G2 = F2 - b × G1,其中 b 是 F2 對 G1 做回歸的係數。
- 第三步,將 F3 中與 G1 和 G2 相關的部分都去掉,得到 G3 = F3 - b1 × G1 - b2 × G2。如果還有更多因子,就重複這個過程。
實際上,這個過程就是對因子做一系列迴歸,每次用一個新因子對所有已經正交化的因子做迴歸,然後取殘差。實務上,這等同於對整個因子矩陣做QR分解,然後取 Q 矩陣(正交矩陣)作為新因子。
正交化的局限
正交化雖然解決了共線性問題,但它也有一個代價:解釋性下降。正交化後的因子已經不是原來的因子了,而是剔除了其他因子影響後的殘差。例如,正交化後的價值因子已經不是本益比了,而是本益比中與動能、波動率、規模等因素無關的部分。這對於需要向投資人解釋策略邏輯的交易者來說,可能會增加溝通難度。
另一個需要注意的是,正交化處理依賴於樣本期間的相關結構。如果市場結構發生變化,過去的正交化關係可能不再適用,需要定期重新計算。在實務上,正交化後因子的時間序列平穩性通常較差,容易出現異常值或不穩定的波動。
原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文

