孫夫雄,劉光明,曾子軒,彭夢琪
中南財經政法大學 信息與安全工程學院,武漢 430074
在金融市場中,股票停牌制度是為了加強信息披露、解決信息不對稱問題,對證券價格進行重新評估從而調整交易策略而進行的強制中斷證券市場交易的過程。它是一種重要的市場穩定機制,可以提高市場透明度、保護投資者權益,也可以抑制股票的異常波動、維護證券交易秩序。但是中國股票市場的停牌存在著次數過多、時間過長等問題,導致停牌制度不僅沒有實現監管層穩定市場運行、提高市場效率的目標,甚至還會產生供需偏差放大的問題,這就加大了股價的波動,并且降低了價格發現效率。
2015 年的 615 股災期間,在6月 15 日至8月 26 日的兩個月時間內,超過千家上市公司以“籌劃重大事項”或其相關的理由申請股票停牌,以躲避股價暴跌,停牌比例超過了所有A股上市公司50%。另外,中國股市還存在著過長時間停牌的問題,然而強制性復牌政策措施十分有限。例如萬方發展(000638)在2004 年停牌,直到2009年才復牌,停牌時間長達5年之久;2006年10月20日起,S延邊路開啟了長達三年半時間的停牌。這種隨意、長期的停牌不僅給投資者利益帶來巨大的損害,也影響著股市的秩序和穩定,同時還會給監管層的工作帶來嚴峻的挑戰。
中國股市上的亂停牌、長時間停牌等現象已經引起了金融從業者、學者、監管層等各個方面的關注,并就中國股市停牌方面存在的一些問題進行了一系列的研究。現有的研究著重關注的是停牌股票的估值問題、中國股票市場停牌有效性、上市公司停牌避險事件研究、停牌制度實施效果等方面,從這些研究中不難看出大多都是針對停牌事件之后的一些問題所展開的,基本上沒有關于股票停牌事前預測方面的研究。
本文針對該問題,研究股票停牌預測的組合模型,并選取部分上市公司作為實證對象,對模型進行訓練和測試,提高模型預測效果,從而為投資者理性決策和監管層制定合理的措施提供理論上的參考。
目前,國內外學者將機器學習和深度學習的方法運用到了股票市場、并購預測等金融領域,取得了卓有成效的研究成果,而股票停牌的研究主要集中在停牌制度的實施效果和對股市的影響等方面,缺乏對股票停牌預測方面的研究。
在股價預測方面,國外學者Chou等[1]提出一個智能時間序列預測系統,使用滑動窗口啟發式優化來預測臺灣建筑公司的股價。學者Heo[2]基于財務報表,通過從公司內在價值預測股價的基本分析,對支持向量機(SVM)的股價預測能力進行了評價,并對股票的漲跌進行了預測,將SVM 結果與專家預測、神經網絡、決策樹和AdaBoost 等機器學習方法進行比較,發現SVM 表現出良好的預測能力。申浩男[3]引入BP 神經網絡模型建立收盤價的預測模型,比較了LARCH模型和BP神經網絡模型的預測效果。
在風險預測方面,特別是關于信用風險的預測方面采用了不同的方法,Zhu 等[4]提出了一種新的集成機器學習(ML)方法,即RS-RAB(Random Subspace-Real AdaBoost),用于預測我國中小企業在供應鏈金融中的信用風險;Zhao等[5]利用最小二乘支持向量機(LSSVM)來預測系統性金融風險。
在并購預測方面,袁丹蕾[6]基于并購動因基本理論,對并購動機進行了分析,并用單因素方差分析法選取了9個指標納入預測模型的輸入變量,運用神經網絡中的BP神經網絡算法構建預測模型對樣本進行了訓練和檢驗,并與傳統的Logit預測模型的結果進行了對比;李陽[7]將滬深兩市“ST”(特別處理)上市公司選為研究樣本,構建“ST”公司被并購潛力預測模型,基于此模型預測未來年度被并購潛力最大的“ST”公司。
在股票停牌問題,國內學者關注的重點主要是停牌制度的實施效果和對股市的影響等。廖靜池、王博、金丹靈等人則對股票停復牌制度的實施效果進行了研究,分別采用了多元回歸分析、極端事件統計分析和計算實驗等方法[8-10],黃維選取了我國A股市場2005年至2008年上市公司長期停牌的樣本數據,并利用事件研究法和超額收益法等實證研究方法對停牌時間長短的影響因素及其帶來的市場反應進行了研究;李哲則是在研究中指出了停復牌制度運行實踐中暴露出來的問題及缺陷等[11]。
鑒于機器學習方法在股票市場、并購預測等金融領域應用的卓越研究,本文以隨機森林模型為基礎,研究構建股票停牌預測的組合投票模型。
股票停牌制度的目的主要是減少信息的非對稱性對不同投資者帶來的不同影響,當一項重要信息出現并可能對股價有重大影響時,股票停牌可制造出一段緩沖期使投資者有足夠的時間根據信息反饋對股票價格進行重新評估,并重新調整自己的投資策略使其符合預期。造成股票停牌的可能因素很多,包括但不限于股市異常波動、財務問題、并購活動等。
在眾多因素中,股市異常波動、財務狀況往往是觸發股票停牌的主要誘因。當上市公司股票交易發生異常波動時,為告知交易者該上市公司內部異常狀況,需要強制中斷股票交易,從而警示投資者更改投資策略或督促出現問題的上市公司予以及時地改進。而財務信息反映了一個公司本身的經營狀況和業績,特別是重大財務信息的變動,在一定程度上會影響到市場各方對該股票的反應,進而可能會對股價產生影響,為避免市場波動而中斷股票交易。
股票每日的交易信息:最高價、最低價、平均交易量、均價、收益率這5項指標變化反映了股價的波動,而財務信息來自每個季度公開的財務報表,共有80 余個指標,包括每股收益、每股凈資產、總資產報酬率、銷售凈利率、資產負債率、權益乘數、流動比率、營業周期、存貨周轉率、應收賬款周轉率、總資產周轉率、營業收入(同比增長率)等,各個指標從不同的側面反映了公司財務狀況,比如:
3.1.1 盈利能力
所謂盈利能力是指企業在一定時期內,利用各種經濟資源來獲取經濟利益的能力,是各部門生產經營情況的一種綜合體現。一方面,盈利能力是企業在某一時期銷售水平的體現,同時也展現了該企業獲取現金和降低成本的能力,另一方面,盈利能力也是企業資產運營效益的反映,反映了企業獲取收益,規避風險的能力。因此,盈利能力的大小與企業經營狀況的好壞相關聯。
3.1.2 營運能力
營運能力揭示了企業資金運營周轉的情況,反映了企業對經濟資源管理、運用效率的高低。企業資產周轉越快,流動性越高,企業的償債能力越強,資產獲取利潤的速度就越快。
營運能力分析有助于判斷企業財務的安全性、資本的保全程度以及資產實現收益的能力,這直接關系到企業的財務和經營狀況
3.1.3 償債能力
企業的償債能力是指企業償還到期債務的能力,是否能夠及時償還到期債務,標志著企業財務狀況的好壞。通過對償債能力的分析,可以考察企業持續經營的能力和風險,能夠總結和評價公司長、短期內能否用其現有資產償還債券,或者用以判斷企業舉債經營的安全程度,有助于對企業未來收益進行預測。企業償債能力越低,越容易陷入財務困境,因此企業的償債能力對企業財務狀況的預測具有很強的解釋力。
3.1.4 現金流量能力
企業的現金流狀況反映了企業的盈利質量,收付實現制核算標準下的現金流狀況是對企業現金收入和支出更加真實的反映,因此相比利潤來說,其更加真實地衡量企業盈利質量的高低。
本文從公開的數據源采集各個上市公司的股價、財務信息,基于機器學習的原理研究股票停牌的分類系統。
實現分類的技術很多,比如支持向量機(SVM)、決策樹等,而隨機森林具有表現性能好、能處理高維度數據(即很多特征的數據)等方面的優勢,本文正是基于數據集的特征較多、類別分布不均衡而選擇了隨機森林。
隨機森林(RandomForests)算法是由 Breiman 于2001[12]年提出來的,它是一個樹形分類器的集合,其中元分類器{h(x,θk),k=1,2,…} 是使用 CART 算法來構建的未剪枝的分類回歸樹[13],x是輸入向量,θk是獨立同分布的隨機向量,森林的輸出結果采用投票法得到,票數最高類別即為輸出結果[14],即:

式中,H(x)為組合分類模型;hi為決策分類模型;Y為輸出變量(目標變量);I(hi(x)=Y)為示性函數。
在機器學習中,泛化誤差(預測誤差)是用于算法性能度量的最常用指標,泛化誤差越小,表明算法性能越好。在隨機森林中,誤分率是由邊緣函數(margin function)決定的,邊緣函數表示的是平均正確分類數超過平均錯誤分類數的程度,定義邊緣函數(mg(X,Y))為:

式中,avk為取平均;I(hk(x)=Y)為示性函數;Y表示為正確分類的向量;j為錯誤分類的向量。
則模型的泛化誤差(PE*)可定義為:

式中,P為概率;X、Y為概率覆蓋的空間;mg(X,Y)為邊緣函數。
隨機森林中決策樹個數足夠時,hk(x)=h(x,θk)滿足大數定律,和合邊緣函數相結合可得泛化誤差收斂于:

式中,n為森林個數,泛化誤差會隨著決策樹個數的增加而趨于某一個有限上界,因此隨機森林有著良好的擴展性和防過擬合能力。
為了防止模型過擬合和降低模型的泛化誤差,需要通過指標重要性計算來進行特征選擇。指標重要性可以用基尼指數(Gini index)或者袋外數據(OOB)錯誤率作為評價指標來衡量[15]。這里主要介紹用基尼指數來評價的方法,用VIM 表示變量重要性評分,用GI 表示Gini 指數,假設共有v個特征X1,X2,…,Xv,首先計算Gini指數,計算公式為:

其中,K表示K個類別,pmk表示節點m中類別k所占的比例。特征Xj在節點m的重要性,即節點m分支前后的Gini指數變化量為:

其中,GIl和GIr分別表示分之后兩個新節點的Gini 指數。如果特征Xj在決策樹i中出現的節點在結合M中,那么Xj在第i棵樹的重要性為:

假設隨機森林(RF)中共有n棵樹,那么:

最后,通過歸一化處理得到特征Xj的重要性評分:

對分類任務來說,學習器ht將從類別標記集合c1,c2,…,cN中預測出一個標記,最常見的結合策略是使用投票法,投票法則有三種方法:絕對投票法、相對投票法和加權投票法。用(x)表示ht在類別標記cj上的輸出,并假設基學習器的數量為T。
對絕對多數投票法則來說,選擇票數超過一半的類別即為組合模型的最終預測結果,即假設有超過一半的基學習器都預測了類別j,那么此時組合后的學習器給出的預測結果就是j。則有:

相對多數投票法就是選擇票數最多的類別,如果出現最多票數的類別個數不止一個的情況,則在其中隨機選擇一個,投票規則如下:

在上述兩種投票法則中,沒有考慮各個分類器的重要性,即假設所有分類器的權重相等,在加權多數投票法則中,賦予各個分類器不同的權重wt,再按照相對多數的思想進行投票,其決策規則如下:

股票停牌預測系統主要包括三個步驟,首先通過數據預處理從原始數據中選取特征,形成數據集;然后完成多個分類子模型的學習;最后,隨機抽取多個子模型進行投票組合,得到最終的預測結果,預測系統總體框架如圖1。
圖1中原始數據來自上市公司的股價和財務信息,預處理包括從原始數據中選擇特征,并通過缺失值處理、歸一化等形成數據集X={x1,x2,…,xn,y} ,其中n是數據規模,y是類別標簽向量,模式是第i個多維特征向量,其中m是向量維度即特征個數,yi為標簽;特征組合通過計算指標重要性VIM進行篩選,將m個特征劃分為k個特征子集A1,A2,…,Ak,進而形成k個訓練子集,其中i=1,2,…,k,第i個子集中第j個模式:,其中h維向量 (h≤m),即是xi降維后的模式;在此基礎上,完成k個子模型M1,M2,…,Mk的學習,形成子模型池;最后預測階段,從子模型池中抽取l(l≤k)個模型,并通過絕對多數投票法得到最終的預測結果。
數據預處理包括特征選擇和歸一化處理。其中股價信息包括每個交易日的收益率、最高價、最低價等指標,通過設置滑動時間窗口Δt統計股價波動趨勢,設收盤價pΔt=[p1,p2,…,pl],其中pi表示股票在 Δt內第i天的收盤價,計算其最高價g1=max(pΔt),最低價g2=,收益率為 Δt內最后一天的收盤價與第一天收盤價的差除以第一天的收盤價,即g4=(pl-p1)/p1,平均換手率內每天的換手率/Δt,以這5個指標組成股價波動集合G=(g1,g2,g3,g4,g5)。
財務分析中共有80 余個指標,為了剔除指標的重復性和指標之間的相互影響,選擇其中45 個財務指標C=(c1,c2,…,cn)且n=45。通過設置的滑動時間窗口Δt統計財務狀況波動趨勢,即計算Δt內各個指標的均值。集合G和C合并形成數據集X={G,C}。
數據的歸一化是為了消除指標之間量綱的影響,使各指標處于同一數量級,常見的方法有min-max標準化和Z-score標準化方法,本文采用Z-score 標準化方法,經過處理的數據符合正態分布,轉化函數為:

