為什麼多因子模型不做時間序列的股價預測?

剛剛開始接觸量化,發現典型的多因子量化模型都是在截面上做回歸,而不是對股價做時間序列的回歸,想問問大神們這是為什麼呢?和做基本面的分析師朋友聊天,感覺他們在預測股價的時候更多的是從時間序列分析盈利和估值變化。不知道為什麼量化很少對股價做時間序列分析呢?


你想想狹義上股票多因子模型的目的是什麼?就是橫截面選股呀!希望賺取的是不同股票之間的橫截面利差,那你不用橫截面回歸用什麼?通過橫截面回歸,可以對阿爾法因子進行提純與EV優化。從因子角度而言,阿爾法因子並不排斥來自時間序列回歸的因子,例如beta ivol之類的因子。

從廣義上來看,多因子的方式方法當然可以用來做時間序列分析啦!不過此時的目的就是特定標的擇時或曰收益率預測了。部分高頻交易類研究就會涉及對未來多周期收益率的回歸分析,你完全可以用多因子的方式製作諸如開倉因子之類的東西嘛:)


問題問的不錯,一般真正了解的人不多。

首先,多因素模型是用來解釋股票收益率的,不是用來做預測的。或者說用來解釋和預測收益率的波動,而不是收益本身。這一點從多因子模型的解釋變數都是收益率同期就可以看出來。

其次,多因素模型也分Macroeconomic型(FAMA-French提出)和Fundamental型(APT理論和BARRA),主要區別是M型用多空組合直接構造風險溢價,然後時間序列回歸估計風險係數;F型直接用風險暴露指標橫截面回歸估計風險溢價。不管怎麼構造風險溢價,估計風險係數,都是為了解釋,而不是預測。

如果我們要預測估計,需要根據當期的風險指標(或者叫阿爾法指標),預測下一期的收益率,這時可以建立時間序列ARIMAX模型,但效果一般,最好是機器學習模型,可以嘗試一下。

如果想深入鑽研,可以參考:

股票量化投資入門:從阿爾法本質和三種類型的阿爾法策略談起 - 量邦社區


arch是有用到的,但不是在預測收益上,而是在預測風險上,攤開胸哥的書,你看看它是適合預測收益還是預測波動,就明白了。如果你對時間序列的股價預測有自己的做法,那麼進行處理後的信息可以放在alpha因子里,該信息就能反應在你的模型中了。你所說的分析師預期一直是重要的alpha因子。


多因子模型是應用最廣泛的一種選股模型,基本原理是採用一系列的因子作為選股標準,滿足這些因子的股票則被買入,不滿足的則賣出。

舉一個簡單的例子:如果有一批人參加馬拉松,想要知道哪些人會跑到平均成績之上,那隻需在跑前做一個身體測試即可。那些健康指標靠前的運動員,獲得超越平均成績的可能性較大。多因子模型的原理與此類似,我們只要找到那些對股票的收益率最相關的因子即可。

多因子選股模型的理論基礎是barra風險結構模型,整體框架如下:

多因子模型本身就是選股模型,而非擇時模型,具體可以參考:[量化學堂-金融市場]Barra風險結構管理模型


其實是有的,但是應該是橫截面和時間序列混著回歸。你可以去看看德意志銀行關於style rotation的研報,它對factor returns的估計就是n個外生變數的前T個時期的線性回歸模型。如果光對股價做時間序列回歸,如garch,arima,ma等只關注了股價本身的序列特點而失去了很多影響股價的信息,預測效果不會太好。

關於BARRA模型,其實本身是一個風險模型,分析股價未來走勢並不是它最開始的用法,famma-french也基本是拿來做排序的。我個人感覺股價不是一個很好預測的東西,所以一般都傾向於去做排序而不是預測真實值?如有錯誤請指出。


理論上是可以的。首先,將因子組合起來的方式有很多,既然樓主說的是線性回歸,那就拿線性回歸模型舉例。

R = eta_0+eta_1X_1+dots+eta_nX_n+epsilon

這個模型裡面, X_i 是因子值,而我們回歸出來的係數 eta_i 我們一般稱之為因子收益。要注意的是,這裡面有一個很重要的假設,就是 eta_i 是相對不變的。比如預測下個月股票收益的時候,我們認為下個月的因子收益和前幾個月一樣,於是我們會用不變的因子收益 eta_i 乘上相對變化的因子值 X_i 去預測股票收益。有些策略為了增加 eta_i 的穩定性,還會使用panel data, 因為這樣比較符合本來的假設。樓主說的從時間序列分析盈利和估值變化,實際上是指有些因子值 X_i 自帶時序結構,比如PE值我知道的會有 mean reversion 的特性,而正是這種特性使得PE這個因子有收益,但並不代表它的因子收益 eta_i 就有什麼時序結構。

