過度數據挖掘之“一月(yuè)晴雨(yǔ)表”

發布時(shí)間:2017-05-04  |   來(lái)源: 川總寫量化(huà)

作者:石川

摘要:華爾街(jiē)流行的(de)“一月(yuè)晴雨(yǔ)表”策略缺乏令人(rén)信服的(de)業務依據,僅僅來(lái)自樣本内的(de)過度數據挖掘,在樣本外效果非常差。


1 一月(yuè)晴雨(yǔ)表


華爾街(jiē)流行著(zhe)一句老話(huà)“As January goes, so goes the year”。它的(de)意思是一月(yuè)份股票(piào)的(de)漲跌往往和(hé)全年股票(piào)的(de)漲跌一緻:如果一月(yuè)份上漲,那麽全年大(dà)概率會上漲;如果一月(yuè)份下(xià)跌,那麽全年大(dà)概率也(yě)會下(xià)跌。華爾街(jiē)有很多(duō)這(zhè)個(gè)諺語的(de)忠實信徒,并以此形成了(le)一個(gè)流傳甚廣的(de)擇時(shí)信号:January Barometer(一月(yuè)晴雨(yǔ)表,又稱一月(yuè)指标 January Indicator)。


追根溯源,這(zhè)個(gè)現象于 1972 年被 Yale Hirsch 發現。後來(lái),其子 Jeffrey Hirsch 統計了(le)從 1950 年到 2006 年間該現象在标普 500 指數上的(de)正确率,發現其正确率達到驚人(rén)的(de) 91.2%(下(xià)圖)。小 Hirsch 聲稱,在 57 年裏,該信号僅有 5 次重大(dà)錯誤(他(tā)稱之爲 major errors),這(zhè)個(gè) 91.2% 的(de)正确率就是這(zhè)麽來(lái)的(de),即 52 / 57。


f1.png


然而,仔細想來(lái),這(zhè)麽高(gāo)的(de)正确率頗有争議(yì)。首先,這(zhè)位仁兄選擇性的(de)“失明(míng)”,剔除了(le)另外 9 次該信号的(de)非重大(dà)失誤。如果我們加上這(zhè) 9 次,則該信号在 57 年間一共失效 14 次(5 次重大(dà)失誤 + 9 次非重大(dà)失誤),正确率驟然降爲 75.4%。第二,他(tā)爹 Yale Hirsch 于 1972 年發現這(zhè)個(gè)現象,這(zhè)說明(míng)理(lǐ)論上任何人(rén)都不能在 1972 年之前運用(yòng)這(zhè)個(gè)策略。因此,小 Hirsch 從 1950 開始回測也(yě)值得(de)推敲。如果我們僅考察 1973 到 2006 年這(zhè) 34 年間,該信号一共錯誤 9 次,正确率 73.5%。


上面這(zhè)兩個(gè)錯誤就是過度數據挖掘的(de)典型例子。在數據挖掘中,有一種非常普遍的(de)錯誤做(zuò)法:


Slicing and dicing the data until they produce the desired conclusion.


人(rén)們很容易找到一月(yuè)指标的(de)反例。就拿剛剛過去的(de) 2016 年來(lái)說,标普 500 在 2016 年一月(yuè)下(xià)跌 5% 以上,而其全年來(lái)看上漲 9.54%。如果按照(zhào)一月(yuè)指标,那麽我們将會錯過從二月(yuè)份開始高(gāo)達 14% 以上的(de)反彈!The Wall Street Journal 也(yě)曾刊文《Sorry, the ‘January Barometer’ is a Market Myth》批判了(le)一月(yuè)指标。其核心觀點是嚴格的(de)統計分(fēn)析并不支持一月(yuè)走勢預測全年走勢這(zhè)種說法:


The idea that the direction stocks take in January will be their direction for the full year isn't supported by strict statistical analysis.


下(xià)面就來(lái)看看一月(yuè)晴雨(yǔ)表指标到底存不存在。


2 樣本内的(de)激動人(rén)心


利用(yòng)一月(yuè)指标、并以标普 500 指數爲投資标的(de),構建一個(gè)簡單的(de)擇時(shí)策略,稱爲一月(yuè)晴雨(yǔ)表策略:


每年一月(yuè)買入标普 500,如果一月(yuè)上漲,則在該年内全年持有;如果一月(yuè)下(xià)跌,則在一月(yuè)最後一個(gè)交易日清倉,在該年的(de)二到十二月(yuè)空倉(爲了(le)簡化(huà)我們假設空倉,實際中可(kě)以購(gòu)買債券等低風險資産)。不考慮任何交易成本。


