市場的運作邏輯會隨著時間而改變,策略參數亦會在未來失效。
本文想談談如何用 Chow檢定 來檢測策略參數是否存在 結構性斷裂,在績效明顯衰退之前,提前發現參數失效的警訊。
什麼是結構性斷裂
結構性斷裂指的是時間序列中,變數之間的關係在某個時間點發生了根本性的改變。在量化交易的語境中,這通常意味著我們用來預測報酬的因子權重或係數,在斷裂點前後呈現出截然不同的數值。
舉例來說,假設我們用一個簡單的線性模型來預測股票的超額報酬,其中包含價值因子與動能因子兩個變數。模型估計出來的係數代表了這兩個因子對未來報酬的影響力。在某一年的某個事件之前,價值因子的係數為正的 0.5,代表價值股的溢酬穩定存在;但該事件發生之後,價值因子的係數可能轉變為負的 0.2,代表價值因子在此之後不但無效,甚至變成了負向的訊號。
如果我們沒有檢測到這個斷裂點,就會繼續用舊的係數來生成交易訊號,結果自然是持續虧損。結構性斷裂的檢測,本質上就是在問一個問題:在我們所使用的歷史數據中,是否存在某個時間點,使得前後的統計關係出現了顯著的差異?
Chow檢定的基本原理
Chow檢定的核心邏輯非常直觀,將數據在一個假定的斷裂點處切分為兩個子樣本,分別對這兩個子樣本進行迴歸估計,然後比較分開估計與合在一起估計的結果是否有顯著差異。
首先,假設一個可能的斷裂點 τ。將數據切分為斷裂點之前與之後兩個部分。分別對這兩個子樣本進行迴歸估計,得到各自的迴歸係數與殘差平方和。同時,對整個樣本進行一次迴歸估計,得到整體的殘差平方和。
Chow檢定的統計量計算公式為:
F = [ RSS_pooled - (RSS_1 + RSS_2) ] / k 除以 [ (RSS_1 + RSS_2) / (N_1 + N_2 - 2k) ]
其中 RSS_pooled 是整體樣本的殘差平方和,RSS_1 與 RSS_2 分別是兩個子樣本的殘差平方和,k 是迴歸模型中參數的數量包含截距項,N_1 與 N_2 分別是兩個子樣本的樣本數。
這個統計量服從 F 分配,自由度為 (k, N_1 + N_2 - 2k)。若計算出的 F 值大於臨界值,我們就可以拒絕沒有結構性斷裂的虛無假設,判定該時間點確實存在顯著的結構性變化。
如何選擇斷裂點
Chow檢定的一個關鍵問題是,如果我們不知道斷裂點在哪裡,該怎麼辦?
如果我們已經有一個明確的候選時間點,例如某項重大政策發布的日期、金融危機的爆發時刻、或策略開始出現績效衰退的轉折點,可以直接將該時間點設為斷裂點進行檢定。這種做法被稱為已知斷裂點的Chow檢定。
然而,在許多情況下,我們並不知道結構性斷裂具體發生在什麼時候。這時候可以採用未知斷裂點的Chow檢定,亦稱為Quandt Likelihood Ratio檢定。這種方法會在每個可能的時間點,分別執行一次Chow檢定,然後找出 F 統計量最大的那個時間點,作為最可能的斷裂點。
值得注意的是,當對多個時間點進行檢定時,會面臨多重比較的問題,即使沒有任何真實的斷裂點,純粹因為隨機波動,也可能有某個時間點的 F 值特別大。因此,QLR檢定使用不同的臨界值來調整顯著水準,而非直接套用標準的 F 分配臨界值。
原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文
