林海明
(廣東商學院 a.國民經(jīng)濟研究中心,b.經(jīng)濟貿(mào)易與統(tǒng)計學院 廣州 510320)
主成分分析是多元數(shù)據(jù)降維的重要方法之一,應用廣泛。主成分的結(jié)果計算量大,應用計算機軟件計算是必須的。在統(tǒng)計軟件SPSS、SAS中,SAS計算主成分的結(jié)果是正確的;SPSS迄今沒有主成分分析的模塊,不能直接得到主成分系數(shù)和主成分值。如何用SPSS快速計算主成分的結(jié)果,是SPSS使用者和教學面臨的理論和計算困難。


文獻[2]根據(jù)第j個主成分Yj=γj′X(X是標準化后原始變量),用SPSS正確計算了主成分值,但計算中除了X的計算外,還有對話框中γj的輸入慢。“慢”顯然不能反映出計算機速度快的優(yōu)點。

美國統(tǒng)計學家C.R.Rao(2004)認為[4]:“進行主成分分析和因子分析關(guān)系的理論研究,以及在個別的數(shù)據(jù)集中考察主成分與因子之間的實際差異,都是令人非常感興趣的”。
為了在原始數(shù)據(jù)標準化或中心化的一般條件下,能用SPSS快速計算主成分的結(jié)果,我們認為理論和計算上,需要解決如下2個問題:
問題①:何為因子得分與主成分的一般等式關(guān)系式?
問題②:如何用SPSS快速計算一般性的主成分系數(shù)、主成分值?
據(jù)我們國內(nèi)外文獻的查詢,上述問題沒有解決。這里應用因子分析中主成分法的初始因子載荷陣及其回歸的初始因子得分,解決了問題①,據(jù)此,用SPSS軟件的因子分析模塊和Transform Compute功能,解決了問題②。
設X=(X1,…,Xp)'為可觀測的隨機向量(p≥2),cov(X)=∑,均值E(X)=(μ1,…,μp)'=μ,r=秩(∑)≤p,∑的非零特征值為λ1、…、λr、λ1≥…≥λr,Ur=(γ1,…,γr)=(rij)p×r、這里∑γi=λiγi=(i=1,…,r),Ur′Ur=Ir(單位陣)。原始變量數(shù)據(jù)標準化時,∑是相關(guān)陣,μ=0。


因子分析模型參見[1]。