爲檢驗一月(yuè)指标,首先考察該策略能否跑赢指數本身。其次,考察兩組收益率之間的(de)相關系數以及相關系數的(de)顯著性水(shuǐ)平。這(zhè)兩組收益率分(fēn)别爲:


第一組:一月(yuè)收益率 和(hé) 年收益率

第二組:一月(yuè)收益率 和(hé) 當年二月(yuè)到十二月(yuè)份的(de)累積收益率


下(xià)面的(de)小貼士介紹了(le)如何檢驗兩個(gè)時(shí)間序列(在本文是上面每組中的(de)兩個(gè)收益率序列)的(de)樣本相關系數的(de)顯著性水(shuǐ)平。


檢驗相關系數的(de)顯著性水(shuǐ)平

對(duì)于兩個(gè)長(cháng)度爲 n 的(de)時(shí)間序列,假設這(zhè)兩個(gè)序列的(de)樣本相關系數是 r,則 r 對(duì)于總體(population)的(de)真實但未知的(de)相關系數的(de)标準誤差(standard error)爲:


SE = sqrt(1 - r^2) / sqrt(n - 2)


SE 越大(dà)說明(míng)由樣本計算(suàn)出來(lái)的(de)相關系數越無法準确的(de)反應總體的(de)真實相關系數。SE 和(hé)樣本大(dà)小 n 成反比,這(zhè)說明(míng)樣本點越多(duō),得(de)到的(de)誤差越小。在統計學中,通(tōng)過假設檢驗來(lái)判斷這(zhè)兩個(gè)序列的(de)相關系數是否顯著;原假設爲“兩個(gè)時(shí)間序列沒有線性相關性(即它們的(de)相關系數爲 0)”。是否接受這(zhè)個(gè)原假設可(kě)以利用(yòng) t 分(fēn)布來(lái)檢驗。相關系數 r 和(hé)标準誤差 SE 的(de)比值,即 r/SE,是一個(gè)滿足自由度爲 n - 2 的(de) t 分(fēn)布的(de)随機變量。因此,隻要考察 r/SE 的(de)值,就能知道在給定的(de)置信水(shuǐ)平下(xià)是否能夠拒絕原假設。


我們将樣本内回測區(qū)間設爲 1972 年 1 月(yuè) 1 日到 2006 年 12 月(yuè) 31 日。(1972 年是一月(yuè)效應被提出的(de)年份;而 2006 年是小 Hirsch 在他(tā)的(de)計算(suàn)中考察的(de)結束時(shí)點。)在該區(qū)間内,策略和(hé)标普 500 同期的(de)指标如下(xià)圖所示。不可(kě)否認,策略确實跑赢了(le)指數。圖中的(de)最後一個(gè)指标是收益率檢驗。該檢驗的(de)原假設是策略收益率序列和(hé)基準指數收益率序列的(de)均值相同,以此考察策略的(de)高(gāo)夏普率是否具備統計意義。然而,結果表明(míng)我們不能拒絕原假設(p-value高(gāo)達 0.975)。因此,策略的(de)高(gāo)夏普率不具備統計意義。事實上,稍後會看到,策略的(de)高(gāo)夏普率僅僅來(lái)自個(gè)别年份指數大(dà)跌然而策略在一月(yuè)底清倉而逃過大(dà)跌。


f2.png


回測期内,一月(yuè)收益率和(hé)年收益率的(de)相關系數相關指标爲:


f3.png


從以上結果不難發現,策略确實在樣本内确實跑赢指數,且一月(yuè)份的(de)收益率和(hé)年收益率的(de)相關系數高(gāo)達 0.54(正相關)并且在統計上顯著。這(zhè)一切似乎說明(míng)一月(yuè)指标在樣本内确實有效。


然而一個(gè)不能忽視的(de)事實是,在樣本内的(de)回測期之中,指數在一月(yuè)份上漲的(de)比例高(gāo)達 61.8%。下(xià)圖展示了(le)回測期内不同月(yuè)份的(de)平均收益率,一月(yuè)份是 12 個(gè)月(yuè)份中表現最好的(de),平均收益率高(gāo)達 1.76%!這(zhè)說明(míng)策略選擇一月(yuè)份持股的(de)前提下(xià),淨值就有了(le)基本的(de)保障。


f4.png


