引言
異常值實質上存在于任何應用領域的任一數據集。
為了避免異常值的影響,需要使用穩健性估計量。多元均值和協方差陣的經典估計量是樣本均值和樣本協方差陣。如果數據來自正態總體的話,它們是最優的估計量,但是它們對異常值非常敏感。如果數據中有異常值,異常值會影響樣本均值和樣本協方差陣,從而會影響依賴于它們的經典因子分析[1].因此有必要考慮使用樣本均值和樣本協方差陣的穩健性估計量。
本文所采用的數據是上證A股2013-09-30三季度財務數據,共有957只股票(樣本),10個財務指標(變量),數據下載自免費的大智慧軟件。為了更加客觀地對待每一個樣本點,本文采用穩健性因子分析。使用的上市公司財務量化指標包括:主營業務收入(x1,元)、主營業務利潤(x2,元)、利潤總額(x3,元)、凈利潤(x4,元)、每股收益(x5,元)、每股凈資產(x6,元)、凈資產收益率(x7,%)、總資產收益率(x8,%)、資產總計(x9,元)、股本(x10)。需要說明的是,大智慧軟件中沒有總資產收益率這個指標,但它可以由公式總資產收益率(x8)=凈利潤(x4)資產總計(x9)計算得到。本文采用R軟件[2]進行計算。
1 實證
從圖1可以看出異常點在經典因子分析中的影響。
我們所采用的數據是經典的Hawkins,Bradu and Kass (hbk)數據集,它來自軟件包robustbase[3],有75個樣本,4個變量(一個響應變量,三個解釋變量)。前10個樣本是壞的杠桿點,11~14樣本是好的杠桿點(即:它們的x部分是異常的,但是它們的y部分對模型擬合得很好)。在這里我們只考慮hbk數據集的x部分。左圖顯示的是經典因子分析前兩個因子的散點圖,前兩個因子解釋了總方差的99.4%.異常點(1~14)被有效地區分了出來,但是正常點遠離原點(因子得分的樣本均值理應在原點,因為因子得分是從樣本相關陣出發計算的)。此外,97.5%的置信橢圓沒有覆蓋正常點,這表明置信橢圓被異常點嚴重地影響了(注意:經典因子分析的置信橢圓并不一定要比穩健性因子分析的置信橢圓大,置信橢圓的大小由特征值的大小確定)。右圖顯示的是穩健性因子分析前兩個因子的散點圖,前兩個因子解釋了總方差的71.5%.我們發現穩健性因子得分的樣本均值沒有受到異常點的影響,并且異常點被97.5%的置信橢圓很好地區分開來。進一步計算因子得分的樣本均值,我們發現:經典因子分析的因子得分在所有點的樣本均值為0 (3.700743e-18, 4.302114e-18),而在正常點上不為0 (4.545664, 1.874009);穩健性因子分析的 因 子 得 分 在 所 有 點 的 樣 本 均 值 不 為 0(-0.3613164, -0.3013054), 而 在 正 常 點 上 為 0(1.069557e-16, 2.832434e-17)。下面我們利用FaCov()函數計算穩健性因子分析。它的一般使用格式為:FaCov(x, factors = 2, cor = FALSE, cov.control = CovControlMcd(), method = c“(mle”,“pca”,“pfa”),scoresMethod = c“(none”“,regression”“,Bartlett”), …)其中x是一個數值矩陣或者是一個可以強制為數值矩陣的對象(如數據框)。factors是因子個數,默認值為2.cor是一個邏輯變量,如果cor = TRUE則用相關陣進行計算,如果 cor = FALSE(默認值)則用協方差陣進行計算。cov.control用來確定用什么樣的穩健性估計量來計算穩健性樣本均值和穩健性樣本協方差陣,它的取值為類為CovControl的對象,默認值為CovControlMcd(),這時所取的穩健性估計量為MCD.如果cov.control = NULL,則用經典的估計量來計算樣本均值和樣本協方差陣。method是因子分析所用的方法,它的取值為“mle”(默認值,極大似然法),“pca”(主成分法)和“pfa”(主因子法)。scoresMethod表示計算因子得分的方法,默認值是“none”(即不計算因子得分),“regression”表示用回歸法計算Thompson因子得分,“Bartlett”表示用加權最小二乘法計算Bartlett因子得分。
既然計算因子分析的方法有“mle”,“pca”和“pfa”3種,而cov.control的取值有CovControlOgk(),CovControlMcd(),CovControlMest(),CovControlMve(),CovControlSde(),Cov-ControlSest()等6種。那么哪一種配對是最佳的呢?我們采用的準則是選擇使殘差矩陣 E 的元素平方和 Q( E )最小的方法。見文獻.其中E = R - ( )AAT+D = ( )eijp ≤ p\ue0a8Q( E )= i = 1pi = 1peij2.
結果見表1.同時我們也計算了3種因子分析方法下經典估計量的 Q( E )。在表1中 Q( E )最小的組合是(pfa,Classic),但是由經典估計量計算的樣本均值和樣本協方差陣嚴重地受到了異常點的影響,所以我們在剩下的穩健性估計量中選擇最小的 Q( E ),它就是組合(pfa, Sde),此時的 Q( E )=0.09865221.注意:表1中的結果是在set.seed(2)下得到的,如果不set.seed,則每次運行的結果會稍有不同,但是對此數據集在絕大多數情況下,組合(pfa, Sde)得到的 Q( E )都是最好的。并且對某些 set.seed,method =“mle”會報錯,比如當set.seed(5)時,method =“mle”且cov-Control = CovControlMve()會報錯?,F在我們利用robustfa[4]軟件包中plot-utils.R中的my-plotDD()函數來畫類為Cov的對象,如圖2所示。此處使用的穩健性估計量是Sde估計量,從表1可以看出,組合(pfa,Sde)可以使殘差矩陣的元素平方和達到最小。我們發現穩健性馬氏距離比經典馬氏距離要大得多。異常點的穩健性馬氏距離非常大。myplotDD()是 rrcov 軟件包中plot-utils.R中的。myddplot()函數的改進版。在myplotDD()中,id.n和ind顯示出來了。其中id.n是異常點數,并且用記號把它們標志出來。默認狀態下,id.n是穩健性馬氏距離大于 cutoff 的樣本點數,其中默認狀態下 cutoff = sqrt(qchisq(0.975, p))。ind是穩健性馬氏距離大于cutoff的樣本點的標號。
從結果可以看出cutoff = 4.525834.有id.n = 371個樣本點的穩健性馬氏距離大于cutoff,即有id.n = 371個異常點。sort.y是一個列表,它包含了y的升序排列,y就是穩健性馬氏距離向量。sort.y$x 是 y 的升序排列,sort.y$ix 是sort.y的樣本點序號。ind顯示的是異常樣本點的序號。
可以計算由經典估計量和穩健性Sde估計量計算的樣本相關陣。它們的差異非常大,說明異常點嚴重地影響了經典的樣本相關陣。
表2給出由經典估計量和穩健性Sde估計量計算的旋轉后的因子載荷矩陣、共性方差、因子F對原始變量的貢獻、貢獻率和累積貢獻率。從表2可以看出對于由經典估計量計算的因子載荷矩陣,因子1解釋x2、x3、x4、x9、x10,并且在x1上面有中等偏小的載荷,因此該因子可稱為股票的規模因子;因子2解釋x5、x6、x7、x8,因此該因子可稱為股票的收益率因子;因子3解釋x1,并且在x2上面有中等偏小的載荷,因此該因子可稱為股票的主營因子。對于由穩健性Sde估計量計算的因子載荷矩陣,因子1解釋x3、x4、x5、x7、x8,并且在x2、x6上面有中等偏小的載荷,因此該因子可稱為股票的收益率因子;因子2解釋x10,并且在x1、x2、x3、x4、x9上面有中等偏小的載荷,因此該因子可稱為股票的規模因子;因子3解釋x1、x2、x6、x9,并且在x3、x4、x5上面有中等偏小的載荷,因此該因子可稱為股票的資產主營因子。因此經典估計量的因子1(因子2)與穩健性Sde估計量的因子2(因子1)相似。在以后的畫圖和按因子得分的數值大小由高到低排序中有所體現。注意到在表2中,對于共性方差,在由經典估計量計算的因子載荷矩陣中,有3個變量(每股凈資產x6、凈資產收益率x7、總資產收益率x8)的共性方差小于0.5,而在由穩健性Sde估計量計算的因子載荷矩陣中,只有1個變量(每股凈資產x6)的共性方差小于0.5.
兩種估計量相關陣的特征值的碎石圖的差別不是特別明顯,這里省略。
圖3畫的是兩種估計量前兩個因子得分的散點圖和97.5%置信橢圓??梢钥闯鼋浀涞闹眯艡E圓包含了異常點,而穩健性Sde估計量的置信橢圓有效地區分了正常點和異常點。下面分別按因子得分的數值大小由高到低排序列于表3、表4和表5,限于篇幅,每張表只列出了排在前兩位和后兩位的股票。在表3中,各股票的順序反映了股票的收益率由高到低的排序。同樣,表4的股票順序反映了股票的規模由大到小的排序,表5的股票順序反映了股票的主營/資產主營由多到少的排序。
2 討論
經計算,在表3至表5的前10名和最后10名中(共60只股票),經典估計量的所有股票均為異常點,穩健性Sde估計量除了安信信托以外的所有股票也均為異常點。這種現象是正常的,因為因子得分取極大/小值的樣本點很可能是異常點。
由于經典估計量的樣本均值和樣本相關陣極大地受到了異常點的影響,所以由經典估計量計算的因子得分結果不可信賴。以下我們只分析由穩健性Sde估計量計算的因子得分。對于穩健性Sde估計量,由表3、表4和表5可知,三個因子得分的 取 值 范 圍 分 別 是 -135.824≤ Factor1≤ 31.410-10.185≤ Factor2≤ 860.061\ue0a8 -8.047≤ Factor3≤ 1624.999\ue0a8雖然各因子得分的最大值和最小值關于零不對稱,甚至很不對稱,但因子得分在正常點的平均值都是零。若得分值接近零,則表明該股票在這個因子上的得分接近于平均水平。從表3至表5可見,Fac-tor1值越大,表明該股票的收益率越高;反之,則越低。Factor2值越大,表明該股票的規模越大;反之,則越小。Factor3值越大,表明該股票的資產主營越多;反之,則越少。在表3中,貴州茅臺、中國神華、中國石油的Fac-tor1值較大,它們都是非常優秀的上市公司,值得投資者長期持有;最后10只股票的Factor1值為負,表明它們是收益率特別低的股票,都是些嚴重虧損的上市公司股票,注意國內四大商業銀行排名最后,收益率最低,且最后10名中有8家銀行。從表4可見,在規模排名最后的那些Fac-tor2值都較為接近,并未出現異常小的值,這是因為按有關規定股票上市的公司都必須具備一定的規模,這樣就不會出現規模特別小的上市公司;規模排名前10的股票的Factor2值特別大,表明有規模特別大的上市公司,它們就是國內四大商業銀行和中國石油、中國石化、交通銀行、中國神華、中信銀行、招商銀行。在表5中,有取正值且絕對值特別大的Factor3值,但沒有取負值且絕對值特別大的Factor3值,表明有資產主營特別多的股票,但沒有資產主營特別少的股票。
從表3至表5中可以看出,有這樣一些財務指標數值特殊的股票:收益率大且規模大(中國神華、中國石油),收益率大且規模?。?ST國藥),收益率小且規模大(中國石化、中信銀行、交通銀行、建設銀行、工商銀行、中國銀行、農業銀行),收益率小且規模?。o);收益率大且資產主營大(中國石油),收益率大且資產主營?。?ST國藥),收益率小且資產主營大(中國石化、興業銀行、浦發銀行、交通銀行、建設銀行、工商銀行、中國銀行、農業銀行),收益率小且資產主營?。o);規模大且資產主營大(工商銀行、建設銀行、農業銀行、中國銀行、中國石油、中國石化、交通銀行、招商銀行),規模大且資產主營?。o),規模小且資產主營大(無),規模小且資產主營?。?ST國藥)。還有一些股票,它們同時出現在三組中:中國石油、*ST國藥、中國石化、交通銀行、建設銀行、工商銀行、中國銀行、農業銀行,具體表現為:收益率大且規模大且資產主營大(中國石油),收益率大且規模小且資產主營?。?ST國藥),收益率小且規模大且資產主營大(中國石化、交通銀行、建設銀行、工商銀行、中國銀行、農業銀行)。
利用穩健性因子分析方法可以對上市公司財務報表中的眾多指標進行降維,本文中利用3個因子得分指標來代替原始10個財務指標,而損失的信息卻不多。通過對3個因子得分指標的分析,投資者對上市公司的財務狀況能夠有一個明確、簡潔和清晰的認識,有利于他們對股票作出正確的評價。在實際應用中,投資者還可結合財務報表的原始數據作出自己正確和明智的判斷?!緢D略】