其中,μ表示所有樣本數據的均值,σ表示所有樣本數據的標準差。
模型訓練采用監督學習方式,數據x的標簽y∈{0,1},其中0類代表未停牌,1類代表停牌,當x的下一個時間窗口Δt內無股票交易則y=1,否則y=0。原始數據經過特征選擇和歸一化處理后形成數據集X≤{x1,x2,…,xn,y} 且n=50,其中股價數據G={x1,x2,x3,x4,x5} ,財務數據C={x6,x7,…,x50} 。
過多的特征指標會造成維度災難問題,如數據采集、模型訓練和測試都需要承擔很高的代價,這也會引起訓練數據的稀疏化,從而導致分類器的分類效果變差,本文研究通過特征重要性計算來進行特征選擇和組合[16],降低模型復雜度。
首先,將數據集X全部納入模型中訓練,計算特征重要性評分VIM并進行排序,篩選出其值大于均值的n個指標,即對 1 ≤?i≤n,特征Xi的指標重要性評分VIMi >1/n。由于財務的指標比較多且可能存在冗余,僅考慮財務指標重要性評分排序,篩選其值大于均值的m個財務指標,即對 1 ≤?j≤m,財務特征cj的指標重要性評分VIMj >1/m。在上述指標篩選的基礎上,對特征進行組合即降維處理,從而形成k個特征子集,即A1,A2,…,Ak,進而得到k個訓練子集,其中i=1,2,…,k。同樣,得到k個測試子集,其中t=1,2,…,k表示第t個子集。
隨機森林模型參數θ={n,h,s} ,訓練過程中需要不斷調整θ以達到較佳的預測效果。
(1)n為弱學習器的最大迭代次數,一般來說其值太小,會出現欠擬合和分類準確率低的不良效果,但是若選擇過大,花費的時間代價大,得到的模型性能無法達到最優,并且當n達到某一個數值之后,分類準確率也不會有明顯的提升了。
(2)h為決策樹最大深度,當數據少或者特征少的時候不用設置。當樣本量多,特征也多的情況下,需要設置最大深度以提高模型效率,一般取值10~100。

圖1 停牌預測模型
(3)s為內部節點再劃分所需最小樣本數,用來對子樹繼續劃分進行限制,如果某節點的樣本數少于該值,則不會繼續再嘗試選擇最優特征來進行劃分,一般取值10~110。
基于k個子訓練集Xi分別對k個模型進行訓練,通過網格化搜索算法對參數θ=(θ1,θ2,…,θk)進行調優,其過程為先給參數設定一組候選值[a,b],然后通過網格化搜索遍歷參數候選值,最后根據模型得分確定最優參數。對模型評分的方法采用了K-折交叉驗證,將訓練樣本隨機地劃分成K份子集,然后從中任意選取一份作為驗證集,其余的K-1 份全部作為訓練集,進行分類預測并驗證,重復這個過程進行K次調換訓練集與驗證集,最終驗證分類器的分類效果[17]。通過上述調優過程,得到了最優參數,得到了k個子模型M1,M2,…,Mk。
從模型池中隨機抽取l個模型,分別對Xt中的對應集中測試樣本進行預測,通過簡單多數投票規則進行組合,得到最終的預測結果。假設l個分類器的輸出形式為yi(x),i=1,2,…,k若第h個分類器標記x為停牌類,則yh(x)=1,否則yh(x)=0。最終決策為:

從國泰安數據庫中選取了1 053家上市公司為研究對象,時間區間是2015年12月至2017年8月,采集的財務數據共21 060條,股票數據共332 748條,其中財務數據來源于巨靈金融數據庫,股票歷史行情數據來源于網易財經網??紤]到我國市場上股票停牌的特殊性和復雜性,本文主要針對的是停牌時長超過一個月的較長期性停牌事件,暫不考慮頻繁發生的短期性停牌。設置Δt為一個月,特征選擇和歸一化處理后,共計20 420條數據記錄,每一條記錄包括45 個財務指標、5 個股票指標及標簽。
5.2.1 特征組合
針對50個特征進行VIM計算,如圖2(a)所示,VIM大于均值(1/50=0.02)的共有14 個特征;45 個財務特征進行了VIM計算,結果見圖2(b),高于均值(1/45=0.022 2)的財務特征共有15個。
圖2(a)中14個特征包括{最高價x1,最低價x2,平均換手率x3,均價x4,收益率x5,每股凈資產x7,流動資產比率x21,息稅折舊攤銷前利潤/負債合計x31,營業周期x34,存貨周轉率x35,應收賬款周轉率x36,流動資產周轉率x37,固定資產周轉率x38,總資產周轉率x39}。圖2(b)中15 個特征包括{每股凈資產x7,總資產報酬率x9,銷售期間費用率x15,經營活動產生的現金流量凈額/營業收入x18,流動負債/負債合計x23,經營活動產生的現金流量凈額/負債合計x29,已獲利息倍數x30,息稅折舊攤銷前利潤/負債合計x31,營業周期x34,存貨周轉率x35,應收賬款周轉率x36,流動資產周轉率x37,固定資產周轉率x38,營業收入(同比增長率)x44,營業利潤(同比增長率)x45}。

圖2 特征重要性度量
根據各特征的VIM 計算,對特征進行組合形成多個子訓練集,一方面降低模型復雜度,另一方面增加模型分類的多樣性,比如特征組合{x1,x2,x3,x4,x5}側重學習股票歷史交易數據中的相關隱含信息,進而提高組合模型的預測精度,實驗中測試了以下7個子訓練集:

5.2.2 訓練階段
訓練過程中通過網格化搜索算法不斷調整模型參數θ,以達到較佳的預測效果。
當n=10~110 時,模型M1~M7 的平均測試集分數(即K次交叉驗證的平均測試準確率,其值越大代表分類器效果越好)變化如圖3所示。以M1為例,n從10變動到100 時,平均測試集分數一直保持著上升的趨勢,當n >100 時,平均測試集分數開始下降,因此設置n=100 。同理 M2~M7 的n分別取值為 90、100、100、110、110、90。

圖3 不同n 下的平均測試集分數
當h=10~110 時,模型M1~M7 的平均測試集分數變化如圖4 所示。以 M1 為例,h從 10 變動到 75 時,平均測試集分數一直保持著上升的趨勢,當h >75 時,平均測試集分數有所下降并趨于平穩,因此設置h=75。同理M2~M7的h分別取值為40、15、20、65、40、15。

圖4 不同h 下的平均測試集分數
當s=2~11 時,模型M1~M7 的平均測試集分數變化如圖5所示。以M1為例,當s <3 時,平均測試集分數直線上升,當s >3 時,平均測試集分數表現出下降的趨勢,因此設置s=3。同理M2~M7下的s分別取值為4、2、10、7、3、2。

圖5 不同s 下的平均測試集分數
5.2.3 預測階段
(1)子模型預測實驗
從表1可以看出,停牌預測子模型的整體預測效果都比較理想,準確率基本上都達到了82%以上,相比較而言,模型M2的準確率最高,達到了87.47%,但是卻存在著最大的漏報率;而M1、M5 和M6 也得到了相對較高的預測準確率,但同時漏報率也比較高,這四個子模型的漏報率都在50%以上;剩下的子模型預測準確率雖有所下降,但漏報率低很多,誤報率卻有所上升。