為了解決問題①,有
定理1 設主成分法的初始因子載荷陣A0回歸的初始
事實上,A0、F0是因子分析模型L的解,見文獻[5](2009)。
為了解決問題②,以下用定理1,給出(1)原始數(shù)據(jù)正向化(正向化的目的是為了在方向趨同的情況下,進行樣品的優(yōu)劣性比較)、標準化下,(2)原始數(shù)據(jù)正向化、中心化下,快速計算主成分系數(shù)、主成分值的SPSS操作步驟。
第一步,原始數(shù)據(jù)正向化:將原始變量X1-Xp的數(shù)據(jù)輸入或復制粘貼到數(shù)據(jù)窗口中,根據(jù)正向化公式,用Transform? compute,在對話框中輸入公式進行計算,記正向化后的變量數(shù)據(jù)為x1-xp。
第二步,SPSS軟件初始因子結(jié)果的計算過程:
(1)按Analyze→Date Reduction→Factor順序單擊菜單項,打開因子分析主對話框。
(2)選擇正向化后的變量數(shù)據(jù)x1-xp為分析變量送到右面的Variables欄中。
(3)在主對話框中單擊Extraction按鈕,相應的對話框中:
①Method菜單中選擇Principal Component項(默認項),使用主成分法;
②Analyze欄中選擇Correlation matrix(默認項),變量數(shù)據(jù)x1-xp自動執(zhí)行標準化;
③Extract欄中選擇Number of factor m(≤r),要求計算m個因子的結(jié)果;
④Display欄中選擇Unrotated factor solution,要求顯示初始因子載荷陣結(jié)果,單擊Continue。
(4)在主對話框中單擊Rotation按鈕,在Method欄中選擇None,要求初始因子不作旋轉(zhuǎn),單擊Continue。
(5)在主對話框中單擊Scores按鈕,在相應的對話框中選擇Save as Variables,并在Method欄中選擇Regression,要求通過回歸方法計算因子得分值并把因子得分值作為新變量數(shù)據(jù)保存到數(shù)據(jù)文件中,單擊Continue。
(6)在主對話框中單擊OK提交系統(tǒng)執(zhí)行。
結(jié)果有:特征值λ1、…、λr在Total Variance Explained的 Initial Eigenvalues中,初始因子載荷陣A0=(,…,)是Component Matrix,A0回歸的初始因子得分,…,)的n個樣品值設為(,…,),(,…,)顯示在數(shù)據(jù)窗口fac1-1、…、facm-1欄中。
第三步,主成分系數(shù)的快速算法:由引理1得:γj=j≤r,將A0(Component Matrix)復制粘貼到Word文檔,再將Word文檔中的A0復制粘貼到數(shù)據(jù)窗口中 (這比逐個輸入快得多),用Transform→compute,在對話框中輸入r1=/SQRT (λ)→OK得主成分系數(shù)列r1;…;在對話框中輸入rm=1SQRT(λm)→OK得主成分系數(shù)列rm(即初始因子載荷陣A0是兩次復制粘貼、主成分系數(shù)列ri是1次除法計算)。
主成分系數(shù)列r1,…,rm的計算結(jié)果:顯示在數(shù)據(jù)窗口的r1、…、rm欄中。
第四步,主成分值的快速算法:設主成分Yj的n個樣品值是Zj,初始因子得分的n個樣品值是(facj-1),由定理1得:Yj=,有Zj=,j≤r:用Transform→compute,在對話框中輸入Z1=SQRT(λm)*fac1-1→OK得Z1;…;在對話框中輸入Zm=SQRT(λm)*facm-1→OK得Zm(即主成分Yj的n個樣品值Zj是1次乘法計算)。
m個主成分n個樣品值Z1、…、Zm的計算結(jié)果:顯示在數(shù)據(jù)窗口的Z1、…、Zm欄中。
第一步,同2.1第一步。
第二步,僅在2.1第二步(3)②中,Analyze欄中選擇Covariance matrix,變量數(shù)據(jù)自動執(zhí)行中心化;其余不變。
第三步,同2.1第三步。
第四步,同2.1第四步。
同已有算法比:這里的算法提高了初始因子載荷陣輸入到數(shù)據(jù)窗口的速度;不需要進行原始數(shù)據(jù)標準化或中心化和主成分系數(shù)的輸入,便可快速算出主成分值。
例:2001年廣東卷煙工業(yè)企業(yè)廣州卷煙一廠、廣州卷煙二廠、韶關(guān)卷煙廠、南雄卷煙廠、梅州卷煙廠、南海卷煙廠、湛江卷煙廠和廉江卷煙廠(n=8)的經(jīng)濟效益變量為:X1-總資產(chǎn)貢獻率、X2-資本保值增值率、X3-資產(chǎn)負債率、X4-流動資產(chǎn)周轉(zhuǎn)率、X5-成本費用利潤率、X6-全員勞動生產(chǎn)率、X7-產(chǎn)品銷售率(p=7),原始數(shù)據(jù)見表1。

表1 原始數(shù)據(jù)
(一)用SPSS軟件計算原始數(shù)據(jù)正向化、標準化的主成分結(jié)果。
(二)用SPSS軟件計算原始數(shù)據(jù)正向化、中心化的主成分結(jié)果。

表2 正向化原始數(shù)據(jù)
解:(一)⑴將表1原始變量X1-X7的數(shù)據(jù)輸入或拷貝到SPSS數(shù)據(jù)窗口中,X3-資產(chǎn)負債率為負向指標,X7-產(chǎn)品銷售率為適度指標,其余是正向的。X3正向化公式:-X3。適度指標X7正向化公式:(|X7-1|+1)-1。SPSS軟件中用 Transform→compute進行計算。在對話框中輸入公式x3=-X3→OK,x3顯示在數(shù)據(jù)窗口x3欄中;在對話框中輸入公式x7=1/(ABS) (X7-1)+1)→OK,x7顯示在數(shù)據(jù)窗口x7欄中。正向化后的指標依次記為x1-x7,正向化數(shù)據(jù)見表2。

