一、理论介绍
主成份分析的目的是从原始的多个变量取若干线性组合,能尽可能多地保留原始变量中的信息。从原始变量到新变量是一个正交变换(坐标变换)。设有
是一个
维随机变量,有二阶矩,记
,
。考虑它的线性变换 数据挖掘实验室
易见
如果要用
尽可能多地保留原始的
的信息,经典的办法是使
的方差尽可能大,这需要对线性变换的系数
加限制,一般要求它是单位向量,即
。其它的各
也希望尽可能多地保留
的信息,但前面的
已保留的信息就不再保留,即要求
,同时对
也有
的要求,在这样的条件下使
最大。设协方差阵
的特征值为
,相应的单位特征向量分别为
(当特征根有重根时单位特征向量不唯一)。这时
的第
个主成分为
,
,且
。记
,
,
,则
为正交阵,
,
,且
,其中
为
的主对角线元素。
主成份
与原始变量
的相关系数
称为因子负荷量(factor loading),可以证明
,
,
。 数据挖掘研究院
为了减少变量的个数,希望前几个
就可以代表
的大部分信息。定义
为主成份
的贡献率,称
为主成份
的累计贡献率。一般取
使得累计贡献率达到70%-80%以上。累计贡献率表示
个主成份从
中提取了多少信息,但没有表达用它来恢复每一个
能恢复多少,为此定义
个主成份
对原始变量
的贡献率
,
为
对
的复相关系数平方,可以用公式
计算(注意
时
)。前
个主成份
在
的
个线性组合中能对
最好地线性逼近。
在上面的主成份计算方法中,方差越大的变量越被优先保留信息,实际中为了消除这种影响经常把变量标准化,即令
这时
的协方差阵就是
的相关阵
。这时,主成份的协方差阵是
,其中
为
的特征根;
;
与主成份
的相关系数(因子负荷量)为
,其中
为
的对应
的单位特征向量;
;
。 数据挖掘研究院
对于X的观测样本,设第t次观测为
,
,把数据写成矩阵形式为 数据挖掘实验室
由
得协方差阵
的估计
和相关阵
的估计
,从
或
可以得到主成份分解。计算特征值和单位特征向量,仍记为
和
,用
作为X的第i主成份,而
称为第t个观测的主成份得分。结果得到的主成份得分矩阵为
。可以把
的前几行作为维数压缩后的数据。在SAS的PRINCOMP 中计算主成份得分时如果主成份分解是用相关阵得到的则原始自变量要先标准化(减去均值并除以标准差),如果分解用的是协方差阵则计算主成份得分时只对原始变量中心化(减去均值)。
二、用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=的数据集中把主成份得分标准化为单位方差。不规定时方差为相应特征
值。
用VAR语句指定原始变量。必须为数值型(区间变量)。
三、应用举例
例1.一月和七月平均气温的主成份分析 数据挖掘研究院
在数据集TEMPERAT中存放有美国一些城市一月和七月的平均气温。我们希望对这两个气温进行主成分分析,希望用一个统一的温度来作为总的可比的温度,所以进行主成份分析。程序如下: 数据挖掘研究院
/*EXAMPLE 1*/ DATA TEMPERAT; INPUT CITY $1-15 JANUARY JULY; CARDS; MOBILE 51.2 81.6 PHOENIX 51.2 91.2 LITTLE ROCK 39.5 81.4 SACRAMENTO 45.1 75.2 DENVER 29.9 73.0 HARTFORD 24.8 72.7 WILMINGTON 32.0 75.8 WASHINGTON DC 35.6 78.7 JACKSONVILLE 54.6 81.0 MIAMI 67.2 82.3 ATLANTA 42.4 78.0 BOISE 29.0 74.5 CHICAGO 22.9 71.9 PEORIA 23.8 75.1 INDIANAPOLIS 27.9 75.0 DES MOINES 19.4 75.1 WICHITA 31.3 80.7 LOUISVILLE 33.3 76.9 NEW ORLEANS 52.9 81.9 PORTLAND, MAINE 21.5 68.0 BALTIMORE 33.4 76.6 BOSTON 29.2 73.3 DETROIT 25.5 73.3 SAULT STE MARIE 14.2 63.8 DULUTH 8.5 65.6 MINNEAPOLIS 12.2 71.9 JACKSON 47.1 81.7 KANSAS CITY 27.8 78.8 ST LOUIS 31.3 78.6 GREAT FALLS 20.5 69.3 OMAHA 22.6 77.2 RENO 31.9 69.3 CONCORD 20.6 69.7 ATLANTIC CITY 32.7 75.1 ALBUQUERQUE 35.2 78.7 ALBANY 21.5 72.0 BUFFALO 23.7 70.1 NEW YORK 32.2 76.6 CHARLOTTE 42.1 78.5 RALEIGH 40.5 77.5 BISMARCK 8.2 70.8 CINCINNATI 31.1 75.6 CLEVELAND 26.9 71.4 COLUMBUS 28.4 73.6 OKLAHOMA CITY 36.8 81.5 PORTLAND, OREG 38.1 67.1 PHILADELPHIA 32.3 76.8 PITTSBURGH 28.1 71.9 PROVIDENCE 28.4 72.1 COLUMBIA 45.4 81.2 SIOUX FALLS 14.2 73.3 MEMPHIS 40.5 79.6 NASHVILLE 38.3 79.6 DALLAS 44.8 84.8 EL PASO 43.6 82.3 HOUSTON 52.1 83.3 SALT LAKE CITY 28.0 76.7 BURLINGTON 16.8 69.8 NORFOLK 40.5 78.3 RICHMOND 37.5 77.9 SPOKANE 25.4 69.7 CHARLESTON, WV 34.5 75.0 MILWAUKEE 19.4 69.9 CHEYENNE 26.6 69.1 ; PROC PRINCOMP COV OUT=PRIN; VAR JULY JANUARY; RUN; 数据挖掘研究院
在INSIGHT中打开WORK.PRIN,分别绘制JULY对JANUARY、PRIN2对PRIN1的散点图(图 1)。从图可以看出主成份为原始变量的一个正交旋转。输出如下:
Principal Component Analysis
62 Observations
2 Variables
Simple Statistics
JULY JANUARY
Mean 75.92096774 32.55483871
StD 4.88061193 11.59197967
Covariance Matrix
JULY JANUARY
JULY 23.8203728 43.4319461
JANUARY 43.4319461 134.3739926
Total Variance = 158.19436542
Eigenvalues of the Covariance Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 149.396 140.597 0.944380 0.94438
PRIN2 8.799 . 0.055620 1.00000
Eigenvectors
PRIN1 PRIN2
JULY 0.326866 0.945071
JANUARY 0.945071 -.326866
数据挖掘研究院
输出中,第一部分为简单统计量(均值和标准差),第二部分为协方差的特征值(注意我们在过程中用了COV选项,无此选项用相关阵),从这里可以看到贡献率(Proportion)和累计贡献率(Cumulative),第三部分为特征向量。按本结果的特征向量值及用COV选项规定使用协方差阵,我们可以知道两个主成份如此计算:
PRIN1 = 0.326866 (JULY-75.92) + 0.945071 (JANUARY-32.55) PRIN2 = 0.945071 (JULY-75.92)+ (-0.326866) (JANUARY-32.55)
如果没有用COV选项,原始变量还需要除以标准差。由系数可见,第一主成份是两个月份的加权平均,代表了一个地方的气温水平,第二主成份系数一正一负,反应了冬季和夏季的气温差别。 数据挖掘研究院
例2.美国各种类型犯罪的主成份分析 数据挖掘实验室
在数据集CRIME中有美国各个州的各种类型犯罪的犯罪率数据。希望对这些犯罪率数据进行主成份分析以概括犯罪情况。程序如下: 数据挖掘研究院
/* EXAMPLE 2*/ DATA CRIME; TITLE ′各州每十万人的犯罪率′; INPUT STATE $1-15 MURDER RAPE ROBBERY ASSAULT BURGLARY LARCENY AUTO; CARDS; ALABAMA 14.2 25.2 96.8 278.3 1135.5 1881.9 280.7 ALASKA 10.8 51.6 96.8 284.0 1331.7 3369.8 753.3 ARIZONA 9.5 34.2 138.2 312.3 2346.1 4467.4 439.5 ARKANSAS 8.8 27.6 83.2 203.4 972.6 1862.1 183.4 CALIFORNIA 11.5 49.4 287.0 358.0 2139.4 3499.8 663.5 COLORADO 6.3 42.0 170.7 292.9 1935.2 3903.2 477.1 CONNECTICUT 4.2 16.8 129.5 131.8 1346.0 2620.7 593.2 DELAWARE 6.0 24.9 157.0 194.2 1682.6 3678.4 467.0 FLORIDA 10.2 39.6 187.9 449.1 1859.9 3840.5 351.4 GEORGIA 11.7 31.1 140.5 256.5 1351.1 2170.2 297.9 HAWAII 7.2 25.5 128.0 64.1 1911.5 3920.4 489.4 IDAHO 5.5 19.4 39.6 172.5 1050.8 2599.6 237.6 ILLINOIS 9.9 21.8 211.3 209.0 1085.0 2828.5 528.6 INDIANA 7.4 26.5 123.2 153.5 1086.2 2498.7 377.4 IOWA 2.3 10.6 41.2 89.8 812.5 2685.1 219.9 KANSAS 6.6 22.0 100.7 180.5 1270.4 2739.3 244.3 KENTUCKY 10.1 19.1 81.1 123.3 872.2 1662.1 245.4 LOUISIANA 15.5 30.9 142.9 335.5 1165.5 2469.9 337.7 MAINE 2.4 13.5 38.7 170.0 1253.1 2350.7 246.9 MARYLAND 8.0 34.8 292.1 358.9 1400.0 3177.7 428.5 MASSACHUSETTS 3.1 20.8 169.1 231.6 1532.2 2311.3 1140.1 MICHIGAN 9.3 38.9 261.9 274.6 1522.7 3159.0 545.5 MINNESOTA 2.7 19.5 85.9 85.8 1134.7 2559.3 343.1 MISSISSIPPI 14.3 19.6 65.7 189.1 915.6 1239.9 144.4 MISSOURI 9.6 28.3 189.0 233.5 1318.3 2424.2 378.4 MONTANA 5.4 16.7 39.2 156.8 804.9 2773.2 309.2 NEBRASKA 3.9 18.1 64.7 112.7 760.0 2316.1 249.1 NEVADA 15.8 49.1 323.1 355.0 2453.1 4212.6 559.2 NEW HAMPSHIRE 3.2 10.7 23.2 76.0 1041.7 2343.9 293.4 NEW JERSEY 5.6 21.0 180.4 185.1 1435.8 2774.5 511.5 NEW MEXICO 8.8 39.1 109.6 343.4 1418.7 3008.6 259.5 NEW YORK 10.7 29.4 472.6 319.1 1728.0 2782.0 745.8 NORTH CAROLINA 10.6 17.0 61.3 318.3 1154.1 2037.8 192.1 NORTH DAKOTA 0.9 9.0 13.3 43.8 446.1 1843.0 144.7 OHIO 7.8 27.3 190.5 181.1 1216.0 2696.8 400.4 OKLAHOMA 8.6 29.2 73.8 205.0 1288.2 2228.1 326.8 OREGON 4.9 39.9 124.1 286.9 1636.4 3506.1 388.9 PENNSYLVANIA 5.6 19.0 130.3 128.0 877.5 1624.1 333.2 RHODE ISLAND 3.6 10.5 86.5 201.0 1489.5 2844.1 791.4 SOUTH CAROLINA 11.9 33.0 105.9 485.3 1613.6 2342.4 245.1 SOUTH DAKOTA 2.0 13.5 17.9 155.7 570.5 1704.4 147.5 TENNESSEE 10.1 29.7 145.8 203.9 1259.7 1776.5 314.0 TEXAS 13.3 33.8 152.4 208.2 1603.1 2988.7 397.6 UTAH 3.5 20.3 68.8 147.3 1171.6 3004.6 334.5 VERMONT 1.4 15.9 30.8 101.2 1348.2 2201.0 265.2 VIRGINIA 9.0 23.3 92.1 165.7 986.2 2521.2 226.7 WASHINGTON 4.3 39.6 106.2 224.8 1605.6 3386.9 360.3 WEST VIRGINIA 6.0 13.2 42.2 90.9 597.4 1341.7 163.3 WISCONSIN 2.8 12.9 52.2 63.7 846.9 2614.2 220.7 WYOMING 5.4 21.9 39.7 173.9 811.6 2772.2 282.0 ; PROC PRINCOMP OUT=CRIMCOMP; RUN; PROC SORT; BY PRIN1; PROC PRINT; ID STATE; VAR PRIN1 PRIN2 MURDER RAPE ROBBERY ASSAULT BURGLARY LARCENY AUTO; TITLE2 ′各州按第一主成份作为总犯罪率排列′; PROC SORT; BY PRIN2; PROC PRINT; ID STATE; VAR PRIN1 PRIN2 MURDER RAPE ROBBERY ASSAULT BURGLARY LARCENY AUTO; TITLE2 ′各州按第二主成份作为金钱犯罪与暴力犯罪对比的排列′; PROC GPLOT; PLOT PRIN2*PRIN1=STATE; TITLE2 ′PLOT OF THE FIRST TWO PRINCIPAL COMPONENTS′; PROC GPLOT; PLOT PRIN3*PRIN1=STATE; TITLE2 ′PLOT OF THE FIRST AND THIRD PRINCIPAL COMPONENTS′; RUN; 数据挖掘研究院
输入数据后,用PROC PRINCOMP对数据进行主成份分析,结果先给出了各变量的简单统计量,变量的相关阵,其特征值和特征向量结果如下: 数据挖掘研究院
Eigenvalues of the Correlation Matrix
Eigenvalue Difference Proportion Cumulative
PRIN1 4.11496 2.87624 0.587851 0.58785
PRIN2 1.23872 0.51291 0.176960 0.76481
PRIN3 0.72582 0.40938 0.103688 0.86850
PRIN4 0.31643 0.05846 0.045205 0.91370
PRIN5 0.25797 0.03593 0.036853 0.95056
PRIN6 0.22204 0.09798 0.031720 0.98228
PRIN7 0.12406 . 0.017722 1.00000
Eigenvectors
PRIN1 PRIN2 PRIN3 PRIN4 PRIN5 PRIN6 PRIN7
MURDER 0.300279 -.629174 0.178245 -.232114 0.538123 0.259117 0.267593
RAPE 0.431759 -.169435 -.244198 0.062216 0.188471 -.773271 -.296485
ROBBERY 0.396875 0.042247 0.495861 -.557989 -.519977 -.114385 -.003903
ASSAULT 0.396652 -.343528 -.069510 0.629804 -.506651 0.172363 0.191745
BURGLARY 0.440157 0.203341 -.209895 -.057555 0.101033 0.535987 -.648117
LARCENY 0.357360 0.402319 -.539231 -.234890 0.030099 0.039406 0.601690
AUTO 0.295177 0.502421 0.568384 0.419238 0.369753 -.057298 0.147046
第一主成份贡献率只有59%,前两个主成份累计贡献率达到76%,可以用前两个主成份。前三个主成份累计贡献率已达到87%,所以前三个主成份可以表现犯罪率的大部分信息。第一主成份的计算系数都是正数,所以它是一个州的犯罪率的一个加权平均,代表这个州的总的犯罪情况。第二主成份在入室盗窃(BURGLARY)、盗窃罪(LARCENY)、汽车犯罪(AUTO)上有较大的正系数,在谋杀(MURDER)、强奸(RAPE)、攻击(ASSAULT)上有较大的负系数,所以代表了暴力犯罪与其它犯罪的一种对比。第三主成份为抢劫、汽车犯罪等与盗窃罪、入室盗窃、强奸的对比,其意义不易解释。 数据挖掘研究院
为了看出各州按第一主成份和第二主成份由低到高排列的情况,先用SORT过程排了序,然后用PRINT过程打印了结果(结果略)。在按第一主成份排序中,North Dakota、South Dakota、West Virginia排列在前,说明其犯罪率最低,Nevada、California排列在后,说明其犯罪率最高。在按第二主成份排列的结果中,Mississippi排在最前,说明其暴力犯罪最高,Massachusetts最后,说明其暴力犯罪最低。后面用PLOT过程画了主成分的散点图。 数据挖掘实验室
四、用SAS/INSIGHT进行主成份分析
在SAS/INSIGHT中可进行主成份分析。例如,对于上面的WORK.CRIME数据集,在INSIGHT 中打开它后,选“Analyze | Multivariate ( Y′s )”,弹出选择变量的对话框,把各犯罪率变量都选为Y变量,然后按Output按钮,选中主成份分析(Principal Component Analysis )复选框,OK后就得到了多变量分析结果(包括原始变量的简单统计量、相关阵)和主成份分析的结果(特征值、累计贡献率、特征向量)。另外还画了前两个主成份的散点图。 数据挖掘研究院

