· 返回首页 · 联系我们 · English
 
 
     
 
课外天地
 专业园地
 它山之石
 史海钩沉
 下载园地
 
主成份分析与因子分析 2003-1-1

主成份分析与因子分析

转载自网站 http://www.math.pku.edu.cn/teachers/lidf/docs/statsoft/html/statsoft.html
作者:北京大学概率统计系 李东风

 

现实中的统计对象经常用多个指标来表示,比如人口普查,就可以有姓名、性别、出生年月日、籍贯、婚姻状况、民族、政治面貌、地区等,企业调查,可以有净资产、负债、盈利、职工人数、还贷情况等等。多个指标(变量)可以分别进行分析,但是,我们往往希望综合使用这些指标,这时,有主成份分析、因子分析等方法可以把数据的维数降低,同时又尽量不损失数据中的信息。

I. 主成份分析

一、理论介绍

主成份分析的目的是从原始的多个变量取若干线性组合,能尽可能多地保留原始变量中的信息。从原始变量到新变量是一个正交变换(坐标变换)。设有 是一个 维随机变量,有二阶矩,记 。考虑它的线性变换

易见

如果要用 尽可能多地保留原始的 的信息,经典的办法是使 的方差尽可能大,这需要对线性变换的系数 加限制,一般要求它是单位向量,即 。其它的各 也希望尽可能多地保留 的信息,但前面的 已保留的信息就不再保留,即要求 ,同时对 也有 的要求,在这样的条件下使 最大。设协方差阵 的特征值为 ,相应的单位特征向量分别为 (当特征根有重根时单位特征向量不唯一)。这时 的第 个主成分为 ,且 。记 ,则 为正交阵, ,且 ,其中 的主对角线元素。

