当前位置:论文网 > 论文宝库 > 理学类 > 化学论文 > 正文

稳健因子分析方法的构建及比较研究

来源:UC论文网2018-10-07 09:02

摘要:

  摘要:由于传统因子分析方法对离群值较敏感,导致计算结果与实际不相符。针对这一现象,本文运用FAST-MCD方法对传统因子分析方法进行改进,构建出因子分析的稳健算法,以克服离群值的影响,并对此方法进行了模拟...

  摘要:由于传统因子分析方法对离群值较敏感,导致计算结果与实际不相符。针对这一现象,本文运用FAST-MCD方法对传统因子分析方法进行改进,构建出因子分析的稳健算法,以克服离群值的影响,并对此方法进行了模拟和实证分析。模拟和实证分析结果均表明:因子旋转前后,当数据中不存在离群值时,传统因子分析与稳健因子分析得到的结果基本保持一致;当数据中存在离群值时,运用传统因子分析得到的结果出现较大变化,而运用稳健因子分析方法得到的结果基本不变,这说明相对于传统因子分析方法,稳健因子分析方法能有效抵抗离群值的影响,具有良好的抗干扰性和高抗差性。


  关键词:因子分析;稳健统计量;稳健因子分析;离群值;


  作者简介:王斌会,男,1965年生,陕西省陇县人,现为暨南大学管理学院教授、统计学专业博士生导师。研究方向为统计方法及其在经济管理中的应用。


  一、引言


  社会科学中的数据大都属观察类数据,对其中的离群值(也称异常值)不能如自然科学中的数据那样做删除处理,稳健统计方法在对数据不做删除处理的情况下能克服离群值的影响,是社会科学研究中进行探索性数据分析的一种非常有用的多变量统计分析方法。在理论研究中,采用的数据一般质量较高,特征值偏离往往是小范围的且幅度不大,但是实际数据中往往包含一些离群值;由于传统的多变量分析方法对离群值非常敏感,当数据中出现离群值时,使用它得到的结果与实际情况往往存在明显差异,有时一个或多个离群值就有可能彻底改变研究结论。因此,需要一种稳健、高抗差性的方法来检测样本中的离群值,使其结果比较合理地反映事实。


  比较成熟的稳健统计的估计量是由Huber[1]提出的,它能够使估计量在满足经典假设条件下获得优良结果,而且在某些假设条件不能得到满足的情况下,所得结果也只是受到轻微的影响。Rousseeuw等[2]把稳健估计量扩充为除了能反映大多数样本数据的特征不受离群值干扰之外,还能把样本中的离群值检测出来。Rousseeuw[3]提出MVE(MinimumVolumeEllipsoid)和MCD(MinimumCovarianceDeterminant)方法,由于计算的复杂性以及当时计算机技术的限制,未能得到广泛应用。Rousseeuw[4]提出快速MCD(FAST-MCD)方法,改善了MCD方法的运行速率,改进的方法得到国内外统计学者的普遍认可。王斌会[5][6]基于MCD估计的稳健主成分方法构造出稳健协方差矩阵估计量,模拟和实证结果均表明该方法是一种稳健的方法。郭亚凡[7]比较系统地提出了几种统计量的稳健性对比分析,对稳健估计量进行深入探讨,之后也有不少学者对稳健统计进行了广泛的研究[8]~[15]。


  基于国内外因子分析的研究现状,本文在传统因子分析法的基础上构建出稳健统计量,以消除离群值的影响,得到稳健因子。本文创新之处在于提出因子分析的稳健算法,即从理论上用FAST-MCD方法改进了传统因子分析方法,给出新的稳健因子分析算法,并进行了模拟比较,接着对中国36家上市公司的年度财务数据分别进行了传统因子分析和稳健因子分析的实证研究,研究结果显示稳健因子分析比传统因子分析更具优越性。


  二、传统因子分析方法及其不稳健性


  (一)传统因子分析方法的基本思想


  因子分析是一种非常有用的多变量分析方法,其主要目的是根据变量的相关性把变量分组,使得同组之间的变量相关性较高,不同组变量的相关性较低,每组变量代表一个基本结构,这个基本结构称为公共因子。在数据分析中,一个样本通常会有很多变量来描述,而且这些变量之间往往有某种联系,因子分析就是要把这种联系找出来,用更少的变量表示,它能够帮助我们对复杂的经济问题进行分析和解释,从数据中找寻我们没有留意到的变量的隐藏关系,有利于我们对多维数据的理解[16]。


  (二)传统因子分析方法的计算模型


  假设有一组n×p的数据X,n为样本数,p为变量数。因子模型要求X线性依赖于几个不能观测的称为公共因子的随机变量F和称为特殊因子的变差源ε。因子分析的模型:


  其中A为因子载荷矩阵,A=(aij),aij为第i个变量在第j个因子上的载荷,aij绝对值越大,表明xi与Fj的相依程度越大。F为公共因子向量,F=(F1,F2,…,Fm),ε为特殊因子向量,ε=(ε1,ε2,…,εp),该模型通常需满足以下假设:


  其中Ω=(σij),而且F与ε独立,所以Cov(ε,F)=E(εF')=0。


  从因子分析模型可以推出X的协方差矩阵:


  根据上面的假设条件,最后可以得到∑=AA'+Ω,也就是说变量xi的方差由两部分组成,一部分是由所有公共因子的影响组成,另外一部分由特殊因子的方差组成。因子分析的计算目的就是要找出一因子载荷矩阵A,使得原变量的方差能够尽可能地被公共因子所影响。


  计算因子载荷矩阵A的方法有两种,一种是主成分法(也称主因子法),一种是极大似然法。本文主要采用主因子法,根据协方差矩阵的谱分解,有:


  这符合因子分析模型所规定的协方差结构,该模型的因子和变量一样多,都为p,特殊因子的方差为0,载荷矩阵的第j列为虽然使用这种方法计算出来的因子是精确的,但是用处不大,原因在于它用到的因子个数和变量个数一样多,而我们是要寻找用少数主要的公共因子解释协方差结构的因子模型,所以当后p-m个特征值较小时,略去对的贡献。此时协方差矩阵近似为


  因为因子载荷矩阵A是前m个主因子系数的倍数,所以这种方法称为主因子法[16]。


  m的具体数值既可以根据经验,又可以根据特征值的数值来确定,比如按照选取主因子个数的方法,根据λ所占的信息量百分比来确定,也就是根据其方差贡献率来决定,一般是当方差贡献率超过85%时根据所需要的特征值个数来决定因子个数[16]。


  (三)传统因子分析方法的不稳健性


  从传统因子分析方法的构建过程可以看到,进行因子分析方法计算的关键是算出变量的协方差矩阵,因此可以把问题都归并到协方差矩阵的计算中。但协方差矩阵是一个不稳健的估计量,对离群值较为敏感,所以导致接下来计算的相关矩阵、特征值和特征向量也受其影响,容易得到不合理的结果。在实际数据中,经常会出现离群值,有时一个或多个离群值便可以使计算结果发生改变,甚至会得出相反的结论。为了说明这点,我们构造一个简单的例子。


  假设有一组双变量的数据,样本个数为14,这些数据存在一定的规律性,数值之间相差不大,视为不存在离群值的一组数据,如表1。


  对表1中的数据计算其均值、协方差矩阵、相关系数、第一主因子的特征值以及特征向量。通过计算得到样本的均值为(11.0,7.5),协方差矩阵为[10.31,-7.23;-7.23,6.12],样本的相关系数为-0.911,第一主因子的特征值为1.382,特征向量为(-0.707,0.707)'。这时加入一个离群值样本,序号为15,样本值为(43,12)。再计算上述指标,得到其均值为(13.1,7.8)',协方差矩阵为[77.84,2.89;2.89,7.03],相关系数为0.123,第一主因子的特征值为1.060,特征向量为(0.7071,0.7071)。可见,当样本数据中加入一个离群值时,算出来的三个结果已经出现差异,协方差矩阵的变化已经相当明显,相关系数从负相关变为正相关,甚至主因子的方向也完全颠倒过来,如图1、2所示。可见,有必要进行稳健多变量分析方法的研究,把稳健的思想加入到多变量分析中,提高多变量分析的合理性和科学性。


  三、因子分析的稳健统计方法构建与模拟比较


  (一)基于稳健估计的因子分析方法


  稳健因子分析方法的目的是构造一个稳健的协方差矩阵,归根到底就是要降低离群值对协方差矩阵的影响,去掉离群值的遮蔽效应,消除它们的影响。下面我们介绍常用的稳健协方差矩阵的构建方法—多变量M估计方法:


  多变量M估计量是由Maronnal于1976年首次提出,并由Huber于1977年进一步推广,他们提出的多变量M估计把我们常说的均值向量和协方差矩阵定义为


  其中,ave{}为平均值,di=(xi-tn)'Cn-1(x-tn),u2{}、u1{}和u3{}是实数函数。M估计量的本质是先计算出原样本均值向量和协方差矩阵,根据这两个统计量计算出各个样本的马氏距离,再根据马氏距离对样本数据进行加权平均,权数取决于u1、u2以及u3。M估计量对离群值有一定的抵抗作用,但在实际中我们通常采用Rousseeuw提出的快速MCD(FAST-MCD)方法来构造算法,FAST-MCD估计方法主要利用迭代和马氏距离的思想构造一个稳健的协方差矩阵估计量,然后在此稳健协方差矩阵上计算出稳健相关矩阵,从而进行因子分析。


  考虑一个n行p列的矩阵Xn×p,从中随机抽取h个样本数据,并计算这h个样本数据的样本均值T1和协方差矩阵S1。然后通过


  计算这n个样本数据到中心T1的马氏距离,选出这n个距离中最小的h个,再通过这h个样本计算样本均值T2和协方差矩阵S2。可以证明det(S2)≤det(S1),仅当T1=T2、S1=S2时等号成立。根据上述过程不断迭代下去,当det(Sm)=det(Sm-1)时停止迭代,这时再通过Sm进行加权计算求出稳健的协方差矩阵估计量。反映在图形上就是不断寻找包含h个样本点到样本中心距离最短的超椭球体,而把其余的n-h个样本点排除在超椭球体外。


  但在FAST-MCD的迭代算法中,抽样数h值的确定是一个关键部分,如果h值过大,会把离群值都纳入计算中,得不到我们需要的稳健结果。如果h值太小,又会把正常的样本值归入离群值的范围,这样算出来的结果由于忽略了一些正常的样本值,也是不科学的。如果能够把h值从算法改进中确定下来,那么必定会给程序带来更高的准确性,本文针对h值是由抽取比率a确定这一特点,通过不断地改变a的值来得到相应的特征值和特征向量,然后再根据它们的变化把a确定下来,从而得到更准确的结果。


  (二)稳健因子旋转方法


  进行因子旋转的目的就是要使因子载荷矩阵中因子载荷的绝对值向0和1两个方向分化,使大的载荷更大,小的载荷更小。本文采用的是方差最大正交旋转:若已经求得因子分析模型为X=AF+ε,设Γ=(γij)为一正交矩阵,做正交变换B=AΓ,可以证明,


  (A),其中B=(bij)。这表明经过正交旋转后,共同度h2i并不改变,但公共因子的方差贡献g2j不再与原来相同,此时我们就可以对因子进行合理的解释了。


  由于各个变量xi在某一因子上的载荷bij的平方是该因子对该变量的共性方差h2i的贡献,而各变量的共性方差h2i一般又互不相同,若某个变量xi的共性方差h2i较大,则分配在各个因子上的载荷就大些;反之,则小些。若记cij=b2ij/h2i,选择除以hi是为了消除各个原始变量Xi对公共因子依赖程度不同的影响,而这样的选择还不影响因子的共同度,取平方的目的是消除bij符号不同的影响。


  对于某一因子j,可定义其载荷之间的方差为:


  全部公共因子各自载荷之间的总方差为:


  现在就是要寻找一个正交矩阵Γ,经过对已知的载荷矩阵A的正交变换后,新的因子载荷矩阵B=AΓ中的元素能使V取极大值。


  由于整个过程是基于稳健因子载荷矩阵A来寻找正交变换Γ,与传统的因子选择思路一致,不存在进一步的稳健化问题,所以具体算法在此略过。


  (三)因子分析的稳健算法


  基于稳健因子分析方法的基本思想和传统因子分析方法的改进方法,可以根据FAST-MCD方法对传统因子分析方法进行改进,具体算法步骤如下:


  1.通过改进FAST-MCD方法得到样本的稳健均值向量T和稳健协方差矩阵S,并根据协方差矩阵S计算稳健相关矩阵R。


  2.求解特征方程|R-λE|=0,得出稳健相关矩阵R的特征值和特征向量,当累积贡献率不小于85%时,取前k个主因子代替原来的m个指标,并计算因子载荷矩阵,得到稳健因子载荷。


  3.对稳健因子载荷进行因子旋转。


  4.由原指标的线性组合求得各稳健因子得分,并得到因子得分图。


  (四)两种因子分析方法的模拟比较


  当样本中存在离群值时,为了说明稳健因子分析比传统因子分析得到的结果更加符合实际情况,我们做了一个简单的模拟。每次随机生成100个服从混合分布模型的样本:,其中Np(0,∑)服从一个p维的标准正态分布,服从均值为μ、方差为的p维正态分布,它是影响标准正态分布的离群值来源,把p定为5,做一个5维的多元正态分布模拟,ε取0、0.05、0.10和0.20。通过取不同的ε、μ和控制模拟的效果,每个模拟做1000次,比较它们方差、因子载荷及因子旋转结果发现,当ε=0时,传统因子分析与稳健因子分析得到的特征值与因子载荷矩阵基本一致;但当ε=0.05、ε=0.1以及ε=0.2即数据中存在离群值时,传统因子分析得到的特征值、载荷矩阵与原来(ε=0时传统因子分析)得到的特征值、载荷矩阵相比,发生较大变化;而使用稳健因子分析得到的特征值、载荷矩阵与原来得到的特征值、载荷矩阵差别不大。


  对模拟所得数据的因子载荷进行方差最大(Varimax)旋转,旋转后因子之间的信息更加独立,能使在一个公共因子上有高负荷的变量数目减至最少,增强了因子的可解释性。


  从旋转结果可知,当数据存在离群值时,旋转后传统因子分析得到的结果与数据中没有离群值时相距甚远,例如,当ε=0时,该方法得到的方差基本上等于1;但是当ε≠0时,使用传统方法得到的结果有一个方差达到2以上,并且有两个方差接近0,说明数据中存在离群值时该方法得到的方差会出现偏差;但是有离群值时使用稳健因子分析方法得到的结果与没有离群值时比较接近。综上所述,使用稳健因子分析得到的特征值和因子载荷不受离群值的影响,具有较好的抗干扰性。


  四、实证研究


  (一)方差、贡献率与载荷矩阵的比较


  为了说明当数据中存在离群值时稳健因子分析比传统因子分析得到的结果的准确性更高,本文选取了中国上市公司2012年12月31日的两组企业年度财务指标数据,一组是财务状况良好的企业财务数据(正常组),样本序号1~32,另外一组是破产企业的财务数据(离群值组),样本序号33~36。共选取7个主要指标:X1(流动比率),X2(营运资金比率),X3(营运资金对资产总额比率),X4(营业利润率),X5(销售净利率),X6(总资产净利润率),X7(净资产收益),数据见表2。


  进行因子分析时,希望这些变量之间具有一定程度的相关性,如果变量之间相关性太高或太低都不利于进行因子分析。因此,我们首先利用KMO值和Bartlett检验来判断这些变量是否适合进行因子分析。一般认为KMO检验值大于0.6就适合进行因子分析,Bartlett是检验一批变量之间是否不相关。从验证结果可知,在相关系数矩阵R中,KMO值达到0.76,Bartlett球形检验卡方统计值的显著率为0.00,认为适合进行因子分析。


  我们分别使用传统因子分析方法和稳健因子分析方法对上述数据进行分析,选取主因子个数的常用判断标准为取特征值大于1的主因子或累积贡献率达到85%以上,根据以上标准提取两个主因子,这两个主因子所包含的信息占全部信息的85%以上,代表了绝大部分的指标信息,并且它们的特征值都大于1(基本上达到2以上)。


  首先对正常经营公司的财务数据采用传统因子分析得到这些数据的特征值和特征向量,然后分别加入1个破产公司的财务数据(33号)和4个破产公司的财务数据(33~36号)进行分析。当仅有1个离群值或者4个离群值时,传统因子分析的计算结果出现了一定的偏差,而稳健因子分析计算的结果也依然比传统因子分析更接近没有离群值时的结果。


  具体分析结果,当样本数据中不含离群值时,这两种方法得到的方差、方差贡献率和累积方差贡献率在旋转前后差别不大:旋转前,传统因子分析方法得到两因子的方差分别为3.462、2.804,方差贡献率为49.45%、40.06%,与稳健因子方法得到两因子的方差3.516、2.880,以及方差贡献率50.22%、41.14%基本一致;旋转后,传统因子方法得到的方差为3.139、3.126,方差贡献率为44.85%、44.66%,用稳健因子方法得到的方差分别为3.263、3.165,方差贡献率分别为46.62%、45.21%,两种方法在旋转前后得到的结果差别不大。


  当样本数据中存在一个离群值(33号)时,使用两种方法得到的结果却出现了差异:旋转前,传统因子分析方法得到两因子的方差分别为4.764、1.876,方差贡献率为68.05%、26.79%,稳健因子分析方法得到两因子的方差为3.516、2.880,方差贡献率为50.22%、41.14%。可以发现,当存在一个离群值时,使用传统因子分析方法得到的因子1的方差达到了4.764,因子2的方差仅为1.876,相应的方差贡献率也出现了偏差,而稳健因子分析得到的方差、方差贡献率与没有离群值时的差别不大,但两种方法旋转后得到的结果要优于旋转前得到的结果。


  当样本数据中存在四个离群值(33~36号)时,与前面两种情况(没有离群值与有一个离群值的情况)相比,旋转前后传统方法得到的结果存在较大差别,但稳健因子分析方法得到的结果都没有很大差别。说明稳健因子分析方法确实对离群值或异常值有一定的抵抗作用,此方法具有较好的稳定性。


  此外,当样本数据中存在离群值时传统因子分析算出来的结果与样本数据中不存在离群值时相差较大,而稳健因子分析在这两类情况下得到的结果相差不大:旋转前,当样本数据中不存在离群值时,用传统因子分析方法得到的结果与稳健因子分析方法得到的结果相差不大;当样本数据中存在一个离群值(33号)时,用传统因子分析方法得到的结果与不存在离群值时存在较大差异。当样本数据中存在四个离群值(33~36号)时,使用传统因子分析方法得到的结果与不存在离群值时该方法得到的结果存在偏差,而且与含有一个离群值时的结果一致,因子2在各个指标的载荷值上符号均发生了改变。类似以上分析,旋转后,传统因子分析方法得到的结果出现一定的偏差,而稳健因子分析方法得到的结果与没有离群值时该方法得到的结果相差不大,进一步说明了稳健因子分析具有较好的抗干扰性,且能有效抵抗离群值的影响。


  (二)因子得分图的对比分析


  本文使用传统因子分析与稳健因子分析方法,通过对比以因子Factor1和因子Factor2为坐标轴绘制的传统因子与稳健因子旋转前后得分图可以看出:


  一般情况下,正常经营企业的流动比率、营运资金比率、营运资金对资产总额比率、营业利润率、销售净利率、总资产净利润率以及净资产收益大部分都是正值,破产企业的这些数值绝大部分是负值。旋转前传统因子得分图中4个破产企业的财务数据位于第二象限,并且数据34在第二个因子上得分为正,值也相对较大,其他3个破产企业的财务数据在第二个因子的得分均为正,这与实际情况不吻合。而在旋转前稳健因子得分图中,这4个破产企业的财务数据位于第三象限,即在因子1和因子2上的得分均为负值,而且这4个企业的财务数据明显偏离其他正常经营企业,这一结果比较符合实际情况。


  同理,旋转后,稳健因子方法得到的因子得分图中,4个破产企业的财务数据位于第三象限,而传统因子分析方法得到的因子得分图中仍有一破产企业的财务数据(34)落于第二象限,这个得分情况显然与事实不符。比较两种方法得到的因子得分图可知,稳健因子分析方法得到的结果能有效地把离群值检测出来,而且结果不受离群值的影响。


  五、结论


  以上对传统因子分析和稳健因子分析的数据模拟和实证比较都说明离群值的存在会严重影响我们对经济现象及趋势的判断,甚至做出错误的决策。为了使经济理论模型能够符合大部分数据表现出来的规律,在数据预处理阶段有必要进行离群值检测;而在因子分析阶段,若使用传统方法,容易导致得到的结果与实际情况不相符,甚至发生较大的偏离,因此有必要构造一种比较稳健的统计量来克服离群值的影响,本文对因子分析研究的创新即立足于此点。


  本文基于传统因子分析法提出了因子分析的稳健算法,数据模拟与实证分析过程都表明在因子旋转前后,样本数据中存在离群值时,传统因子分析得到的特征值和因子载荷会以离群值的多寡而发生相应程度的变化,稳健因子分析则基本不发生变化或变化轻微,后者在处理存在离群值的样本数据时效果更优,这是因为传统因子方法在算法上所构造的协方差矩阵容易受到离群值的影响,特征值与特征向量都是依此计算所得,对离群值比较敏感,因而计算结果会出现偏差;而稳健因子分析方法首先构造了一个稳健的协方差矩阵,减轻了离群值的影响,再依此计算其特征值和特征向量,对离群值有很好的抵抗作用,降低了它对计算结果的影响,因而该方法更具有优越性。


核心期刊推荐