主成分分析_成份分析_主成分分析的主要步骤
现实中的统计对象经常用多个指标来表示,比如人口普查,就可以有姓名、性别、出生年月日、籍贯、婚姻状况、民族、面貌、地区等,企业调查,可以有净资产、负债、盈利、职工人数、还贷情况等等。多个指标(变量)可以分别进行分析,但是,我们往往希望综合使用这些指标,这时,有主成份分析、因子分析等方法可以把数据的维数降低,同时又尽量不损失数据中的信息。
主成份分析的目的是从原始的多个变量取若干线性组合,能尽可能多地保留原始变量中的信息。从原始变量到新变量是一个正交变换(坐标变换)。设有是一个维随机变量,有二阶矩,记,。考虑它的线性变换
易见
如果要用尽可能多地保留原始的的信息,经典的办法是使的方差尽可能大,这需要对线性变换的系数加限制,一般要求它是单位向量,即。其它的各也希望尽可能多地保留的信息,但前面的已保留的信息就不再保留,即要求,同时对也有的要求,在这样的条件下使最大。
设协方差阵的特征值为,相应的单位特征向量分别为(当特征根有重根时单位特征向量不唯一)。这时的第个主成分为,,且。记,,,则为正交阵,,,且,其中为的主对角线元素。
主成份与原始变量的相关系数称为因子负荷量(factor loading),可以证明,,。
为了减少变量的个数,希望前几个就可以代表的大部分信息。定义为主成份的贡献率,称为主成份的累计贡献率。一般取使得累计贡献率达到70%-80%以上。累计贡献率表示个主成份从中提取了多少信息,但没有表达用它来恢复每一个能恢复多少,为此定义个主成份对原始变量的贡献率,为对的复相关系数平方,可以用公式计算(注意时)。
前个主成份在的个线性组合中能对最好地线性逼近。
在上面的主成份计算方法中,方差越大的变量越被优先保留信息,实际中为了消除这种影响经常把变量标准化,即令
这时的协方差阵就是的相关阵。这时,主成份的协方差阵是,其中为的特征根;;与主成份的相关系数(因子负荷量)为,其中为的对应的单位特征向量;;。主成分分析
对于X的观测样本,设第t次观测为,,把数据写成矩阵形式为
由得协方差阵的估计和相关阵的估计,从或可以得到主成份分解。计算特征值和单位特征向量,仍记为和,用作为X的第i主成份,而称为第t个观测的主成份得分。结果得到的主成份得分矩阵为。可以把的前几行作为维数压缩后的数据。在SAS的PRINCOMP 中计算主成份得分时如果主成份分解是用相关阵得到的则原始自变量要先标准化(减去均值并除以标准差),如果分解用的是协方差阵则计算主成份得分时只对原始变量中心化(减去均值)。
SAS的PRINTCOMP过程有如下功能:
完成主成份分析。
主成份的个数可以由用户自己确定,主成份的名字可以用户自己规定,主成份得分是否标准化可自己规定。
输入数据集可以是原始数据集、相关阵、协方差阵或叉积阵。输入为原始数据时,用户还可以规定从协方差阵出发还是从相关阵出发进行分析。由协方差阵出发时方差大的变量在分析中起到更大的作用。
计算结果有:简单统计量,相关阵或协方差阵,从大到小排序的特征值和相应特征向量,每个主成份解释的方差比例,累计比例等。可生成两个输出数据集:一个包含原始数据及主成份得分,另一个包含有关统计量,类型为TYPE=CORR或COV。
可揭示变量间的共线关系。若某特征值特别接近0说明变量线性相关,这时用这些变量作回归自变量可能得到错误的结果。
PRINCOMP主要使用PROC PRINCOMP语句与VAR语句。PROC PRINCOMP语句用来规定输入输出和一些运行选项,包括:
DATA=输入数据集,可以是原始数据集,也可以是TYPE=CORR,COV的数据集 OUT=输出包含原始数据和主成份得分的数据集 OUTSTAT=统计量输出数据集 COV 要求从协方差阵出发计算主成份。缺省为从相关阵出发计算。 N=要计算的主成份个数。缺省时全算。 NOINT 要求在模型中不使用截距项。这时统计量输出数据集类型为TYPE=UCORR或UCOV。 STD 要求在OUT=的数据集中把主成份得分标准化为单位方差。不规定时方差为相应特征 值。
欧盟绝对不会放过这个机会正式转正