
前言:
我是狂徒,一段時間沒上D卡了,趁周末寫了一篇因子的文章,快速帶過一些心得。
如果你不認識我,只要知道我是個不務正業的浪人就好。
我沒有商科或金融背景,愛看網路資料,偶而寫點文章,歡迎各位批評指教。
近期我比較常在FB/IG出沒,如果有問題或建議,可以留言或私訊找我,我不常登入就是了。
另外很重要的一點,我誠徵書或貼紙的拍照model,如果妳/你自信開朗也願意試試,歡迎聯絡 :)
#####################
今天談「因子」在投資中的一些概念。
如果你對因子投資有興趣,除了可以和我討論之外,我也介紹兩個台灣的朋友,Frank和Jin.
兩個都業界學界實力派,Frank是投資沙岸撿貝人,CFA 3過;Jin則是我頭號大弟子,台大財金碩+資科(他應該都可以自立宗派了但很低調)。
事實上我們很常有意見不同的地方,但討論就是這樣才好玩。
https://www.facebook.com/valueshellseeker
https://www.facebook.com/p/Jin-%E6%A7%93%E6%A1%BF%E6%8C%87%E6%8A%95Lab-100092414174693
關於我對被動投資、CAPM和多因子的簡短想法,各位朋友可以參考這篇。
https://www.facebook.com/CapMadX/posts/pfbid0qP1b87efYaLM7DymZya5dcyALxQdYGe1C7tTuixh25ZUdQuqBnxNVPjXMQUErxEgl
在我寫的被動投資書《穩定致富》中,我建議讀者可以延伸閱讀一些資產定價的書,包括實證和理論。
這裡我快速把FB文章的脈絡接起來,如果各位想要深入了解,可以依據我提到的模型去研究。
不過基於功利性,我不推薦細讀,瀏覽即可。
先來點化石級理論101,這是近代投資框架的基石。
在隨機貼現(SDF)這種大一統模型之下,如果你只用前兩階矩描述投資人要的投資策略特性,或報酬是橢球聯合分布,就會讓二次型(MV最優)能夠描述效用函數,這時決策只和她的財富兩階矩有關。
如果你再假設他所承受的風險只有市場(以及MV有效、有無風險資產、同質預期、單期、無摩擦...等一堆假設,我就不展開),那可以簡化成一個帶Beta的訂價模型,也就是CAPM.
而Merton的ICAPM則是對於單期CAPM的跨期拓展,不但有多因子,而且關心市場和狀態的變化。
至於CCAPM,就是一種基於消費、一聽就是經濟學產物的模型。(其中Campbell Cochrane的外生習慣偏好就是個例子。)
另一方面,APT本身是基於無套利,也不關心投資人是否理性、用什麼效用函數的假設,你只要知道他用多因子來定價即可。
那你怎知上面這些模型準確?
答案是,可以用一些工具來檢測。
兩向量內積不大於兩長度的乘積,這是柯西不等式。
應用在SDF上,資產的超額報酬期望值,在貼現因子E[m]規範到1的時候,等於和SDF的負共變異數。
同時這共變異數的絕對值,也不大於資產超額報酬的標準差和SDF標準差的乘積。
或者同規範下,一個合理模型的理論最大夏普率,應該不大於SDF的標準差,這個判斷準則就是「HJ邊界」,而對應的理論SDF和可投資空間張成的SDF的最小距離就叫HJ距離。
(如果你看過John Cochrane的Asset Pricing, 可參考§5.6, 我本來要在我的書中放入此當延伸閱讀,但考量到年代太老。)
那針對多因子模型呢? 可以用GRS檢驗。
如果模型夠好,多個Alpha=0是虛無假設,而我的p告訴我排除不了,那只好當模型在現有樣本下「無法拒絕」。(這裡小樣本和p hacking又是另一回事了。)
再來,GMM可以視為用理論的矩來擬合現實矩,因為不挑剔分布模型,也接受異質性變異數和序列相關,所以很常被用在模型的檢驗上,包括SDF和CAPM.
所以,之後的FF3/5/6, q4/5, Carhart4...也都可以藉由上述的工具來深度不等的檢驗。
「狂徒我還要,有沒有特別針對因子的?」
我就知道,上進的妳會這麼問,當然妳不問我還是會跟妳說。
我們剛剛看到各種誤差檢驗法,像是Alpha, R², HJ距離等,但考量到誤差結構,因子值得更好的待遇。
像是Newey West, 針對的就是異質變異數和自相關等會造成OLS偏差的特徵,讓t, p都穩定。
或是考慮到包含時間的面板資料,雙向聚類就可以處理兩資料的相關性。
當然還有各式的修正,像是小樣本修正和Shanken修正,其中後者又和Fama Macbeth有緊密關係。
FM2可以說是傳統因子投資繞不過的工具,而隨著理論演進,後人使用截面bootstrap, 隨機檢定、樣本切分、regime shift(應該翻成市場變換,但我從來不知道中文怎說)的穩定性...來檢驗這模型的效力,也因此會有Shanken修正,讓第二步標準差能反映第一步截面回歸的估計誤差。
好,現在先換個檔,我從別的角度來輕鬆聊因子這件事。
只說大概念,不談理論推導和工程細節(當然如果我哪裡說錯也歡迎告知)。
或許你會認為,因子的知識不少,但它也只是「量化」投資的一環。
在沒有配套流程的情況下,空談因子根本沒辦法改變投資組合的收益和風險。
妳至少需要有數據、模型和策略的支持,才能讓想法落地,而這還只是非常簡陋的說法。
我沒有要細談坊間的因子投資文化,因為這很大部分是券商想要獲利、民眾想要跟風的產物,例如Smart beta和各種ETF.
不是不行,但是你要知道這中間的傳導鏈很長。
因子要有效、未來要能重現歷史、券商要能把因子曝露做到商品上、超額收益(或IR)要能蓋過內扣成本...妳才真正有得利。
問題是,你怎知道因子的效力?
據我觀察,大部分人只是買個心安,少部分人會去看原始的方法論和相關學術論文,但只有真正認真的投資人才願意且有能力「回測」復現。
(我文章是寫給投資人看的,這也是我非常早期在D卡就討論回測的原因。)
這樣說好了,回測幾百個學術因子要讓個人電腦跑一整天,時間不長,但你這樣做了嗎? 而更後面的步驟我就先不談了。
測試,是區分聽明牌心態和科學研究的分水嶺。
我就曾經幾次在酒店和朋友互相招待,一起拿著筆電跑績效回測,把我們框的陪玩小姐姐/傳播晾在旁邊喝酒唱歌,這就是投資態度。
順便八卦,我夢到某國就有機構自營因子是做錯的,而自營Alpha實力通常要強於公募,因此妳可以猜一下公募ETF的正確率。
(自營是機構自己投入,策略虧損要自己承擔;公募ETF只是賺民眾錢而已,策略虧損也能穩賺內扣。)
「狂徒,所以應該怎麼做?」
一般而言,我們會分割資料集(訓練、驗證、測試)、設定(超)參數搜索的預算、使用多重檢定控制等方式,確保嚴謹性。
其中多重檢定又有一些分支,包括錯誤發現率檢驗(BH法、Storey q值法等,隨假設效力切換)、p值逐步重採樣系列,以及之後的弱隨機對照和隨機優越檢定(這Jin做過)。
如果你聽起來有些元素很像ML,也叫做統計學習,恭喜你答對了,他們確實同源。
對於一個因子,也應該考量一些如排序法和迴歸法的一致性,Barillas Shanken的夏普型檢定(也有人用更傳統的截面Fama MacBeth和時序GRS的F檢定),替換測試等等。
如同我之前提到的,這個因子到底是風險補償還是錯誤行為? 你該區分嗎?
還是對你來說根本沒差,你只要策略收益?
這些看看有道理、實作都是抉擇的事情,都考驗一個因子投資人的基本功。
再來看看,人們為什麼要用因子體系?
答案很簡單,算力和信心不夠做端到端。
大家都希望把原始資訊輸入系統,直接得到下單訊號,但實際上沒人能有意義的做到,所以才會以分次提取、篩選的方式,抓出因子特徵。
數據預處理、清洗、特徵工程、映射、優化...等,就是在把總工程量降低到可接受的範圍,並且讓人類可以清楚每個環節的原理,期望最小化理論和實盤的差距。
從這個角度來看,因子有重要地位,不然策略只是垃圾進出。
然而檢視整個流程,投資追求的不犯低級錯誤,比單點做到卓越還重要,所以「大因子主義」很可能會造成資源錯配。
接下來,我們來看「可解釋性」。
一方面,有些人會希望看到經濟的可解釋,這樣的因子比較可能穩健存在,且更讓投資人安心。
然而這麼做的代價,往往就是讓因子之間的「共線性」很強,導致固定因子數量下的組合特徵可解釋力縮小。
另一方面,有些人寧願不要強可解釋力,而希望用統計學的方式盡量排除純機率產物。
他們的各種因子可能沒有準確名稱,但比較好抓到報酬。
當然這兩者的偏重,隨著流派而不同,也有些方法試圖解決這種衝突,例如偏向無損的正交化、PCA/iPCA...
至於特徵縮減是提高CP值的方法,像是eigen投組、Nagel等人的SDF投射,還有嶺和收縮等技術,都是好嘗試。
可是說到底,在線性組合和模型基底的前提下,你注定會損失很多交互項的資訊。
如果要再顧及簡潔性而強制「稀疏」,那就經常(尤其在樣本充足下)進一步犧牲了模型的表現。
「狂徒,怎麼辦?」
看起來讓人類能理解,以及實際上有效果,很難兼顧。
不過好消息是,還是有一些可能的突破點。
例如「因果」性的因子,我們可以用一些因果貝氏網路圖,重現風險和報酬的傳導方向和順序(若要考慮報酬時序變化,通常用DAG/PCMCI),篩選出真正造成影響的父節點。
這不僅能最大無損的降維,而且還能提升因子表現穩定性。
一些像是雙重差分(DiD)檢查平行趨勢或事件研究的方法,多期錯位的處理,以及試圖解決內生性問題的工具變數(IV的關聯性、外生性和弱工具穩健檢驗),還有底層工具如雙重ML、雙重穩健、去偏誤的LASSO、後(變數)選擇推論...都在讓投資人更能掌握因果性,例如穩健推論風險價格。
另外一條路就是引入XAI(用到LIME/SHAP/GAM),試圖用另一個較小的擬合模型、局部代理和歸因框架,解釋大因子模型的原理。
雖然這比較像是後天賦予一個機制經濟敘事的定義,包括摩擦限制、套利、資訊擴散函數,但這種proxy的因果圖或結構方程式(利用N/PC/FCI再剪枝),效能往往好過於人類的猜測和感覺。
因此你能驗證和理論的方向是否一樣,而不是只停留在重要度排名。
你說我為何考慮這些?
大概是因為我之前和Jin討論過Pastor Stambaugh貝氏先驗(和階層先驗)和收縮、流動性因子,還有和頻率派「懲罰項」而有些心得。
至於降維這件事,又有很多非線性的作法和嘗試。
像是利用自編碼器(autoencoder)的表徵學習,提取出潛在因子(latent factor),也可以減少壓縮損失。
或是壓到流形(manifold)上,再用距離、局部線性或NN來處理,也有人嘗試在理論上使用TDA(topology)和同胚態射(homeomorphism).
(跳脫因子區,也有人用Monte Carlo和HRP家族來解決「維度爆炸」問題,但那比較屬於處理高維資料,妥協於算力的工程手段。)
因子挖掘呢? 看你信不信工程自動化。
人力做到規模最大的應該是WorldQuant,這個有比賽過、當導師的會很清楚,但我覺得相當血汗。
(當然如果你志在進入量化機構,有WQ的經歷是加分項,只是妳最好要知道這可能僅因為妳耐操。)
至於自動生成,可以分成數據驅動和知識驅動。
數據驅動又分為rule based的算子因子生成,包括暴力因子組合、GP/GA,或是ML提取、RL改進的做派。
知識驅動可以是單純的RAG+embedding+LLM,接近使用GPT的作法,或是進一步耦合的RD agents,能自動讀論文並和策略區共優化(co optimization).
現在當妳很高興的拿到一堆單因子,好戲才要開始,因為妳要考慮怎麼組合它們。
就以混頻率、多模態的原始因子而言,你怎知Alpha decay, 動態性是什麼函數?
妳要怎麼把輿情、價量、統計、財報、影音...的資訊融合?或乾脆捨棄?
業界可以很輕易的挖到破億因子,實際入庫的從幾百到幾萬都有,怎麼辦到的?
現實就是資源有限,妳需要取捨。
你是該把時間和算力花在挖掘本身,期望大力出奇蹟?
還是透過GMM, GRS, MV spanning, 多元回歸等方式,用因子的潛能篩選?
(這裡好笑的是,三階以上風險矩像是coskew, cokurt, 理論上要被mimicking進入投資組合,但也有偷懶做法是直接被降成一階因子,走綠色通道再來。)
或是用BL和Bayesian置入一些主觀判斷(雖然這方式有點爭議)?
還是,妳想算了,在既有因子下直接優化妳的策略和最終權重?
我曾經在西濱騎車兜風,時速300左右的時候遇到條子,我後來查看GPS,也不過285公里每小時。
你知道這代表什麼嗎? 這代表我面前有個快樂度5%的時速表。
同理,當妳看著完美的因子曲線和實盤的差距,要怎樣確保損失最小? 又怎麼量化的測量誤差? 妳該花多少成本在這上面?
或者是你不考慮這些了,乾脆採取局部外包、借鑒策略,像是走Barra體系的前段因子生成、後段風險因子矩陣,但中段in house模型的「夾心」設計?
(BTW 我出席的場合上,S&P公司跟我說他們有賣六百多個因子,順便賣因子模型,但我嚴重懷疑這些有效性。)
因子是個有趣的框架,但它不是唯一。
想想看,不管你的因子功力多強,你都希望整體框架的跨資產、跨國、跨品種、跨結算規則、做空和漲停限制...之下,有最好的表現,而不是理論上冠軍,實際上吃土。
那麼你的風控能停在交易端嗎? 妳是不是應該考慮各種「壓力」,像是波動、流動性、尾部、特定環境的因子衰退?
你在算力和效力的取捨,是否也是一種優化? 包括你在思考優化這件事情的時候,是否又是一種時間-資本-優化效益的meta(元)優化?
我知道有人會把因子歸類在截面,而後套用時序模型(或是平行開發CTA),最後再將策略混合,得出權重。
這聽起來非常合理,因為分別對應選股、擇時、配置,也確實比較省力。
不過仔細想想,這些環節實際上可以交叉使用,例如用時序特徵(通常是價量因子)選股,以及利用時序分析,包括傳統的ARCH/GARCH/ARIMA和GRU/LSTM/TFT...處理截面因子的變化。
至少在學界,已經有人利用ML處理因子的動量變化(也就是因子的因子),還有像修大成那種做法,直接把價量轉圖、餵給CNN,抓隱藏因子。
也有一些比較從底層解決的做法嘗試,像我曾利用AWS的平台估算量子計算在不同廠家的成本,希望應用在多投資組合優化。(包括量子退火等算法,和超導、離子阱成本和持久力的取捨。)
在目睹技術提升的同時,我們也可以從更抽象宏觀的視角,俯瞰因子在投資框架中的角色。
這呼應了我開頭提到的因子存在意義,當算力和算法越來越先進時,它本身的邊界會逐漸模糊。
一些很工程導向、尤其是AI/ML類的的解決方式,像是用DRL貫穿全流程的FinRL,以及台灣就有人在研究交易用途(但有簽保密協議)的MARL,或是聽起來有點好笑的multi AI agents甚至agentic的決策流程(雖然按業界某朋友說法是startup騙VC錢的),以及LQM(大量化模型,目前主要用於生技等)和LIM(大投資模型,主要是理論框架)的兩類端到端嘗試...隨著算力的爆發性提升,都在讓因子分析、提取、配置,逐漸融入整體。
就如同當所有人都熟悉因子加上ML的時候,ensemble, AutoML, HPO, NAS, meta learning...等工具,就從選項變成了必備。
或者換個說法,局部優化正在擴大成全局優化。
相似的,考慮到交易的點差、流動性和永久或臨時衝擊成本(包括Kyle lambda的線性,Amihud這種雙曲線,以及更時序分析導向的函數,還有像Almgren Chriss之類的優化法),策略和因子的穩健性、泛用性和精確性權衡,疊代提升速度和生產穩定性的兼顧,模型複雜度和可解釋性,部署端的DevOps、CI/CD的pipeline和自適應、混沌性工程、版本控制和錯誤歸因樹(這也有點像因子分析)...各種深度、廣度和層級的優化,都在讓體系越來越強。
這可不僅僅是理論上的最高SR、最大四階矩優化、最大回報、最大散度或最小波動,也不是簡單的掛個RL去優化交易端...而是涉及費後、實際上的Alpha, IR、CE(確定性等價,包含報酬、風險、成本)、持倉上限、借券成本、成交率門檻、擁擠度、周轉率、研究報告成本、滑點控制、算力成本回饋到模型架構設計、預期邊際報酬和研發成本、數據壓縮和傳輸...的優化。
以上這串,我本來也沒怎麼研究。
但當我和業界避險基金、公募基金、私募基金、家族辦公室經理,投行MD、機構研究員、交易員、數據商、startup CEO/PhD朋友和工程師交流之後,就覺得問題不小。
你完全可以說這不關因子的事情,但你在測試因子的時候,根本逃不掉。
如果你高興,也可以稱此為涉及知識、資本、時間、人才、效率和膽識的「軍備競賽」。
那麼,會不會有一天,我在JPM期刊讀到的"new" Fama MacBeth,也會變成曾經的匠心獨運?
就如同第一次有人把LASSO應用到old Fama Macbeth上的時候,在模型估計表現的突破,至今變成了人類繼續前進的基石,
依然有人在努力,就像French教授的網站,還在持續更新因子簡單歸類的股票數據。
依然有人求突破,就像那位戲稱自己「被巨人踩在肩膀上」、和Fama有點恩怨情仇, 提出性能更優良的q5模型的張櫓教授等人。
依然有人在挑戰知識前緣,就像離開Fama的效率假說門下,建立AQR的Asness,後來轉向使用了ML.
學海無涯,或許一個人永遠也學不完,但市場的錢也永遠賺不完。
如果你看完我以上寫的閒聊內容,覺得有興趣了解,不妨找幾篇文獻來讀,思考自己所處的位置,以及可補強和避免的地方。
我也鼓勵各位多交流,我之前寫信給Fama, French, AQR的時候,可沒預期會收到怎樣的回覆。
我在矽谷的酒吧搭訕妹子演講者,也不知道會遇到同行;我在華爾街的聚會上,也沒想到能認識後來合作研究的朋友。
如果你對因子也有了解,歡迎討論。
我是狂徒,我們下次不知道什麼時候見。
註:
本來這篇文章是我吃完飯隨手寫的,所以也沒有什麼深度和引用(我也不可能把真的know how寫出來)。
後來想想還是找一些文獻補上,各位可以參考,當作我這些簡介的延伸閱讀。
(警告,這複製貼上自我的一些筆記和私人對話,以及我購買和參閱文獻的原始引用,僅經我肉眼確認,並用程式腳本排序編號。有些文獻後來被作者撤下,因此務必自行翻閱、驗證。)
你想真的脫離本文的淺層概念的話,還是要花時間自己提升,
保持批判和學術攻擊,當我說的都有可能出錯,這才叫「思考」。
(WTF D卡不讓我貼文獻,我截圖。)