表3 總方差解釋(Initial Eigenvalues)

表4 初始因子載荷陣(Component Matrix)
⑵對表2數(shù)據(jù),在數(shù)據(jù)標準化下,用 SPSS11.0計算初始因子的計算過程得相關(guān)陣特征值見表3,初始因子載荷見表4,初始因子得分值見表5。
⑶由表3相關(guān)陣特征值、表4初始因子載荷陣、應用2.1第三步主成分的快速算法,得下列主成分的系數(shù)(xi是Xi的正向化、標準化變量):

⑷由表3相關(guān)陣特征值、表5初始因子得分值、應用2.1第四步主成分值的快速算法,兩次乘法計算得各企業(yè)主成分值表6(不是通過主成分公式、標準化數(shù)據(jù)計算的,但快速)。

表5 初始因子得分值

表6 主成分值
⑵對表2數(shù)據(jù),在數(shù)據(jù)中心化下,用SPSS11.0計算初始因子的計算過程得:協(xié)差陣特征值見表7,初始因子載荷陣見表8,初始因子得分值見表9。
⑶由表7的協(xié)差陣特征值、表8初始因子載荷陣、應用2.2第三步主成分的快速算法,得下列主成分的系數(shù)(近似結(jié)果,xi是Xi的正向化、中心化變量):

⑷由表7的協(xié)差陣特征值、表9初始因子得分值、應用2.2第四步主成分值的快速算法,兩次乘法計算得各企業(yè)主成分值表10(不是通過主成分公式、中心化數(shù)據(jù)計算的,但快速)。
經(jīng)過驗算,以上主成分系數(shù)、主成分值的結(jié)果與SAS軟件計算的結(jié)果一致。
(1)在明確主成分分析與因子分析的一般性關(guān)系方面,這里應用因子分析中主成分法的初始因子載荷陣回歸的初始因子得分,理論上建立了主成分與初始因子得分的一般關(guān)系式。
(2)在SPSS快速計算主成分結(jié)果方面,這里應用SPSS原始數(shù)據(jù)標準化或中心化可自動執(zhí)行和Transform →compute的 功能,應用主成分分析與因子分析的一般性關(guān)系式,通過初始因子載荷陣、初始因子得分值的結(jié)果,快速地算出了主成分的結(jié)果。

表7 總方差解釋(Initial Eigenvalues)

表8 初始因子載荷陣(Component Matrix)

表9 初始因子得分值

表10 主成分值
(1)任何方法能得到較滿意的結(jié)果都有其應用的條件,主成分分析法要能得到較滿意的結(jié)果也有其應用的條件。但該條件迄今沒有明確,這使得大多數(shù)教材和論文,只能列舉主成分計算的例和給出不太深入的分析,這給應用和教學帶來了困難,故我們認為:有必要明確,主成分分析法能得到較滿意結(jié)果的條件。
(2)主成分分析的目的之一是,確定少數(shù)幾個主成分盡可能多地反映原來變量的信息,這即是主成分個數(shù)的確定。主成分個數(shù)確定已有多個方法的結(jié)果,那個更好迄今沒有理論支持,這給應用和教學帶來了困難,故我們認為:有必要找到更好的方法確定主成分個數(shù)。
[1]張堯庭,方開泰著.多元統(tǒng)計分析引論[M].北京:科學出版社,1982.
[2]王芳.主成分分析與因子分析的異同比較及應用[J].統(tǒng)計教育,2003,(5).
[3]何曉群編著.多元統(tǒng)計分析[M].北京:中國人民大學出版社,2004.
[4]G.S.馬達拉、C.R.拉奧編著.金融中的統(tǒng)計方法[M].王美今等譯.上海:上海人民出版社,2004.
[5]林海明.因子分析模型的改進與應用[J].數(shù)理統(tǒng)計與管理,2009,(6).