







摘要:本文運用固定收益分析師情感分析結果和其他信息作為模型輸入數據,使用機器學習方法預測中債價格指標。研究結果表明:一是方向性預測較準確,機器學習中的XGBoost方法效果最好,在預測中債指數時,二分類預測的平均準確率為75%,四分類預測的平均準確率為65%,在預測10年期與2年期中債國債收益率之差的變化時,二分類預測的平均準確率為68%,四分類預測的平均準確率為58%;二是借助模型可以篩選分析師,從而方便市場參與者從固定收益分析師中優中選優,參考研究結果,做好輔助決策;三是模型處理迅速,不存在人為判斷速度慢、工作量大的問題。
關鍵詞:情感分析 PaddlePaddle NLP 中債價格指標
問題的提出
債券市場參與者能否通過自然語言處理技術(以下簡稱“NLP”)并根據固定收益分析師(以下簡稱“固收分析師”)的情感分析來預測中債價格指標變化?根據當前的技術,筆者認為或許有一定的可行性。
(一)NLP在金融市場的應用日益廣泛,為預測中債價格指標提供了技術支持
早在20世紀80年代就已有機構探索基于NLP進行金融分析,但公認的開創性工作是谷歌(Google)在2003年申請的一項專利,這項工作證明了用新聞來預測股票價值的有效性,并解決了早期NLP中的一系列問題。隨著推特(Twitter)、臉書(Facebook)等社交媒體上數據量暴漲,研究機構發現通過分析Twitter等社交媒體上的公眾情緒可以顯著提高道瓊斯工業指數的預測準確度。倫敦的對沖基金公司Derwent CapitalMarkets運用Twitter 輿情輔助投資分析,在第一個月實現了1.85%的盈利。此后,越來越多的機構參與到這項技術的研究中,由此帶來了更廣的數據維度和更豐富的應用場景。同時,隨著深度學習技術的發展,一些NLP領域的重要成果也逐漸被運用,進一步提升了機器學習對于文本語義的建模能力。
目前,基于NLP的金融分析方法已經逐漸發展成為重要的投資分析工具。在實際的落地場景中,海外機構運用NLP技術解決的典型問題包括市場上關鍵指標的預測,例如價格波動、交易量、信用評級等,還包括宏觀經濟因子的提取,乃至欺詐檢測、供應鏈管理等。當前NLP所面對的主要數據源包括公司公告、研究報告、財經新聞、社交媒體等,各類數據的長度和更新頻率也明顯不同。不同數據源的頻率和噪聲程度不一致,因此不同數據源會影響市場周期。一般來說,頻率低、權威性高的文本往往會產生深遠而持久的影響,而高頻數據則主要反映市場短期的波動性。我國一些學者也在積極運用NLP技術預測客戶行為或金融市場變化。陳嘉鈺等(2019)以微信為例,基于LDA主題模型進行社交媒體倦怠研究;王卓(2020)根據輿論平臺情緒研究其對股票市場的影響;熊杰(2020)根據政務微博的在線評論來研究用戶情緒及行為。
在實際的應用場景中,NLP技術挖掘出的典型信息形式有三種。第一種是關鍵詞提取。通過詞袋模型、LDA技術或者近年來的詞向量技術,將原始文本濃縮為最能反映文本主題或語義特征的少數幾個詞匯。第二種是事件提取。通過事件模板、句法分析、命名實體識別等技術手段,從原始文本中抽取金融活動相關事件,如公司并購、首次公開募股(IPO)、中標等,據此來分析不同事件對公司股價的影響。第三種是情感分析。市場情感分析已經成為金融分析中的重要研究方向,涉及的應用場景、技術實現方式和分析層次非常廣泛。
(二)固收分析師研究報告內容豐富、發布頻率高,為運用情感分析數據提供了舞臺
固收分析師公眾號內容豐富,在量化領域尚未被充分挖掘,市場參與者可以借助NLP技術加以利用。一是固收分析師的情感數據尚未被充分利用。固收分析師的研究充分、扎實,有大量的數據和事實作為論據。在文章表述中,可發現固收分析師對市場的情緒流露,更自然、真實地表達了對市場的判斷,這與文章結論有同等重要的參考價值。就目前而言,對固收分析師的研究缺少定量的刻畫和成熟的運用,其價值尚未被充分挖掘。此外,固收分析師發布文章的頻率較高,基本上能夠達到每周一篇或者更高頻率,其高頻公眾號文章的情緒流露便于在預測中債價格指標時使用。二是讀者的反饋尚未被充分利用。固收分析師微信公眾號的讀者都是專業債券從業者或相關人員,專業能力非常強。如果直接從上述主體那里統計對市場的看法,成本高、時效性差,難度較大。而固收分析師微信公眾號的閱讀量數據避免了對個體債券從業者進行統計的繁瑣,直接從整體角度反映了債券從業人員的看法,其獲得的成本非常低廉,而且時效性極強,可在預測中債價格指標時加以利用,但目前還沒有這方面的實踐。
目前市場上已經有人在手工挖掘固收分析師的研究報告。比如某微信公眾號在2017年的一段時間內每天為市場整理主流固收分析師的觀點,并且根據分析師的情緒,統一匯總編制了固收分析師情緒指數。如果讀者只是想簡單地了解市場情緒狀況,只要關心指數即可。固收分析師情緒指數的制定規則是:選取目前市場關注度較高的分析師,根據其觀點判斷其看多看空的情緒,每人賦予0~10分,然后進行匯總加權。總分為100分,最低為0分。均值為50分代表看多看空均衡,100分代表市場極度看多,0分代表市場極度看空。該指數具有以下特點:一是指數擬合實際情況較好,且波動較小;二是情緒指數變化有先于實際市場變化的趨勢。此指數利用固收分析師的情感,起到了較好的預測效果,但在2018年以后未再出現。
國內某證券公司基于長期債券換手率、債市杠桿率、債券基金久期、隱含稅率編制了固定收益債市情緒指數并每周更新。自2016年以來,該情緒指數與10年期國債、3 年期國開債收益率的相關系數分別為0.79、0.84,情緒指數與利率走勢較為一致。該指數在持續更新,但主要運用的是標準化數據,沒有運用固收分析師的情感數據。
(三)預測中債價格指標的基本思路
基于上述分析,筆者準備利用固收分析師微信公眾號相關信息和其他信息來預測中債價格指標。簡單地說,就是利用文章摘要情感數值、閱讀量以及制造業采購經理指數(PMI)數值訓練模型,再運用模型預測中債價格指標,算法如圖1所示。
從輸入來看,日新月異的開源程序提供了新穎、有效的支持。百度的飛槳(PaddlePaddle)情感分析工具可以將固收分析師的文章根據情感程度映射成介于0和1的數值,或者說將非結構化數據轉換為結構化數據,為使用機器學習等定量工具開拓了數據源,拓寬了模型的輸入范圍。
從模型來看,Scikit-learn、XGBoost提供了豐富的機器學習方法,為量化工作提供了廣泛的工具,方便市場參與者嘗試多種現有的高效方法來進行預測。
從輸出來看,中債價格指標豐富、覆蓋面廣,市場參與者可以測試多種程度的指數,包括中債指數和收益率曲線,為發行、投資、監管提供輔助決策參考。
建模過程與方法
筆者使用機器學習方法建模預測,下面從輸入、模型、輸出三個方面介紹建模過程(見圖2)。
(一)模型輸入
模型輸入包括特征和標簽兩部分。其中,特征是固收分析師情感分析數值、文章閱讀量、非制造業PMI,標簽是被預測的中債價格指標月度變化值。筆者按月選取模型中需要輸入的數據。
1.特征選取
特征主要來自固收分析師的公眾號內容。數據類型包括以下三種:
第一種數據是非結構化數據,即文章摘要或總結。筆者使用PaddlePaddle將其轉化為數值,具體方式為采用結果中的positive value(正面情感數值),其與negative value的和為1,二者的選取沒有區別。采用4個固收分析師的微信公眾號數據,數據時間范圍為2020年6月至2022年9月,時間頻度為月,并以A、B、C、D作為上述公眾號固收分析師的代號,固收分析師的部分情感數值見表1。
第二種數據是結構化數據,即文章的閱讀點擊量,可直接采用。
第三種數據是非制造業PMI與50的差值。上述第一種數據來源于固收分析師(專家的反饋),第二種數據來源于文章讀者(從業者的反饋),這兩種數據都帶有一定的主觀性。為保證模型輸入數據的客觀性和完備性,根據筆者觀察以及與從業人員交流,選取非制造業PMI與50的差值作為輸入值,以此代表市場客觀情況的反饋。
2.預處理特征數據
對于上述數據,筆者通過取對數來進行預處理。因為閱讀量是幾千或幾百的量級,而情感數值是0至1之間的數據,兩類數據的差距較大。筆者對其取以10為底的對數,這樣閱讀量數值介于0至4之間,情感數值介于0至-3之間,二者量級較為相近,便于后續模型處理。
3.標簽選取
對于中債指數,筆者將月度環比值進行二分類、三分類、四分類、五分類,下面舉一個例子。首先計算出中債價格指標月度環比變化,而后進行分類。如果進行二分類且環比值小于0,記為-1,代表下降;如果環比值大于等于0,記為1,代表上升。最終預測出的結果也是-1、1等數字,代表模型對未來趨勢范圍的判斷。
(二)選擇模型
筆者使用Scikit-learn包中的邏輯回歸、高斯貝葉斯、KNN、隨機森林和XGBoost包中的XGBoost方法來預測數據。在選定模型后,使用Hyperopt針對各模型自動調整優化超參數,提升模型效果。
(三)模型輸出
被預測的數據結果為0、-1等標簽性數字,筆者將其轉化為指標環比變動幅度,從而得到趨勢性判斷或分類別判斷。
實證結果與分析
筆者通過以下兩個場景來測試模型的性能。其中,第一個場景是預測中債指數,可以用于投資輔助決策;第二個場景是預測中債國債收益率的期限利差,可以用于宏觀經濟判斷。
(一)預測中債指數
筆者對中債-綜合指數(凈價指數)的每月月末變化進行分類,而后利用機器學習方法預測分類結果。
1.預測的準確性
(1)二分類預測
二分類方法:將每月中債指數的變化(月末值-月初值)分為上升和下降兩類,如果環比大于等于0記為上升,反之記為下降。此類預測方法比較簡單,只是方向性的預測,即根據目前的情況預測指數未來是漲還是跌。
預測結果:筆者使用邏輯回歸、高斯貝葉斯、KNN、隨機森林、XGBoost五種方法來預測分類(見表2)。需要指出的是,當不同的固收分析師產生不同的情感取向或不同的預測結果時(即有不同判斷時),仍然可以利用模型進行較準確的預測。這樣不必耗費過多時間去研究固收分析師的文章就可得到準確的預測結果,提高了判斷中債指數變化的效率和準確率。
(2)三分類預測
三分類方法:將每月中債指數的變化(月末值-月初值)分為下降、持平、上升三類。其中,小于-0.3為下降,大于0.3為上升,其余為持平。此類預測方法也比較簡單,只是比二分類多了一個持平的分類。
預測結果:筆者同樣使用二分類的5種方法來預測,具體結果見表3,準確率均不超過40%。總體來看,三分類模型的實用性較差。
(3)四分類預測
四分類方法:將每月中債指數的變化(月末值-月初值)分為大降、小降、小升、大升四類。其中,小于-0.8為大降,大于等于-0.8小于0為小降,大于等于0小于0.8為小升,其余為大升。此類預測對未來的方向做了更細致的預測,對上升或下降的程度作進一步區分。
預測結果:筆者同樣使用二分類的5種方法來預測。從預測結果來看(見表4),只有XGBoost的預測平均準確率超過50%,達到65%。
(4)五分類預測
五分類方法:將每月中債指數的變化(月末值-月初值)分為大降、小降、持平、小升、大升五類,比上面的四分類多了持平一項。其中,小于-0.8為大降,大于等于-0.8小于-0.1為小降,大于等于-0.1小于0.1為持平,大于等于0.1小于0.8為小升,其余情形為大升。
預測結果:從預測結果來看(見表5),只有XGBoost的預測平均準確率超過50%,達到55%。
2.特征的重要性
隨機森林和XGBoost可以在預測時得到特征的重要性分值,哪個特征的重要性分值越高,說明該特征越重要,則可以根據該分值來對固收分析師優中選優,用作挑選分析師文章的輔助依據。特別是固收分析師眾多時,可以根據此模型輕松、快捷地挑選出固收分析師。本文的模型共有9個特征(見表6)。
筆者抽取4位固收分析師情感數值對應的重要性得分作為選擇的依據,進而嘗試判斷固收分析師的影響程度。下面兩個表是隨機森林和XGBoost的結果(見表7、表8)。
從方法來看,無論是情感數值還是文章閱讀量,隨機森林給出的重要性分值都比較接近,區分度不大。XGBoost方法在情感數值和文章閱讀量兩方面都給出比較清晰的區分度。例如,從情感數值來看,固收分析師C的情感數值對結果的影響最顯著,達到0.28,比第二名0.08高出0.2;從文章閱讀量來看,固收分析師D對結果的影響最顯著,達到0.30,是第二名0.15的2倍。
(二)預測中債國債收益率的期限利差
根據中國人民銀行調查統計司課題組(2013)的研究,10 年期與2年期中債國債收益率之差對宏觀經濟景氣一致指數具有先行作用,先行期達到12個月,可以為貨幣政策提供有價值的參考。筆者對以下期限利差的環比變化進行分類,而后利用XGBoost方法預測分類結果,并使用訓練集和Hyperopt來優化模型超參數。
1.預測的準確率
期限利差=10年期國債收益率曲線月末值-2年期 國債收益率曲線月末值
公式(1)
期限利差的環比變化=當月期限差-上月期限差
公式(2)
從結果來看,二分類的預測平均準確率達到68%(見表9),四分類預測平均準確率達到58%,對期限利差的預測有一定的前瞻性。
2.特征的重要性
從情感數值來看,固收分析師A的情感數值和文章閱讀量對結果的影響都最顯著(見表10)。
結論
本文將固收分析師情感數值、文章閱讀量、PMI作為模型輸入數據,使用機器學習方法,對中債價格指標每月的變動范圍進行分類預測。
(一)本文的主要工作
在建模過程中,筆者做了以下工作。一是使用PaddlePaddle的預訓練模型,將固收分析師的文章映射成情感分數,簡單、迅速地將非結構化數據轉化為結構化數據。二是將固收分析師文章的閱讀量納入模型,以此反映固定收益市場的反饋。三是針對情感數值與閱讀數值數量級相差較大的問題,對模型取以10為底的對數,作為預處理的方法。在進行預處理后,所用數據集中于-4至4之間,較為集中,有利于更好地發揮模型效果。四是使用Hyperopt對模型的常用參數進行優化。
(二)模型的效果和優點
從結果來看,預測結果可以為市場參與者提供輔助決策參考。例如,當預測中債指數時,二分類預測平均準確率為75%,四分類預測平均準確率為65%。當預測10年期與2年期中債國債收益率之差的變化時,二分類預測平均準確率為68%,四分類預測平均準確率為58%。特別是固收分析師的情緒分值不同時,本文的模型仍然可以得到準確的預測,體現了模型的價值所在。
從對固收分析師的評價來看,模型可以給出固收分析師的重要性得分,方便市場參與者從固收分析師中優中選優,參考研究結果,做好輔助決策。
從處理速度來看,模型可快速得出中債價格指標的變化預測,模型總運行時間不超過20分鐘,不存在人為判斷速度慢、工作量大的問題。
從方法來看,無論是在預測準確率還是評價固收分析師的重要性方面,XGBoost方法的表現都是最好的。
(三)模型有待提升之處
一是文本數據的獲取。如果使用爬蟲獲取微信數據,則存在法律問題。為此,筆者使用手動復制粘貼的方式獲取固收分析師的文章和文章閱讀量信息。當分析師的數量較少時,手動可以完成。如果分析師數量繼續增加,則文本數據的獲取成本較高,影響模型的使用。此外,固收分析師微信公眾號文章的發布頻率、數量和團隊人員存在一定變數,恒定不變的分析師相對較少。未來如果可以快捷取得恒定可比的文章,則將有利于提升訓練數據的數量和質量。二是模型超參數選取。在本文模型中,筆者使用Hyperopt來自動調節參數,省去很多手工操作。從實踐來看,效果對參數的變化較為敏感。如果能夠選取穩健性更強的參數,將有利于模型性能的發揮。(本文獲“第二屆中債估值杯—固收量化專題”征文一等獎)
參考文獻
[1]陳嘉鈺,李艷.基于LDA主題模型的社交媒體倦怠研究——以微信為例[J].情報科學,2019(12):78-86.
[2]王卓.疫情情緒對中國股票市場的影響——基于多平臺輿情數據的研究[D].天津:南開大學,2020.
[3]熊杰.政務微博在線評論中的用戶情緒及行為研究[D].成都:電子科技大學,2020.
[4]中國人民銀行調查統計司課題組.我國國債收益率曲線與宏觀經濟的先行關系及貨幣政策傳導研究[J].金融監管研究,2013(1):27-44.