表1 子模型預測效果 %
為了更直觀地對各模型預測效果進行對比,這里引入ROC 曲線和AUC 兩個評價指標,一般AUC 值在0.5和1.0 之間,且越接近于1,說明分類效果越好。上述7個模型的ROC曲線如圖6所示,將其中誤報率和漏報率較接近的4個模型M1、M2、M5和M6放在一起(圖6(a)),將另外三個模型M3、M4、M7放在一起(圖6(b))。圖6(a)中,模型M1的ROC曲線比較靠左上方,且其AUC值為0.848 8,高于其他三個模型,圖6(b)中,模型M4的ROC曲線整體較為靠左上方,且AUC值為0.822 6,高于另外兩個模型。

圖6 ROC曲線
(2)組合模型預測
基于上述單一模型預測效果的不理想,實驗中通過隨機抽取l個子模型,并采用絕對多數投票的方式來完成組合模型的預測,一共測試10 次并取平均值。設l=3、5、7,各組合模型預測效果如表2所示,就各組合模型之間相比較(即l取不同值)而言,當l=7 時,組合模型得到了最高的準確率、最低的誤報率;當l=3 時,組合模型的準確率、漏報率以及誤報率都介于其他兩種組合模型之間;當l=5 時,組合模型的漏報率和誤報率都高于其他兩種組合模型,另外準確率卻最低。

表2 組合模型預測效果 %
就組合模型與單一模型比較而言,當l=3 時,組合模型的預測準確率高于所有的單一模型,其誤報率也低于其中4 個單一模型M3、M4、M5 和M7,但其漏報率卻有所上升,另外,雖然其誤報率略高于其他3 個單一模型M1、M2 和M6,但漏報率相比也得到了很大的改善;當l=5 時,組合模型的預測準確率高于其中4個單一模型,漏報率低于其中3個單一模型,誤報率也低于其中4個單一模型;當l=7 時,組合模型的預測準確率也高于所有的單一模型,誤報率低于其中4 個單一模型,漏報率低于其中3個單一模型??傮w來看,組合模型預測較單一模型來說,在其中某個指標上得到了一定的改進,特別是將7個子模型組合后,效果最為明顯。
為了進一步驗證模型的泛化能力,實驗選取15家上市公司為驗證對象,時間區間為2016第二季度初到第三季度末,共發生58次停牌事件。例如,渝三峽A(000565)和鵬起科技(600614)在此時段內發生停牌6次,分別為2016年4月、2016年5月、2016年6月、2016年7月、2016年8月和2016年9月;覽海投資(600896)發生停牌4次,分別為2016年5月、2016年6月、2016年7月和2016年8月。
通過選取各公司在停牌時間點前一個月的數據為輸入,對該停牌情況進行預測,如表3所示,各子模型都取得了比較理想的預測效果,其中子模型M7取得了最低的漏報率和最高的預測準確率;在組合模型中,當l=7 時得到了最高的準確率,雖然l=3 和5時組合模型預測準確率有所下降,但與子模型相比還是取得了較好的效果。

表3 模型預測效果 %
仍以上述三個公司為例,對渝三峽A來說,模型M7將6次停牌全部預測準確,模型M2、M3 預測準確率為50%,模型M1、M4、M5和M6將其中4次停牌預測準確,組合模型中,l=3 和5 時平均預測準確率分別為63.33%、65%,l=7 時預測準確率為66.67;對鵬起科技而言,模型M4和M7將6次停牌全部預測準確,模型M3預測準確4 次,其他4 個模型預測準確率為83.33%,組合模型中,l=3 時平均預測準確率為85%,l=5 時平均預測準確率為83.33%,l=7 時預測準確5 次;對覽海投資來說,模型M2 和M7 其中2 次停牌預測準確,其他5個模型預測準確率為75%,組合模型中,l=3 和5 時平均預測準確率分別為70%、72.5%,l=7 時準確率為75%。
鑒于目前股票停牌預測研究的不足,本文基于機器學習原理提出了股票停牌預測的組合模型,將財務和股票的高維特征通過計算其重要性篩選和組合形成多個低維特征子集,分別訓練子模型而形成模型池,在此基礎上隨機抽取多個模型,通過投票法進行股票停牌預測,取得了比較好的效果。本文是在整體上市公司數據的基礎上研究停牌的分類模型,針對性不強,因此研究具體行業的停牌模式是未來研究方向。另外僅僅研究財務和股票兩方面的數據是不足的,未來研究考慮將并購行為、股票公告等數據引入分類模型。