天天看點

主成份分析與因子分析

  轉載自網站 http://www.math.pku.edu.cn/teachers/lidf/docs/statsoft/html/statsoft.html

作者:北京大學機率統計系 李東風

現實中的統計對象經常用多個名額來表示,比如人口普查,就可以有姓名、性别、出生年月日、籍貫、婚姻狀況、民族、政治面貌、地區等,企業調查,可以 有淨資産、負債、盈利、職勞工數、還貸情況等等。多個名額(變量)可以分别進行分析,但是,我們往往希望綜合使用這些名額,這時,有主成份分析、因子分析 等方法可以把資料的維數降低,同時又盡量不損失資料中的資訊。

  • I. 主成份分析
  • II. 因子分析

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;      

繼續閱讀