如果改變這個假設,我們可以做什麼?比如假設 eta_isimmathcal{N}(mu_i,sigma_i) ,用貝葉斯統計的想法,假設 eta_i 有prior distribution, 去做貝葉斯回歸,用MLE測量係數,是不是帶點時序的意思了呢?

當然我們可以直接套ARIMA模型在 eta_i 上,這也就是為什麼我一開始說理論上是可以的......但是現實當中有很多限制條件不允許我們這麼做。首先因子收益有ARIMA結構的本來就少,很多是短期,還分行業,一個模型里有假定ARIMA的 eta_i ,有假定不變的 eta_i ,有假定prior distribution的 eta_i ,這麼亂的模型你怎麼跟老闆解釋,老闆怎麼跟客戶解釋?再一個,線性回歸模型最大的問題在於當你加入新的因子時,之前的測量出係數 eta_i 會變,很可能把你之前測好的ARIMA結構直接破壞了,策略維護起來也一個大問題。

所以說線性回歸模型本來就不是一個有利於分析單個因子表現的模型,想分析單個因子表現的話,不如像fama-french那樣,把所有股票按因子值分成3堆,或者10堆?然後第一堆的平均收益減去最後一堆的平均收益就是因子收益,當然直接在截面上回歸也是可以的,因子係數就用時序回歸。優點是你可以考慮用 mean-variance optimization來優化因子權重,我知道的很多第三方多因子風險模型喜歡用這個時序回歸模型,比如BARRA。不過論阿爾法賺錢能力,個人感覺線性回歸模型還是更靠譜點。


worldquant的101alpha里有一些時間序列上的排序操作。


你說的應該是Fama French三因子和五因子模型吧,這個問題從多因子模型的建立之目的來看。首先請理解,這兩個模型都是學術界(芝加哥大學商學院)先發明,industry再拿來用的。從一開始,就是用來解釋股票跨期回報率(cross-sectional return)的,注意是回報率!而不是股價。從一開始,我們就只關心構成股票回報率的因子是什麼?CAPM揭開了市場風險會與股票回報率正相關,HML和SMB則是市場中隱藏很深的風險的疊加因子。


預測n只股票收益率容易呢,還是對這n只股票構建多空組合容易呢?


我的理解是 完全可以這麼干。也完全有這麼乾的人 把N個(最多可以是全市場,N=3000+,或者某個票池)股票當N個期貨品種用類似CTA的模型去跑。只不過看起來這種做法出結果比傳統的因子打分模型要困難一點。


多因子有時間序列的預測,只是不是股價,而是下一期的個股收益率和風險


因為做因子模型的意義,就是盡量避免在時間序列上的預測。或者你可以認為是去持有一些風險,而不是擇時(timing)風險。你多做些模型就可以看出來,一般時間序列模型的sharpe會比橫截面要低一些


多因子是量化選股,時間序列是量化擇時。你先選出一個股票池,然後再擇時買入賣出。


首先,多因子模型是用來解釋收益率的,其假設是所有股票的收益率都與一組因子線性相關,這裡所有股票的收益率就是截面上的概念,這裡並不涉及到時間序列上的概念。

其次,如果將多因子模型用來做時間序列上的回歸,那麼對回歸係數的解釋就是因子對股票收益的貢獻在整個時間段上都是回歸出來的係數值,這表明時間序列上的回歸假設了因子對收益的貢獻從時間上來看是穩定的。但是實際上能夠對股票收益產生穩定影響的因子只有大盤的收益率,所以在算beta時就是用時間序列上回歸計算的。


{P}_{1} = {P}_{0}(1 + {R}_{1})

{P}_{2}={P}_{0}(1+R_{1}+R_{2})

{P}_{n}={P}_{0}(1+R_{1}+R_{2}+...+R_{n})

P 是股價, R 是收益。 P_{0} 是起始價格,數值固定,一般情況下 P 遠大於 R

用股價做預測分析有兩個問題

1. P_{0} 實際上是無用數值

2. 去除 P_{0}後,P_{2} 中有一半都是 P_{1} 已經包含的信息,依此類推


時間序列主要是用在套利上面,比如基於相關性的協整套利


推薦閱讀:

大數據風控用了什麼模型?有效性如何?
SPSS做相關分析,通過了顯著性檢驗,但相關係數低,怎麼解釋?
假設有一個「真」隨機序列,那如果把這個序列記錄下來重新放一遍,請問還是「真」隨機么?
1000桶水,其中兩桶有毒,豬喝毒水後會在15分鐘內死去,想用一個小時找到這桶毒水,至少需要幾隻豬?
Statisticians和Data Scientist到底是怎麼聯繫在一起的?

TAG:統計 | 股票分析 | 量化研究 | 量化交易 | 多因子模型 |