注意,一月(yuè)份收益率在回測期内冠絕群雄僅僅是數據挖掘出來(lái)的(de)一個(gè)現象,但人(rén)們并沒有提出任何業務依據來(lái)爲解釋該現象。因此,爲了(le)避免數據遷就(data snooping),我們對(duì)原有的(de)策略進行微調,将一月(yuè)份作爲觀察期,而非直接于一月(yuè)份持股:


如果一月(yuè)上漲,則在該年内二到十二月(yuè)買入并持有标普 500;如果一月(yuè)下(xià)跌,則在該年其他(tā)月(yuè)份空倉(同樣,爲了(le)簡化(huà)我們假設空倉,實際中可(kě)以購(gòu)買債券等低風險資産)。不考慮任何交易成本。


爲了(le)區(qū)分(fēn)這(zhè)兩個(gè)策略,稱原始策略爲“一月(yuè)晴雨(yǔ)表策略(一月(yuè)持倉)”;稱改進策略爲“一月(yuè)晴雨(yǔ)表策略(一月(yuè)觀望)”。改進策略的(de)淨值和(hé)基準指數相比,效果如下(xià),策略跑輸了(le)指數,但兩個(gè)收益率序列均值的(de)差異仍然不顯著(p-value 爲 0.292)。


f5.png


此外,我們更加關注一月(yuè)份收益率和(hé)同年後 11 個(gè)月(yuè)(即二月(yuè)到十二月(yuè))的(de)累積收益率之間是否存在統計意義上顯著的(de)正相關。結果(下(xià)圖)表明(míng),這(zhè)兩個(gè)收益率序列的(de)相關性并不顯著、無法拒絕原假設。


f6.png


下(xià)圖展示了(le)兩個(gè)策略和(hé)基準指數在回測期内每年的(de)收益率。可(kě)以看到,兩個(gè)策略之所以取得(de)了(le)更高(gāo)的(de)夏普率,僅僅是因爲在個(gè)别年份躲過了(le)整年的(de)大(dà)跌,或是因爲由于一月(yuè)指标的(de)錯誤而錯過了(le)指數的(de)上漲。這(zhè)兩個(gè)效應疊加使得(de)策略的(de)收益率波動更低,這(zhè)便是高(gāo)夏普率的(de)直接原因。然而策略收益率和(hé)基準收益率的(de)均值并無統計意義上的(de)顯著差異。


f7.png


作爲小結,本節的(de)實證得(de)到如下(xià)觀點:


1. 原始一月(yuè)晴雨(yǔ)表策略(即一月(yuè)持倉)在回測期内跑赢指數;一月(yuè)份收益率和(hé)全年收益率存在統計上顯著的(de)正相關。


2. 回測期内,基準指數大(dà)概率在一月(yuè)份上漲,且一月(yuè)份的(de)平均漲幅雄冠全年;因此原始策略存在數據遷就。


3. 改進的(de)一月(yuè)晴雨(yǔ)表策略(即一月(yuè)觀望)在回測期内無法跑赢指數;一月(yuè)份收益率和(hé)二月(yuè)到十二月(yuè)的(de)累積收益率不存在統計上顯著的(de)正相關。


4. 兩個(gè)策略均取得(de)比基準指數更高(gāo)的(de)夏普率,然而策略收益率序列和(hé)基準指數收益率序列的(de)均值在統計上無顯著差異。


3 樣本外的(de)心灰意冷(lěng)


第 2 節的(de)實證雖然說明(míng)一月(yuè)晴雨(yǔ)表策略在樣本内效果不錯,但縱觀學術界和(hé)業界對(duì)一月(yuè)指标的(de)研究,業務解釋非常牽強。當一個(gè)所謂的(de)數據模式(data pattern)僅僅來(lái)自過度數據挖掘,而缺乏合理(lǐ)的(de)業務依據時(shí),這(zhè)樣的(de)模式往往是虛假的(de)、難以令人(rén)信服的(de)。因爲它根本無法保證對(duì)樣本外的(de)數據同樣有效。


一月(yuè)指标在樣本外恰恰中招。假如我們錯信一月(yuè)晴雨(yǔ)表策略真正有效,而滿懷信心地在樣本外(2007 年 1 月(yuè) 1 至今)運用(yòng)該策略時(shí),那一定會懷疑人(rén)生。無論一月(yuè)是持倉還(hái)是觀望,兩個(gè)策略均跑輸指數本身。尤其是原始的(de)一月(yuè)持倉策略,可(kě)以看到最近三年(2014 至 2016),一月(yuè)指标接連發出錯誤信号導緻我們在一月(yuè)下(xià)跌後離場(chǎng),而指數本身在當年的(de)後 11 個(gè)月(yuè)發生了(le)不同程度的(de)反彈。值得(de)注意的(de)是,在樣本外的(de)年份中,一月(yuè)上漲的(de)比例僅爲 40%, 和(hé)樣本内的(de) 61.8% 千差萬别。這(zhè)有力的(de)說明(míng)了(le)樣本内的(de)一月(yuè)晴雨(yǔ)表策略存在數據遷就。


