萬紅燕, 張云云
(中國科學(xué)技術(shù)大學(xué) 管理學(xué)院, 合肥 230026)
在統(tǒng)計和數(shù)據(jù)分析領(lǐng)域研究中, 一個重要主題就是在響應(yīng)變量和預(yù)測變量之間找到具有更好解釋性和預(yù)測性的模型.但是, 隨著大數(shù)據(jù)的到來, 我們所處理的數(shù)據(jù)和研究的問題越來越復(fù)雜, 這種復(fù)雜性往往體現(xiàn)在高維性.例如: 在影像遺傳學(xué)研究中, 預(yù)測變量為基因SNP數(shù)據(jù), 響應(yīng)變量為掃描影像數(shù)據(jù), 兩者都高達(dá)幾十萬維, 若將全部變量代入模型分析, 模型的解釋性和預(yù)測性會大大降低, 且沒有什么實(shí)際意義.所以,簡化模型對指導(dǎo)研究尤其重要, 較為常用的想法是進(jìn)行特征選擇.
特征選擇通過從眾多變量中選出重要變量從而獲得稀疏的模型, 這些方法多是采用在損失函數(shù)后面添加懲罰項的方式來達(dá)到變量選擇的作用.針對于單變量選擇的懲罰函數(shù)有LASSO, bridge[1], 平滑削邊絕對偏離懲罰(SCAD)[2], 極小極大凹懲罰(MCP)[3]等.在處理實(shí)際問題時, 經(jīng)常會遇到變量分組的情況, 比如本文實(shí)證部分?jǐn)?shù)據(jù)來源于CSMAR數(shù)據(jù)庫, 其就將企業(yè)財務(wù)數(shù)據(jù)根據(jù)盈利能力、成長能力、償債能力、分紅能力等將變量分成幾組, 每組均包含若干個變量.在這種情況下使用單變量選擇方法, 就會忽略分組信息, 從而可能導(dǎo)致變量選擇效果大大降低, 因此有些學(xué)者開始研究群組變量選擇的方法.Yuan等[4]提出了group LASSO,其懲罰函數(shù)由群組水平上的L2范數(shù)組成, 從而達(dá)到組級別上的稀疏性; Meier等[5]將這一想法擴(kuò)展到邏輯回歸; 隨后受group LASSO的啟發(fā), Wang等[6]提出了Group SCAD, Huang等[7]提出了Group MCP.
為了實(shí)現(xiàn)在選擇組變量的同時又可以對組內(nèi)的變量進(jìn)行選擇, 學(xué)者們在已有的方法上進(jìn)行改進(jìn), 提出了雙層變量選擇方法, Huang 等[3]對組結(jié)構(gòu)使用L1凹懲罰提出了 Group Bridge方法[8]; Breheny等[9]2009年提出了CMCP (Composite MCP), 其懲罰項是組間懲罰和組內(nèi)懲罰的復(fù)合函數(shù)[8]; Simon 等[10]提出了SGL (Sparse Group LASSO), 這里的懲罰項是組內(nèi)和組間懲罰函數(shù)組成的可加懲罰函數(shù); 在此基礎(chǔ)上, 王小燕等[11]提出了adSGL (adaptive SGL), 其通過附權(quán)的方式對不同的組系數(shù)和單變量系數(shù)進(jìn)行不同程度懲罰, 從而避免了對大系數(shù)的過度懲罰.雙層變量選擇方法既考慮了分組信息, 也做到了對組間變量和組內(nèi)變量的同時選擇,靈活性高, 同時變量選擇的效果也更好.
針對群組變量下的二分類問題, 已有研究均集中在logistic模型, 即在logistic模型的負(fù)對數(shù)似然損失函數(shù)后面添加懲罰項, 在變量選擇的同時直接對二分類問題作出預(yù)測, 其預(yù)測精度有進(jìn)一步提升空間.AdaBoost是一種高效的集成學(xué)習(xí)方法, 其依次生成一系列基學(xué)習(xí)器, 并結(jié)合它們的預(yù)測來生成最終結(jié)果, 能夠顯著提升預(yù)測效果, 然而, 由于AdaBoost在處理高維數(shù)據(jù)時使用大量的基學(xué)習(xí)器來產(chǎn)生最終結(jié)果, 因此高內(nèi)存空間消耗成為一個關(guān)鍵的挑戰(zhàn)[12].已有學(xué)者將特征選擇方法應(yīng)用于集成剪枝, 通過集成剪枝, 能產(chǎn)生一個規(guī)模更小但精度更高的模型.Margineantu等[13]提出的Kappa剪枝是一種基于順序的剪枝方法, 通過某種標(biāo)準(zhǔn)對學(xué)習(xí)器進(jìn)行排序, 并選擇最優(yōu)的學(xué)習(xí)器組合組成最終的學(xué)習(xí)器; Lazarevic等[14]提出一種基于族的集成剪枝方法, 即先對各學(xué)習(xí)器進(jìn)行K-means聚類, 保留每類中表現(xiàn)較優(yōu)的基學(xué)習(xí)器組成最終的分類器, 從而提高模型的泛化能力; Azmi等[15]提出了一種利用LASSO的類關(guān)聯(lián)規(guī)則進(jìn)行集成剪枝的新方法, 該方法對不太重要的基學(xué)習(xí)器進(jìn)行剪枝; Jiang等[16]針對高維單變量選擇提出了兩階段集成剪枝方法, 顯著地提升了預(yù)測性能.
本課題提出并研究了一種基于MCP懲罰的AdaBoost集成剪枝邏輯回歸模型(AdaMCPLR), 以產(chǎn)生對高維群組變量下的分類問題的卓越預(yù)測精度.該方法可分為CMCP雙層變量選擇、集成和集成剪枝3個步驟.第1步, 使用CMCP懲罰logistic回歸來降低數(shù)據(jù)的維數(shù); 第2步, 經(jīng)過特征選擇后的數(shù)據(jù)集生成AdaBoost集成; 最后, 再次使用MCP函數(shù)對集成系統(tǒng)進(jìn)行剪枝, 并得到一個簡單但更有效的模型.在此步驟中, 我們還使用LASSO和SCAD對集成進(jìn)行了修剪,并通過模擬對比了3種懲罰的分類和選擇性能, 顯示了基于MCP的剪枝方法的優(yōu)越性.
AdaMCPLR可分為CMCP雙層變量選擇、集成和集成剪枝3個步驟.首先, 在logistic模型的負(fù)對數(shù)似然損失函數(shù)后添加CMCP函數(shù)來降低數(shù)據(jù)的維數(shù);接著, 利用特征選擇后的數(shù)據(jù)集生成AdaBoost集成;最后, 我們再次使用MCP函數(shù)對集成系統(tǒng)進(jìn)行了剪枝, 得到了一個簡單但更有效的模型.以下分別介紹各步驟中涉及的方法.
當(dāng)處理二分類任務(wù)時, logistic回歸往往是最常用的模型.考慮一個標(biāo)準(zhǔn)化的n×d設(shè)計矩陣X=(x1,x2,···,xn)T(n為觀測數(shù),d為特征數(shù)), 已知X的d個特征共分為J組, 且第j組變量包含Kj個變量(j=1,2,···,J),p維向量y=(y1,y2,···,yn)T為響應(yīng)變量.那么, logistic回歸模型的形式如下:
其中, β =(β1,···,βd)是模型的系數(shù), logistic模型等價于最小化:
其中,L(β) 表示logistic模型的負(fù)對數(shù)似然損失函數(shù).通過在損失函數(shù)后面添加懲罰項來得到稀疏的模型,是一種常用的正則化方法.本文采用CMCP (Composite MCP)作為模型的懲罰項, CMCP是一種復(fù)合懲罰項,其是由組內(nèi)懲罰和組間懲罰組成的復(fù)合函數(shù), 復(fù)合懲罰的具體形式為:
其中,a、b分別是內(nèi)層懲罰函數(shù)和外層懲罰函數(shù)的調(diào)整參數(shù), CMCP中的內(nèi)層懲罰和外層懲罰都是極小極大凹懲罰(MCP)函數(shù), 其具體形式及其導(dǎo)數(shù)形式分別為:
由式(5)可以看出, MCP一開始采用了與LASSO相同的處罰率, 然而, 它卻不斷地放松懲罰, 直到βj≥μλ, 懲罰率降為零.添加懲罰項之后, logistic回歸的優(yōu)化問題變?yōu)?
Boosting是一種高效的集成學(xué)習(xí)方法, 它將眾多基學(xué)習(xí)器結(jié)合在一起, 組成最終的強(qiáng)學(xué)習(xí)器, AdaBoost就是一個典型的Boosting算法.本文利用經(jīng)過特征選擇后的數(shù)據(jù)集Xsub來構(gòu)造集成模型, 進(jìn)一步提升預(yù)測精度.AdaBoost模型主要由兩個主要部分組成: 加法模型和前向分步算法.加法模型可以表示如下:
其中,ht(x)代表第t步迭代中的弱分類器, 此處采用的基學(xué)習(xí)器是決策樹; αt是第t個弱分類器在最終的強(qiáng)分類器上所占權(quán)重,H(X)代表弱分類器的線性組合, 也即最終的強(qiáng)分類器.在前向分步算法中, 每一步迭代生成的分類器都是在前一次迭代的分類器的基礎(chǔ)上產(chǎn)生的,可以表示為:
其中,Hm-1(x)是前m-1步迭代中所有弱分類器的線性組合.算法開始每個樣本的權(quán)重相同, 在這樣的樣本分布下訓(xùn)練得到第一個弱分類器以及該分類器在訓(xùn)練集上的誤差, 誤差決定此分類器的權(quán)重.AdaBoost算法使用的損失函數(shù)是指數(shù)損失函數(shù), 每一輪的弱分類器的權(quán)重計算公式如下:
由式(9)可知弱分類器錯誤率越低, 它在最終的分類器所占的權(quán)重就越大, 同時每一步迭代的訓(xùn)練樣本的分布也會根據(jù) αt調(diào)整,t輪迭代中第i個樣本的權(quán)重計算如下:
其中,yi表示第i個樣本的分類標(biāo)簽,ht,i(x)表示第i個樣本在第t個弱分類器的預(yù)測結(jié)果, 由式(10)可知當(dāng)該樣本被誤分類時, 樣本權(quán)重將會增大, 而被正確分類時樣本權(quán)重將會減少.假設(shè)訓(xùn)練集共有N個樣本是規(guī)范化的因素, 用于確保每輪迭代所有的樣本權(quán)重總和為1.最終的強(qiáng)分類器表示為f(x)=sign(H(X)),即最終的分類結(jié)果取決于最終組成的強(qiáng)分類器分類結(jié)果的符號.
AdaBoost通過迭代生成一組基學(xué)習(xí)器來組成最終的分類器, 可以顯著提高分類的準(zhǔn)確率.但是, 它也占用了相當(dāng)多的內(nèi)存, 特別是在處理具有許多特征的高維數(shù)據(jù)時; 此外, 由于錯誤分類的樣本權(quán)重較大, 基學(xué)習(xí)器傾向于適應(yīng)這些情況, 當(dāng)數(shù)據(jù)中存在噪聲時, 會導(dǎo)致過擬合.因此, 必須對集成進(jìn)行剪枝, 以減少存儲空間的需求, 同時提高分類器性能.受Jiang等[16]的啟發(fā),本文將集成剪枝擴(kuò)展應(yīng)用于群組變量下的分類預(yù)測問題.
AdaMCPLR在集成剪枝步驟中的構(gòu)造方法類似于stacking方法, 在stacking方法中, 稱單個基學(xué)習(xí)器為初級學(xué)習(xí)器, 將各基學(xué)習(xí)器結(jié)合起來的學(xué)習(xí)器叫做次級學(xué)習(xí)器或元學(xué)習(xí)器.本文中的AdaMCPLR與stacking方法區(qū)別在于stacking的初級學(xué)習(xí)器是多種模型組成,而AdaMCPLR的初級學(xué)習(xí)器均是決策樹, 其次級學(xué)習(xí)器是logistic回歸模型, 也即AdaMCPLR以AdaBoost迭代生成的一系列基學(xué)習(xí)器的預(yù)測結(jié)果作為logistic回歸的輸入, 并在logistic回歸的負(fù)對數(shù)似然函數(shù)后面加上MCP懲罰, 從而達(dá)到集成剪枝的目的.
如上所述, 為了簡化模型和提高模型性能, 必須進(jìn)行集成剪枝.本文提出的AdaMCPLR將懲罰logistic回歸的概念用于Boosting集成剪枝, 考慮以下n×T矩陣:
其中,i(i=1,2,···,n) 行表示T個基學(xué)習(xí)器在給定樣本xi的情況下所做的預(yù)測,也即每個基學(xué)習(xí)器都可以被看作logistic回歸模型中的一個特征, 以Z作為logistic回歸模型的設(shè)計矩陣, 從而將集成剪枝問題轉(zhuǎn)化為一個優(yōu)化問題, 通過最小化式(12)來尋求稀疏權(quán)向量:
其中,zi表示Z的第i行, 這里的懲罰項是MCP函數(shù).將MCP懲罰應(yīng)用于集成剪枝中, 一些基學(xué)習(xí)器的相關(guān)系數(shù)會被壓縮至0, 從而達(dá)到集成剪枝的目的.
Zhao等[17]提出了PICASSO算法 (PathwIse CalibrAted Sparse Shooting algOrithm), 其分為3個循環(huán): 外循環(huán)、中間循環(huán)和內(nèi)循環(huán), 由于在每次迭代中,中間循環(huán)從所有變量中只選定一小部分變量的索引組成活躍集, 并將活躍集傳遞到內(nèi)循環(huán)中, 利用坐標(biāo)下降算法求解出對應(yīng)的解, 從而大大提高了求解效率.本文對PICASSO算法進(jìn)行改進(jìn), 使其能夠應(yīng)用于群組變量選擇.
考慮一個標(biāo)準(zhǔn)化的n×d設(shè)計矩陣X=(x1,x2,···,xn)T(n為觀測數(shù),d為特征數(shù)) 和二元響應(yīng)向量y∈{-1,1}n,已知X的d個特征共分為J組, 且第j組變量包含Kj個變量(j=1,2,···,J).在生成Boosting 集合之前, 我們篩選變量并通過最小化Fλ(β)來降低維數(shù):
其中, 式(13)的第一項表示logistic回歸的負(fù)對數(shù)似然損失函數(shù)L(β), 后一項中的fλ,a、fλ,b分別表示組內(nèi)和組間的懲罰函數(shù), 此處都是MCP函數(shù),a和b分別表示組內(nèi)和組間懲罰的權(quán)重, 一般取b=Kjaλ/2.
在外循環(huán)中, 生成正則化參數(shù) λ的一個遞減序列.λ 的初始值記為 λ(0), 初始狀態(tài)下 β(0)=(0,0,···,0)T, 隨著 λ的逐漸減小, 解向量出現(xiàn)更多的非零元素.λ遞減的速率由參數(shù) η ∈(0,1)控制.
在中間循環(huán)中, 會從X中選出活躍變量, 并將活躍變量的索引組成活躍集A, 初始的活躍集A(0)定義為:
只有A內(nèi)的元素會被傳遞到內(nèi)循環(huán)中, 從而求解出對應(yīng)的解.同時中間循環(huán)的優(yōu)化目標(biāo)變?yōu)?
在迭代過程中, 一旦活躍集中某元素對應(yīng)的系數(shù)變?yōu)?, 如 βj, 那么j將從活躍集中移除.同時如果非活躍集中的元素k滿足式(17), 將會被加入到活躍集中.
在內(nèi)循環(huán)中, 利用坐標(biāo)下降算法對活躍集中元素對應(yīng)的變量系數(shù)進(jìn)行求解, 在t+1步迭代中(t=0,1,2,···,T):
以上是針對群組變量選擇而改進(jìn)的PICASSO算法.本文提出的AdaMCPLR分為3個步驟, 在特征選擇和集成剪枝中均用到了PICASSO算法, 每個步驟的具體算法如算法1.
算法1.特征選擇images/BZ_289_465_791_486_812.png images/BZ_289_637_795_654_820.pngimages/BZ_289_738_791_754_816.pngimages/BZ_289_772_787_864_820.pngimages/BZ_289_1081_791_1110_812.png(1)輸入設(shè)計矩陣; 響應(yīng)變量; 參數(shù);; 算法迭代次數(shù);images/BZ_289_471_832_688_870.png images/BZ_289_878_837_894_866.png images/BZ_289_218_884_426_921.png(2)選定初始值 (0是長度為 的零向量), 初始解;(3)定義初始活躍集為:() images/BZ_289_301_988_810_1096.pngimages/BZ_289_332_1118_769_1164.png(4)計算;{}images/BZ_289_432_1168_703_1234.pngimages/BZ_289_719_1184_832_1213.png{}images/BZ_289_832_1168_1003_1234.png(5)更新活躍集,;images/BZ_289_269_1234_702_1293.png images/BZ_289_960_1247_985_1280.pngimages/BZ_289_569_1303_773_1332.pngimages/BZ_289_780_1291_1080_1337.png??images/BZ_289_218_1348_501_1407.png(6) , 將非活躍集中的 加入到活躍集中, 從而活躍集變?yōu)? 直到;
重復(fù)步驟(4)-步驟(6)直至M次迭代結(jié)束.經(jīng)過特征篩選后, 設(shè)計矩陣包含的特征數(shù)量大大減少.然后將響應(yīng)向量重新編碼為, 并將簡化后的設(shè)計矩陣表示為.本文第1.2節(jié)的算法如算法2所示.
算法2.集成 images/BZ_289_500_1812_717_1854.pngimages/BZ_289_725_1824_742_1845.png images/BZ_289_1094_1824_1123_1849.pngimages/BZ_289_418_1868_643_1902.png(1)初始化樣本權(quán)重 為樣本容量, 根據(jù)權(quán)重為 的樣本構(gòu)造決策樹;∑ images/BZ_289_632_1912_928_1987.png(2)計算決策樹的加權(quán)錯誤率;images/BZ_289_698_1996_957_2029.png(3)根據(jù)錯誤率計算決策樹的權(quán)重;images/BZ_289_465_2046_823_2079.pngimages/BZ_289_823_2050_948_2075.png(4)更新樣本權(quán)重;
迭代T次(T為決策樹的數(shù)量), 輸出最終預(yù)測G(x)=將T個基學(xué)習(xí)器的預(yù)測結(jié)果組成n×T的設(shè)計矩陣Z, 對響應(yīng)向量y重新編碼為{0 ,1}n, 將集成剪枝轉(zhuǎn)化為特征選擇問題, 對特定的冗余項θt(t=1,2,···,T)壓縮到零來達(dá)到集成剪枝的目的.我們再次使用PICASSO和MCP來解決, 集成剪枝算法的目標(biāo)函數(shù)如式(20), 集成剪枝算法除了目標(biāo)函數(shù)與算法1不一致以外, 其余和算法1均相同, 所以此處的集成剪枝算法省略不表.
其中,
為了驗證提出的AdaMCPLR方法的優(yōu)劣, 本節(jié)設(shè)置了模擬實(shí)驗, 將不同的雙層變量選擇方法進(jìn)行了對比, 同時將不同的懲罰項對集成進(jìn)行剪枝的性能也作了對比.采用選擇單個變量數(shù)(nv)、選擇組變量數(shù)(ngrp)、錯誤發(fā)現(xiàn)率(FDR)、假陰性率(FNR) 以及交叉驗證錯誤率(cv.error)作為變量選擇效果評價指標(biāo),其中nv和ngrp是越接近真實(shí)數(shù)值越好, 其他指標(biāo)則是越低模型越優(yōu); 同時采用交叉驗證錯誤率(cv.error)、集成規(guī)模(Average size)作為集成剪枝效果評價指標(biāo),其中Average size表示經(jīng)過集成剪枝之后保留的基學(xué)習(xí)器的個數(shù).
模擬實(shí)驗的數(shù)據(jù)生成過程如下: ① 設(shè)置樣本數(shù)為n, 變量數(shù)為p, 變量分為m組, 每組變量數(shù)設(shè)為5(n=200,p=50, 則m=10); ② 產(chǎn)生隨機(jī)變量R1,···,Rp,i.i.dN(0,I), 以及標(biāo)準(zhǔn)正態(tài)分布向量Z=(Z1,···,Zm)T,其中③ 產(chǎn)生自變量自變量和因變量之間的系數(shù)設(shè)定為其中模擬重復(fù)100次, 各評價指標(biāo)值為100次模擬結(jié)果的均值.
由表1可以看出, 群組變量選擇方法中, group LASSO總是傾向于選擇過多的變量, 導(dǎo)致很多非重要變量被誤選; group SCAD恰好相反, 總是傾向于選擇過少變量, 導(dǎo)致變量漏選; 在雙層變量選擇方法中,group bridge也是漏選變量導(dǎo)致FNR指標(biāo)過大.綜合各指標(biāo)來看, CMCP在變量選擇環(huán)節(jié)中表現(xiàn)最優(yōu), 這也是我們在提出的AdaMCPLR方法中使用CMCP作為變量選擇方法的原因.
表1 變量選擇模擬結(jié)果
表2中的第一行表示未集成剪枝之前模型的各項評價指標(biāo)值, 其余各行分別表示使用LASSO、 SCAD和MCP作為集成剪枝懲罰項時模型表現(xiàn).將表2中的cv.error值與表1中的做對比可以發(fā)現(xiàn), 無論是否進(jìn)行集成剪枝, 模型的預(yù)測精度都有了很大的提升, 同時使用MCP函數(shù)作為懲罰項, 能夠很大限度地精簡模型,同時模型的預(yù)測精度也有所提升, 所以本文提出的方法中使用MCP函數(shù)作為集成剪枝的懲罰項.
表2 集成剪枝模擬結(jié)果
當(dāng)一家公司出現(xiàn)財務(wù)困境時, 會對許多外部和內(nèi)部經(jīng)濟(jì)主體產(chǎn)生嚴(yán)重影響, 如股東、公司債權(quán)人、客戶和供應(yīng)商、員工以及政府, 因此開發(fā)財務(wù)困境預(yù)測方法一直是金融研究的優(yōu)先目標(biāo)之一.有效的財務(wù)困境預(yù)測機(jī)制不僅可以幫助公司管理者更好地根據(jù)自身財務(wù)信息提前做好規(guī)劃, 避免企業(yè)遭受財務(wù)困境的影響; 也能幫助投資者根據(jù)上市公司披露的財務(wù)指標(biāo)信息更好地作出投資選擇, 合理規(guī)避重大風(fēng)險; 對于政府監(jiān)管機(jī)構(gòu), 有效的財務(wù)預(yù)警機(jī)制有利于政府科學(xué)調(diào)控經(jīng)濟(jì)和優(yōu)化資源配置, 更好地維護(hù)市場穩(wěn)定.
Beaver[18]首次提出利用單一指標(biāo)來構(gòu)建財務(wù)困境預(yù)測模型, 但是單一指標(biāo)并不能涵蓋整個財務(wù)指標(biāo)體系對模型的影響, 不能達(dá)到理想的預(yù)測精度; Altman[19]提出了Z計分模型, 提出使用多變量判別進(jìn)行財務(wù)困境預(yù)測研究; Martin[20]用logistic回歸模型構(gòu)建財務(wù)困境預(yù)測模型, 并對銀行財務(wù)困境預(yù)測進(jìn)行了實(shí)證研究;Laitinen等[21]也使用了logistic回歸構(gòu)建了上市公司財務(wù)困境預(yù)測模型.國內(nèi)方面, 郭斌等[22]首先構(gòu)建了完善的預(yù)測指標(biāo)體系, 并在此基礎(chǔ)上建立了logistic回歸財務(wù)困境預(yù)測模型; 韓立巖等[23]利用logistic回歸模型對中小公司的財務(wù)困境預(yù)測進(jìn)行了實(shí)證研究; 在相當(dāng)長的一段時間內(nèi), logistic回歸都是財務(wù)困境預(yù)測研究的主流方法.
隨著機(jī)器學(xué)習(xí)的理論和技術(shù)的不斷發(fā)展, 越來越多的學(xué)者開始使用機(jī)器學(xué)習(xí)算法建立財務(wù)困境預(yù)測模型.殷尹[24]利用BP神經(jīng)網(wǎng)絡(luò)構(gòu)建了中短期預(yù)測模型,Min等[25]利用神經(jīng)網(wǎng)絡(luò)與SVM和 Logistic回歸等方法分別構(gòu)建了財務(wù)困境預(yù)測模型, 發(fā)現(xiàn)SVM取得的預(yù)測效果最優(yōu); 丁德臣[26]提出了基于混合全局優(yōu)化正交遺傳算法和支持向量機(jī)的財務(wù)困境預(yù)警模型; 王小燕等[11]提出了adSGL-logit模型, 并將其應(yīng)用于信用卡信用評分模型中; 方匡南等[27]提出了稀疏組 LASSO支持向量機(jī)方法(SGL-SVM), 并將其應(yīng)用到我國制造業(yè)上市公司財務(wù)困境預(yù)測中.
當(dāng)上市公司出現(xiàn)財務(wù)異常, 并且該異??赡軙?dǎo)致其股票終止上市, 或者投資者的投資權(quán)益可能會受到重大損害時, 證券交易所會對該上市公司股票交易實(shí)行特別處理(Special Treatment, ST).被特別處理的股票除了會被實(shí)行股票報價的日漲跌幅限制為5%以外,證監(jiān)會還要求其在股票名稱前加上提示性注釋“ST”,以區(qū)別于一般股票.
本文數(shù)據(jù)來源于CSMAR經(jīng)濟(jì)金融研究數(shù)據(jù)庫,以全部上市公司為基礎(chǔ)樣本, 從中選取截止到2020年6月底因財務(wù)困境被特別處理(ST)的公司作為正樣本, 其余的上市公司作為負(fù)樣本.剔除了正樣本中缺失值超過30%的指標(biāo)后, 共選取280個財務(wù)指標(biāo)進(jìn)行建模.根據(jù)CSMAR數(shù)據(jù)庫對財務(wù)指標(biāo)的分類, 本文選取了償債能力、披露財務(wù)指標(biāo)、比率結(jié)構(gòu)、經(jīng)營能力、盈利能力、現(xiàn)金流分析、風(fēng)險水平、發(fā)展能力共 8組280個指標(biāo).
在進(jìn)行數(shù)據(jù)處理時, 首先剔除指標(biāo)缺失超過30%的上市公司, 其余的缺失值用指標(biāo)均值代替; 然后對所有指標(biāo)進(jìn)行Z-score標(biāo)準(zhǔn)化處理, 從而消除指標(biāo)量綱對模型的影響.最終得到3451個樣本, 其中正樣本83個, 負(fù)樣本3368個, 正負(fù)樣本的數(shù)量差異很大, 是非常典型的非平衡數(shù)據(jù), 需要采用重抽樣的方法使其正負(fù)樣本均衡.因此, 本文采用雙層重抽樣的方法對樣本進(jìn)行處理, 即通過上采樣來增加少數(shù)類樣本的數(shù)量, 同時利用下采樣來減少多數(shù)類樣本, 從而來獲取相對平衡的數(shù)據(jù)集.本文利用SMOTE算法[28]對少數(shù)類進(jìn)行過抽樣, SMOTE算法的基本原理大致描述為: 在每個少數(shù)類樣本a的最近鄰樣本中隨機(jī)選擇一個樣本b, 接著在樣本a和b之間的連線上隨機(jī)選取一點(diǎn)作為新的少數(shù)類樣本.Python中的imblearn包提供了更方便的接口, 本文直接調(diào)用imblearn中對應(yīng)的SMOTE方法和下采樣中的RandomUnderSampler方法來對樣本進(jìn)行雙層重抽樣, 從而使正負(fù)例比例接近1:1, 最終重抽樣之后的總樣本個數(shù)為830個.在總樣本中隨機(jī)抽取70%作為訓(xùn)練集, 剩余的30%的樣本作為模型的交叉驗證.接下來, 本文利用AdaMCPLR對處理后的所有樣本進(jìn)行建模, 經(jīng)過特征選擇之后, 保留了39個重要指標(biāo).用這39個重要性指標(biāo)數(shù)據(jù)進(jìn)行集成及集成剪枝.在此處設(shè)置200棵決策樹來構(gòu)建AdaBoost模型, 并用MCP函數(shù)來進(jìn)行集成剪枝, 從而得到最終結(jié)果.將最終AdaMCPLR方法的變量選擇效果和預(yù)測效果與logistic回歸、SVM、SGL-SVM以及adSGL方法的進(jìn)行了對比, 對比結(jié)果如表3.
表3 集成剪枝模擬結(jié)果
由表3可知, 傳統(tǒng)的logistic回歸和SVM方法均不具有變量選擇的作用, 保留了全部的變量, 但是預(yù)測精度和AUC值均不高.AdaMCPLR的預(yù)測精度和AUC值較其他預(yù)測方法都是最高的, 另外從選擇的變量個數(shù)來看, AdaMCPLR僅選擇了39個變量, 就達(dá)到了很高的樣本外預(yù)測精度, 同時經(jīng)過集成剪枝, 模型只保留了47個基學(xué)習(xí)器.由此可以看出, 并不是越多變量參與模型, 模型就越優(yōu), 反而過多的冗余變量進(jìn)入模型, 會降低模型的預(yù)測精度.
針對高維群組變量下的二分類問題, 本文提出的AdaMCPLR分為兩階段, 利用懲罰項既對群組變量進(jìn)行了特征選擇, 又對AdaBoost集成模型的基學(xué)習(xí)器進(jìn)行了剪枝, 這是在已有的高維群組變量數(shù)據(jù)分類預(yù)測問題上所沒有出現(xiàn)過的方法.
將CMCP用于雙層變量篩選, 降低了數(shù)據(jù)的冗余度, 提高變量選擇的精度, 用特征選擇后的數(shù)據(jù)生成AdaBoost集成, 大大提高了模型的預(yù)測精度, 由于集成模型由大量基學(xué)習(xí)器組成, 使用MCP懲罰方法對這些基學(xué)習(xí)器進(jìn)行剪枝, 選擇的基學(xué)習(xí)器組合為最終的預(yù)測集合, 在提高預(yù)測精度的同時, 也大大降低了集成模型的空間消耗.本文還對PICASSO算法進(jìn)行了改進(jìn),使其能夠應(yīng)用于群組變量選擇問題, 大大提高了模型的求解速度.
本文提出的AdaMCPLR方法適用于生物信息、管理科學(xué)、經(jīng)濟(jì)學(xué)、金融學(xué)等領(lǐng)域高維群組變量數(shù)據(jù)分類預(yù)測問題, 在降低空間消耗的同時, 較已有的方法提高了預(yù)測精度.