主成份 与原始变量 的相关系数 称为因子负荷量(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后就得到了多变量分析结果(包括原始变量的简单统计量、相关阵)和主成份分析的结果(特征值、累计贡献率、特征向量)。另外还画了前两个主成份的散点图。

 

II. 因子分析

一、理论简介

主成份分析作 个原始变量的 个线性组合,这些线性组合在原始变量的所有 个线性组合中可以最好地预报原始变量。因子分析对主成份分析进行了推广,它用潜在的 个“因子”来概括原始变量的信息,这些因子不一定是原始变量的线性组合。

随机向量,其均值为 ,协方差阵为 ,我们称 个因子的模型,若 能表为

其中 是未知常数阵, 为随机向量。 称为公共因子, 叫做特殊因子,叫因子负荷矩阵。这个模型象是回归分析模型,但是这里 是多元随机变量而不是一个随机变量的样本, 也是随机变量而不是一般的回归系数。求因子分解要用到原始变量协方差阵 、特殊因子的协方差阵 的如下关系式:

公因子模型分解是不唯一的,因为如果 是一个正交阵,则有

这时 是新的因子, 是新的因子负荷阵。我们可以利用这一特点对得到的因子模型进行旋转以产生容易解释的因子。旋转时一般试图使因子载荷系数靠近正负1和0,这样容易解释因子的组成。

二、FACTOR过程使用

SAS/STAT的FACTOR过程可以进行因子分析、分量分析和因子旋转。对因子模型可以使用正交旋转和斜交旋转,可以用回归法计算得分系数,同时把因子得分的估计存贮在输出数据集中;用FACTOR过程计算的所有主要统计量也能存贮在输出数据集中。

FACTOR过程用法很简单,主要使用如下语句:

PROC FACTOR DATA= 数据集 选项;

VAR 原始变量;

RUN;

输出结果包括特征值情况、因子载荷、公因子解释比例,等等。为了计算因子得分,一般在PROC FACTOR语句中加一个SCORE选项和“OUTSTAT=输出数据集”选项,然后用如下的得分过程计算公因子得分:

		PROC SCORE DATA=原始数据集 SCORE=FACTOR过程的输出数据集 
							OUT=得分输出数据集;
			VAR  用来计算得分的原始变量集合;
		RUN;

三、例子

数据集SOCECON为洛杉基12个地区统计的五个社会经济指标:人口总数(POP),教育程度(SCHOOL),就业数(EMPLOY),服务业人数(SERVICES),中等的房价(HOUSE)。用FACTOR过程可以进行主成份分析。下例中的SIMPLE选项要求计算变量的简单统计量,CORR 要求输出相关阵。

DATA SOCECON;
   TITLE '五个经济指标的分析';
   INPUT POP SCHOOL EMPLOY SERVICES HOUSE;
   CARDS;
5700     12.8      2500      270       25000
1000     10.9      600       10        10000
3400     8.8       1000      10        9000
3800     13.6      1700      140       25000
4000     12.8      1600      140       25000
8200     8.3       2600      60        12000
1200     11.4      400       10        16000
9100     11.5      3300      60        14000
9900     12.5      3400      180       18000
9600     13.7      3600      390       25000
9600     9.6       3300      80        12000
9400     11.4      4000      100       13000
;
PROC FACTOR DATA=SOCECON SIMPLE CORR;
   TITLE2 '主成份分析';
RUN;

结果给出了五个变量的简单统计量,相关阵,和相关阵的特征值、累计贡献:

                           1           2           3           4           5    
    Eigenvalue        2.8733      1.7967      0.2148      0.0999      0.0153   
    Difference        1.0767      1.5818      0.1149      0.0847                

    Proportion        0.5747      0.3593      0.0430      0.0200      0.0031 
       
    Cumulative        0.5747      0.9340      0.9770      0.9969      1.0000 
       
                                                                             
       
             2 factors will be retained by the MINEIGEN criterion.           
       

前两个主成份解释了93.4%的方差,按照缺省的选择因子个数的准则MINEIGEN,取大于1的特征值,所以取两个因子。因子模式阵(factor pattern,或称因子载荷阵)为最重要的结果之一:

                                 Factor Pattern                              
                                     FACTOR1   FACTOR2                       
       
                          POP        0.58096   0.80642                       
       
                          SCHOOL     0.76704  -0.54476                       
       
                          EMPLOY     0.67243   0.72605                       
       
                          SERVICES   0.93239  -0.10431                       
       
                          HOUSE      0.79116  -0.55818                       
       

它们是用公因子预报原始变量的回归系数。第一主成份(因子)在所有五个变量上都有正的载荷,可见这个因子反应了城市规模的影响。第二主成份在人口、就业上有大的正载荷,在教育程度和住房价格上有大的负载荷,则第二个因子较大的城市人口多但是教育程度和住房价格低。结果还给出了公因子解释能力的估计:

                 Final Communality Estimates: Total = 4.669974    
                      POP    SCHOOL    EMPLOY  SERVICES     HOUSE  

                 0.987826  0.885106  0.979306  0.880236  0.937500  

这里给出了公因子对每一个原始变量的解释能力的量度,这是用原始变量对公因子的复相关系数平方(取0到1间值)来计算的。Communality Estimate是这些复相关系数平方的总和。因为每一个复相关系数平方都比较大,所以我们可以认为两个公因子可以很好地解释原始变量中的信息。但是我们得到的因子解释不够清楚,于是考虑用其它的因子分析方法。

我们来进行主因子分析。用FACTOR过程作主因子分析与作主成份分析的不同只是增加一个PRIORS=选项,可以用PRIORS=SMC或者MAX、ONE等。例如:

PROC FACTOR DATA=SOCECON priors=smc;
   TITLE2 '主因子分析';
RUN;

主因子法计算简约了的相关阵的特征值(相当于 的估计),所以其特征值可能为负值。选取因子个数的缺省准则是PROPORTION=1,即累计特征值达到特征值总和的100%。这样取了两个因子。结果与主成份分析相似。为了得到好的因子解释,我们在上面的PROC FACTOR语句中再加上一个ROTATE=PROMAX旋转选项,这样将在得到主因子分析后先产生方差最大正交预旋转(VARIMAX )然后进行斜交旋转,并加了一个REORDER选项使输出时把原始变量受相同因子影响的放在一起:

PROC FACTOR DATA=SOCECON PRIORS=SMC ROTATE=PROMAX REORDER;
   TITLE2 '主因子分析及PROMAX斜交旋转';
RUN;

在初始的主因子结果之后是方差最大预旋转的结果(只显示了旋转阵和旋转后的因子载荷):

                        Orthogonal Transformation Matrix             
                                        1         2                 
                              1      0.78895   0.61446              
                              2     -0.61446   0.78895              
                             Rotated Factor Pattern                 
                                     FACTOR1   FACTOR2              
                          HOUSE      0.94072  -0.00004              
                          SCHOOL     0.90419   0.00055              
                          SERVICES   0.79085   0.41509              
                          POP        0.02255   0.98874              
                          EMPLOY     0.14625   0.97499             

可见第一因子反映了房价、教育水平、服务业人数,这些应该与发达程度有关。第二因子反映了人口和就业情况,与城市规模有关。这样得到的因子已经比较好用。我们再看斜交旋转的结果,这里只给出了旋转后的因子模式阵:

                     Rotated Factor Pattern (Std Reg Coefs)         
                                     FACTOR1   FACTOR2              
                          HOUSE      0.95558  -0.09792              
                          SCHOOL     0.91842  -0.09352              
                          SERVICES   0.76053   0.33932              
                          POP       -0.07908   1.00192              
                          EMPLOY     0.04799   0.97509             

从结果看得到的因子比正交旋转没有改进。因为斜交旋转后的公因子是相关的,所以结果中还给出了公因子的相关阵,参考结构(Reference Structure,为每个原始变量与公因子扣除其它公因子影响的偏相关),因子结构(Factor Structure,为原始变量与公因子间的相关系数)。

Prerotation Method: Varimax                                  
                        Orthogonal Transformation Matrix  
                                        1         2 
                              1      0.78895   0.61446         
                              2     -0.61446   0.78895         
                             Rotated Factor Pattern  
                                     FACTOR1   FACTOR2   
                          POP        0.02255   0.98874    
                          SCHOOL     0.90419   0.00055    
                          EMPLOY     0.14625   0.97499    
                          SERVICES   0.79085   0.41509    
                          HOUSE      0.94072  -0.00004 

为了产生因子得分,需要在FACTOR过程中使用SCORE选项和OUTSTAT=选项输出得分系数数据集并调用SCORE过程。比如,为了计算方差最大正交旋转的主因子得分,可以用如下程序:

PROC FACTOR DATA=SOCECON PRIORS=SMC ROTATE=VARIMAX REORDER SCORE OUTSTAT=OUTF;
   TITLE2 '主因子分析及VARIMAX正交旋转';
RUN;
PROC SCORE DATA=SOCECON SCORE=OUTF OUT=OUTS;
   TITLE2 ' VARIMAX正交旋转后的主因子得分';
RUN;
 
     
 
 
  数字资源 | 友情链接 | 联系我们
 
COPYRIGHT © 2006-2010 第二军医大学卫生统计学教研室 hejia@smmu.edu.cn
地址:上海市翔殷路800号 邮编:200433 电话:021-81871441
 
技术支持:网络信息中心