林海明
(廣東商學(xué)院 a.國(guó)民經(jīng)濟(jì)研究中心,b.經(jīng)濟(jì)貿(mào)易與統(tǒng)計(jì)學(xué)院 廣州 510320)
主成分分析是多元數(shù)據(jù)降維的重要方法之一,應(yīng)用廣泛。主成分的結(jié)果計(jì)算量大,應(yīng)用計(jì)算機(jī)軟件計(jì)算是必須的。在統(tǒng)計(jì)軟件SPSS、SAS中,SAS計(jì)算主成分的結(jié)果是正確的;SPSS迄今沒有主成分分析的模塊,不能直接得到主成分系數(shù)和主成分值。如何用SPSS快速計(jì)算主成分的結(jié)果,是SPSS使用者和教學(xué)面臨的理論和計(jì)算困難。
文獻(xiàn)[2]根據(jù)第j個(gè)主成分Yj=γj′X(X是標(biāo)準(zhǔn)化后原始變量),用SPSS正確計(jì)算了主成分值,但計(jì)算中除了X的計(jì)算外,還有對(duì)話框中γj的輸入慢?!奥憋@然不能反映出計(jì)算機(jī)速度快的優(yōu)點(diǎn)。
美國(guó)統(tǒng)計(jì)學(xué)家C.R.Rao(2004)認(rèn)為[4]:“進(jìn)行主成分分析和因子分析關(guān)系的理論研究,以及在個(gè)別的數(shù)據(jù)集中考察主成分與因子之間的實(shí)際差異,都是令人非常感興趣的”。
為了在原始數(shù)據(jù)標(biāo)準(zhǔn)化或中心化的一般條件下,能用SPSS快速計(jì)算主成分的結(jié)果,我們認(rèn)為理論和計(jì)算上,需要解決如下2個(gè)問題:
問題①:何為因子得分與主成分的一般等式關(guān)系式?
問題②:如何用SPSS快速計(jì)算一般性的主成分系數(shù)、主成分值?
據(jù)我們國(guó)內(nèi)外文獻(xiàn)的查詢,上述問題沒有解決。這里應(yīng)用因子分析中主成分法的初始因子載荷陣及其回歸的初始因子得分,解決了問題①,據(jù)此,用SPSS軟件的因子分析模塊和Transform Compute功能,解決了問題②。
設(shè)X=(X1,…,Xp)'為可觀測(cè)的隨機(jī)向量(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ù)標(biāo)準(zhǔn)化時(shí),∑是相關(guān)陣,μ=0。
因子分析模型參見[1]。
為了解決問題①,有
定理1 設(shè)主成分法的初始因子載荷陣A0回歸的初始
事實(shí)上,A0、F0是因子分析模型L的解,見文獻(xiàn)[5](2009)。
為了解決問題②,以下用定理1,給出(1)原始數(shù)據(jù)正向化(正向化的目的是為了在方向趨同的情況下,進(jìn)行樣品的優(yōu)劣性比較)、標(biāo)準(zhǔn)化下,(2)原始數(shù)據(jù)正向化、中心化下,快速計(jì)算主成分系數(shù)、主成分值的SPSS操作步驟。
第一步,原始數(shù)據(jù)正向化:將原始變量X1-Xp的數(shù)據(jù)輸入或復(fù)制粘貼到數(shù)據(jù)窗口中,根據(jù)正向化公式,用Transform? compute,在對(duì)話框中輸入公式進(jìn)行計(jì)算,記正向化后的變量數(shù)據(jù)為x1-xp。
第二步,SPSS軟件初始因子結(jié)果的計(jì)算過程:
(1)按Analyze→Date Reduction→Factor順序單擊菜單項(xiàng),打開因子分析主對(duì)話框。
(2)選擇正向化后的變量數(shù)據(jù)x1-xp為分析變量送到右面的Variables欄中。
(3)在主對(duì)話框中單擊Extraction按鈕,相應(yīng)的對(duì)話框中:
①M(fèi)ethod菜單中選擇Principal Component項(xiàng)(默認(rèn)項(xiàng)),使用主成分法;
②Analyze欄中選擇Correlation matrix(默認(rèn)項(xiàng)),變量數(shù)據(jù)x1-xp自動(dòng)執(zhí)行標(biāo)準(zhǔn)化;
③Extract欄中選擇Number of factor m(≤r),要求計(jì)算m個(gè)因子的結(jié)果;
④Display欄中選擇Unrotated factor solution,要求顯示初始因子載荷陣結(jié)果,單擊Continue。
(4)在主對(duì)話框中單擊Rotation按鈕,在Method欄中選擇None,要求初始因子不作旋轉(zhuǎn),單擊Continue。
(5)在主對(duì)話框中單擊Scores按鈕,在相應(yīng)的對(duì)話框中選擇Save as Variables,并在Method欄中選擇Regression,要求通過回歸方法計(jì)算因子得分值并把因子得分值作為新變量數(shù)據(jù)保存到數(shù)據(jù)文件中,單擊Continue。
(6)在主對(duì)話框中單擊OK提交系統(tǒng)執(zhí)行。
結(jié)果有:特征值λ1、…、λr在Total Variance Explained的 Initial Eigenvalues中,初始因子載荷陣A0=(,…,)是Component Matrix,A0回歸的初始因子得分,…,)的n個(gè)樣品值設(shè)為(,…,),(,…,)顯示在數(shù)據(jù)窗口fac1-1、…、facm-1欄中。
第三步,主成分系數(shù)的快速算法:由引理1得:γj=j≤r,將A0(Component Matrix)復(fù)制粘貼到Word文檔,再將Word文檔中的A0復(fù)制粘貼到數(shù)據(jù)窗口中 (這比逐個(gè)輸入快得多),用Transform→compute,在對(duì)話框中輸入r1=/SQRT (λ)→OK得主成分系數(shù)列r1;…;在對(duì)話框中輸入rm=1SQRT(λm)→OK得主成分系數(shù)列rm(即初始因子載荷陣A0是兩次復(fù)制粘貼、主成分系數(shù)列ri是1次除法計(jì)算)。
主成分系數(shù)列r1,…,rm的計(jì)算結(jié)果:顯示在數(shù)據(jù)窗口的r1、…、rm欄中。
第四步,主成分值的快速算法:設(shè)主成分Yj的n個(gè)樣品值是Zj,初始因子得分的n個(gè)樣品值是(facj-1),由定理1得:Yj=,有Zj=,j≤r:用Transform→compute,在對(duì)話框中輸入Z1=SQRT(λm)*fac1-1→OK得Z1;…;在對(duì)話框中輸入Zm=SQRT(λm)*facm-1→OK得Zm(即主成分Yj的n個(gè)樣品值Zj是1次乘法計(jì)算)。
m個(gè)主成分n個(gè)樣品值Z1、…、Zm的計(jì)算結(jié)果:顯示在數(shù)據(jù)窗口的Z1、…、Zm欄中。
第一步,同2.1第一步。
第二步,僅在2.1第二步(3)②中,Analyze欄中選擇Covariance matrix,變量數(shù)據(jù)自動(dòng)執(zhí)行中心化;其余不變。
第三步,同2.1第三步。
第四步,同2.1第四步。
同已有算法比:這里的算法提高了初始因子載荷陣輸入到數(shù)據(jù)窗口的速度;不需要進(jìn)行原始數(shù)據(jù)標(biāo)準(zhǔn)化或中心化和主成分系數(shù)的輸入,便可快速算出主成分值。
例:2001年廣東卷煙工業(yè)企業(yè)廣州卷煙一廠、廣州卷煙二廠、韶關(guān)卷煙廠、南雄卷煙廠、梅州卷煙廠、南海卷煙廠、湛江卷煙廠和廉江卷煙廠(n=8)的經(jīng)濟(jì)效益變量為:X1-總資產(chǎn)貢獻(xiàn)率、X2-資本保值增值率、X3-資產(chǎn)負(fù)債率、X4-流動(dòng)資產(chǎn)周轉(zhuǎn)率、X5-成本費(fèi)用利潤(rùn)率、X6-全員勞動(dòng)生產(chǎn)率、X7-產(chǎn)品銷售率(p=7),原始數(shù)據(jù)見表1。
表1 原始數(shù)據(jù)
(一)用SPSS軟件計(jì)算原始數(shù)據(jù)正向化、標(biāo)準(zhǔn)化的主成分結(jié)果。
(二)用SPSS軟件計(jì)算原始數(shù)據(jù)正向化、中心化的主成分結(jié)果。
表2 正向化原始數(shù)據(jù)
解:(一)⑴將表1原始變量X1-X7的數(shù)據(jù)輸入或拷貝到SPSS數(shù)據(jù)窗口中,X3-資產(chǎn)負(fù)債率為負(fù)向指標(biāo),X7-產(chǎn)品銷售率為適度指標(biāo),其余是正向的。X3正向化公式:-X3。適度指標(biāo)X7正向化公式:(|X7-1|+1)-1。SPSS軟件中用 Transform→compute進(jìn)行計(jì)算。在對(duì)話框中輸入公式x3=-X3→OK,x3顯示在數(shù)據(jù)窗口x3欄中;在對(duì)話框中輸入公式x7=1/(ABS) (X7-1)+1)→OK,x7顯示在數(shù)據(jù)窗口x7欄中。正向化后的指標(biāo)依次記為x1-x7,正向化數(shù)據(jù)見表2。
表3 總方差解釋(Initial Eigenvalues)
表4 初始因子載荷陣(Component Matrix)
⑵對(duì)表2數(shù)據(jù),在數(shù)據(jù)標(biāo)準(zhǔn)化下,用 SPSS11.0計(jì)算初始因子的計(jì)算過程得相關(guān)陣特征值見表3,初始因子載荷見表4,初始因子得分值見表5。
⑶由表3相關(guān)陣特征值、表4初始因子載荷陣、應(yīng)用2.1第三步主成分的快速算法,得下列主成分的系數(shù)(xi是Xi的正向化、標(biāo)準(zhǔn)化變量):
⑷由表3相關(guān)陣特征值、表5初始因子得分值、應(yīng)用2.1第四步主成分值的快速算法,兩次乘法計(jì)算得各企業(yè)主成分值表6(不是通過主成分公式、標(biāo)準(zhǔn)化數(shù)據(jù)計(jì)算的,但快速)。
表5 初始因子得分值
表6 主成分值
⑵對(duì)表2數(shù)據(jù),在數(shù)據(jù)中心化下,用SPSS11.0計(jì)算初始因子的計(jì)算過程得:協(xié)差陣特征值見表7,初始因子載荷陣見表8,初始因子得分值見表9。
⑶由表7的協(xié)差陣特征值、表8初始因子載荷陣、應(yīng)用2.2第三步主成分的快速算法,得下列主成分的系數(shù)(近似結(jié)果,xi是Xi的正向化、中心化變量):
⑷由表7的協(xié)差陣特征值、表9初始因子得分值、應(yīng)用2.2第四步主成分值的快速算法,兩次乘法計(jì)算得各企業(yè)主成分值表10(不是通過主成分公式、中心化數(shù)據(jù)計(jì)算的,但快速)。
經(jīng)過驗(yàn)算,以上主成分系數(shù)、主成分值的結(jié)果與SAS軟件計(jì)算的結(jié)果一致。
(1)在明確主成分分析與因子分析的一般性關(guān)系方面,這里應(yīng)用因子分析中主成分法的初始因子載荷陣回歸的初始因子得分,理論上建立了主成分與初始因子得分的一般關(guān)系式。
(2)在SPSS快速計(jì)算主成分結(jié)果方面,這里應(yīng)用SPSS原始數(shù)據(jù)標(biāo)準(zhǔn)化或中心化可自動(dòng)執(zhí)行和Transform →compute的 功能,應(yīng)用主成分分析與因子分析的一般性關(guān)系式,通過初始因子載荷陣、初始因子得分值的結(jié)果,快速地算出了主成分的結(jié)果。
表7 總方差解釋(Initial Eigenvalues)
表8 初始因子載荷陣(Component Matrix)
表9 初始因子得分值
表10 主成分值
(1)任何方法能得到較滿意的結(jié)果都有其應(yīng)用的條件,主成分分析法要能得到較滿意的結(jié)果也有其應(yīng)用的條件。但該條件迄今沒有明確,這使得大多數(shù)教材和論文,只能列舉主成分計(jì)算的例和給出不太深入的分析,這給應(yīng)用和教學(xué)帶來了困難,故我們認(rèn)為:有必要明確,主成分分析法能得到較滿意結(jié)果的條件。
(2)主成分分析的目的之一是,確定少數(shù)幾個(gè)主成分盡可能多地反映原來變量的信息,這即是主成分個(gè)數(shù)的確定。主成分個(gè)數(shù)確定已有多個(gè)方法的結(jié)果,那個(gè)更好迄今沒有理論支持,這給應(yīng)用和教學(xué)帶來了困難,故我們認(rèn)為:有必要找到更好的方法確定主成分個(gè)數(shù)。
[1]張堯庭,方開泰著.多元統(tǒng)計(jì)分析引論[M].北京:科學(xué)出版社,1982.
[2]王芳.主成分分析與因子分析的異同比較及應(yīng)用[J].統(tǒng)計(jì)教育,2003,(5).
[3]何曉群編著.多元統(tǒng)計(jì)分析[M].北京:中國(guó)人民大學(xué)出版社,2004.
[4]G.S.馬達(dá)拉、C.R.拉奧編著.金融中的統(tǒng)計(jì)方法[M].王美今等譯.上海:上海人民出版社,2004.
[5]林海明.因子分析模型的改進(jìn)與應(yīng)用[J].數(shù)理統(tǒng)計(jì)與管理,2009,(6).