在樣本外,無論是一月(yuè)收益率和(hé)全年收益率,還(hái)是一月(yuè)收益率和(hé)二月(yuè)至十二月(yuè)的(de)累積收益率,這(zhè)兩組收益率之間均無統計意義上顯著的(de)正相關性。


f8.png


f9.png


如果一月(yuè)晴雨(yǔ)表策略不是過度數據挖掘的(de)産物(wù),而存在合理(lǐ)的(de)業務解釋。那麽我們有理(lǐ)由相信,它在樣本外的(de)表現應該和(hé)回測期内類似。然而,樣本内外大(dà)相徑庭的(de)結果表明(míng),一月(yuè)晴雨(yǔ)表策略僅僅是樣本内數據挖掘的(de)一廂情願。


這(zhè)進一步證實了(le)《爲什(shén)麽機器學習(xí)在投資領域不好使》一文的(de)結論:任何被數據挖掘出來(lái)的(de)數據模式都必須能夠被從業務上合理(lǐ)地解釋,否則它就是數據遷就的(de)産物(wù)。


4 一月(yuè)晴雨(yǔ)表在其他(tā)國家無明(míng)顯效果


最後考察一月(yuè)指标是否存在于其他(tā)一些主流市場(chǎng)中。這(zhè)些市場(chǎng)包括:英國富時(shí) 100,日經 225,德國 DAX,法國 CAC,瑞士 SSMI,新加坡海峽時(shí)報、韓國綜合、俄羅斯 RTS 以及我國的(de)上證指數。我們得(de)到的(de)結論是,一月(yuè)指标在這(zhè)些國家中并無明(míng)顯支撐:


1. 在所有考察的(de)國家中,一月(yuè)收益率和(hé)後 11 個(gè)月(yuè)的(de)收益率之間均無統計意義上顯著的(de)相關性。


2. 僅在個(gè)别國家(包括上證指數),一月(yuè)收益率和(hé)全年收益率存在統計意義上顯著正相關。然而由于我們使用(yòng)的(de)是能得(de)到的(de)全部數據進行回測,因此即便如此也(yě)不能保證這(zhè)些正相關在樣本外繼續有效(畢竟對(duì)于一月(yuè)指标缺乏業務上的(de)支撐)。


3. 在絕大(dà)多(duō)數國家,一月(yuè)晴雨(yǔ)表策略無法跑赢基準指數。


特别的(de),對(duì)于我們最關心的(de)中國股市,對(duì)上證指數的(de)實證結果如下(xià)。


f10.png


5 結語


實證表明(míng),被華爾街(jiē)津津樂(yuè)道的(de)一月(yuè)指标僅僅是過度數據挖掘的(de)結果,其在樣本内外的(de)表現截然不同。無數人(rén)前仆後繼的(de)試圖從曆史數據中挖掘出可(kě)以盈利的(de)數據模式。不可(kě)否認,這(zhè)樣的(de)模式一定存在,但是真正經得(de)起檢驗的(de)模式必須是那些能夠從業務上被合理(lǐ)解釋的(de)。否則,樣本内的(de)過度數據挖掘必将導緻數據遷就,而如此得(de)到的(de)數據模式在樣本外必然隻是空歡喜一場(chǎng)。


數據挖掘、人(rén)工智能、機器學習(xí)這(zhè)些計算(suàn)機和(hé)數學手段無一不擅長(cháng)挖掘所謂的(de)數據模式。而去僞存真才是一個(gè)合格的(de)(量化(huà)投資)基金經理(lǐ)必須具備的(de)能力。



免責聲明(míng):入市有風險,投資需謹慎。在任何情況下(xià),本文的(de)内容、信息及數據或所表述的(de)意見并不構成對(duì)任何人(rén)的(de)投資建議(yì)。在任何情況下(xià),本文作者及所屬機構不對(duì)任何人(rén)因使用(yòng)本文的(de)任何内容所引緻的(de)任何損失負任何責任。除特别說明(míng)外,文中圖表均直接或間接來(lái)自于相應論文,僅爲介紹之用(yòng),版權歸原作者和(hé)期刊所有。