轉載自網站 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;