因子分析的計算過程能否手算得出?

我們做一個關於SPSS中因子分析的PPT,但是老師要求用手算整個過程,不能用SPSS直接導出結果。請問因子分析的計算過程能否手算得出?如果能,手算的整個過程是怎樣的?謝謝!

——————————————————————————————

為了讓大家把關注點放在「手算過程是怎樣的」上,題主還是集中說明一下不相關的問題。

該老師不是統計學老師,我也不是數理相關專業的學生,我們沒學過任何有關因子分析的課,題主不懶,已經查閱過很多SPSS的書籍和網上資料想要去找出結果,但是都沒有相應實例,且當初題主的那組數據不規則、很繁瑣(和試題類的數據不同),所以才會來提問。把這個問題說的很簡單的各位,請舉出具體的數據計算過程來(是的,你就拿幾對數據,算一遍給題主這種「白痴」看看就是咯),不要講些「題主偷懶」or「***很簡單」or用一兩句話說明因子分析能手算就沒有然後了的無關話。謝謝!

哦,忘了說了,最後題主做出了PPT,才發現該老師自己都弄不明白。。。他的讀博論文有相關內容,他自己也是剛接觸SPSS等知識。。。


謝邀,對於此問題也不甚了解,只能粗略回答一下。

1.因子分析的基本步驟

(1)確認待分析的原始變數是否適合作因子分析;

(2)構造因子變數;

(3)利用旋轉方法使因子變數具有可解釋性;

(4)計算每個樣本的因子變數得分。

2.因子分析的數學模型

3.因素分析的主要方式

圍繞濃縮原有變數提取因子的核心目標,因子分析主要涉及以下五大基本步驟:

1、因子分析的前提條件

由於因子分析的主要任務之一是對原有變數進行濃縮,即將原有變數中的信息重疊部分提取和綜合成因子,進而最終實現減少變數個數的目的。因此它要求原有變數之間應存在較強的相關關係。否則,如果原有變數相互獨立,相關程度很低,不存在信息重疊,它們不可能有共同因子,那麼也就無法將其綜合和濃縮,也就無需進行因子分析。本步驟正是希望通過各種方法分析原有變數是否存在相關關係,是否適合進行因子分析。

SPSS提供了四個統計量可幫助判斷觀測數據是否適合作因子分析:

(1)計算相關係數矩陣Correlation Matrix

在進行提取因子等分析步驟之前,應對相關矩陣進行檢驗,如果相關矩陣中的大部分相關係數小於0.3,則不適合作因子分析;當原始變數個數較多時,所輸出的相關係數矩陣特別大,觀察起來不是很方便,所以一般不會採用此方法或即使採用了此方法,也不方便在結果彙報中給出原始分析報表。

(2)計算反映象相關矩陣Anti-image correlation matrix

反映象矩陣重要包括負的協方差和負的偏相關係數。偏相關係數是在控制了其他變數對兩變數影響的條件下計算出來的凈相關係數。如果原有變數之間確實存在較強的相互重疊以及傳遞影響,也就是說,如果原有變數中確實能夠提取出公共因子,那麼在控制了這些影響後的偏相關係數必然很小。

反映象相關矩陣的對角線上的元素為某變數的MSA(Measure of
Sample Adequacy)統計量,其數學定義為:

觀察反映象相關矩陣,如果反映象相關矩陣中除主對角元素外,其他大多數元素的絕對值均小,對角線上元素的值越接近1,則說明這些變數的相關性較強,適合進行因子分析。與(1)中最後所述理由相同,一般少採用此方法。

(3)巴特利特球度檢驗Bartlett test of sphericity

Bartlett球體檢驗的目的是檢驗相關矩陣是否是單位矩陣(identity matrix),如果是單位矩陣,則認為因子模型不合適。Bartlett球體檢驗的虛無假設為相關矩陣是單位陣,如果不能拒絕該假設的話,就表明數據不適合用於因子分析。一般說來,顯著水平值越小(&<0.05)表明原始變數之間越可能存在有意義的關係,如果顯著性水平很大(如0.10以上)可能表明數據不適宜於因子分析。

(4)KMO(Kaiser-Meyer-Oklin
Measure of Smapling Adequacy)

KMO是Kaiser-Meyer-Olkin的取樣適當性量數。KMO測度的值越高(接近1.0時),表明變數間的共同因子越多,研究數據適合用因子分析。通常按以下標準解釋該指標值的大小:KMO值達到0.9以上為非常好,0.8~0.9為好,0.7~0.8為一般,0.6~0.7為差,0.5~0.6為很差。如果KMO測度的值低於0.5時,表明樣本偏小,需要擴大樣本。

綜上所述,經常採用的方法為巴特利特球度檢驗Bartlett test of sphericity和KMO(Kaiser-Meyer-Oklin Measure of Smapling
Adequacy)。

2、抽取共同因子,確定因子的數目和求因子解的方法

將原有變數綜合成少數幾個因子是因子分析的核心內容。本步驟正是研究如何在樣本數據的基礎上提取和綜合因子。決定因素抽取的方法,有「主成份分析法」(principal components analysis)、主軸法、一般化最小平方法、未加權最小平方法、最大概似法、Alpha因素抽取法與映象因素抽取法等。使用者最常使用的是主成份分析法與主軸法,其中,又以主成份分析法使用最為普遍,在SPSS使用手冊中,也建議研究者多採用主成份分析法來估計因素負荷量。所謂主成份分析法,就是以較少的成份解釋原始變數方差的較大部分。進行主成份分析時,先要將每個變數的數值轉換成標準值。主成份分析就是用多個變數組成一個多維空間,然後在空間內投射直線以解釋最大的方差,所得的直線就是共同因子,該直線最能代表各個變數的性質,而在此直線上的數值所構成的一個變數就是第一個共同因子,或稱第一因子。但是在空間內還有剩餘的方差,所以需要投射第二條直線來解釋方差。這時,還要依據第二條準則,即投射的第二條直線與第一條直線成直交關係,意為代表不同的方面。第二條直線上的數值所構成的一個變數,稱為第二因子。依據該原理可以求出第三、第四或更多的因子。原則上,因子的數目與原始變數的數目相同,但抽取了主要的因子之後,如果剩餘的方差很小,就可以放棄其餘的因子,以達到簡化數據的目的。

因子數目的確定沒有精確的定量方法,但常用的方法是藉助兩個準則來確定因子的個數。一是特徵值(eigenvalue)準則,二是碎石圖檢驗(scree
test)準則。特徵值準則就是選取特徵值大於或等於1的主成份作為初始因子,而放棄特徵值小於1的主成份。因為每個變數的方差為1,該準則認為每個保留下來的因子至少應該能解釋一個變數的方差,否則達不到精簡數據的目的。碎石檢驗準則是根據因子被提取的順序繪出特徵值隨因子個數變化的散點圖,根據圖的形狀來判斷因子的個數。散點曲線的特點是由高到低,先陡後平,最後幾乎成一條直線。曲線開始變平的前一個點被認為是提取的最大因子數。後面的散點類似於山腳下的碎石,可捨棄而不會丟失很多信息。

3、使因子更具有命名可解釋性

通常最初因素抽取後,對因素無法作有效的解釋。這時往往需要進行因子旋轉(rotation),通過坐標變換使因子解的意義更容易解釋。轉軸的目的在於改變題項在各因素負荷量的大小,轉軸時根據題項與因素結構關係的密切程度,調整各因素負荷量的大小,轉軸後,使得變數在每個因素的負荷量不是變大(接近1)就是變得更小(接近0),而非轉軸前在每個因素的負荷量大小均差不多,這就使對共同因子的命名和解釋變數變得更容易。轉軸後,每個共同因素的特徵值會改變,但每個變數的共同性不會改變。常用的轉軸方法,有最大變異法(Varimax)、四次方最大值法(Quartimax)、相等最大值法(Equamax)、直接斜交轉軸法(Direct
Oblimin)、Promax轉軸法,其中前三者屬於「直交轉軸法」(orthogonal rotations),在直交轉軸法中,因素(成份)與因素(成份)間沒有相關,亦即其相關為0,因素軸間夾角為90°;而後二者(直接斜交轉軸、Promax轉軸法)屬「斜交轉軸」(oblique rotations),採用斜交轉軸法,表示因素與因素間彼此有某種程度的相關,亦即因素軸間的夾角不是90°。

直交轉軸法的優點是因素間提供的信息不會重疊,觀察體在某一個因素的分數與在其它因素的分數,彼此獨立不相關;而其缺點是研究者迫使因素間不相關,但在實際情境中,它們彼此有相關的可能性很高。因而直交轉軸方法偏向較多人為操控方式,不需要正確響應現實世界中自然發生的事件(BrymanCramer,1997)。

所謂直交旋轉法(orthogonal rotations),就是要求各個因子在旋轉時都要保持直角關係,即不相關。在直交旋轉時,每個變數的共同性(commonality)是不變的。不同的直交旋轉方法有不同的作用。在直交旋轉法中,常用於社會科學研究的方式是Varimax旋轉法。該方法是在旋轉時盡量弄清楚在每一個因子上各個變數的因子負荷情況,也即讓因子矩陣中每一列的的值儘可能變成1或0,該旋轉法的作用是突出每個因子的性質,可以更清楚哪些變數是屬於它的。由此可見,Varimax旋轉法可以幫助找出多個因子,以澄清概念的內容。Quartimax旋轉法可以則可以盡量弄清楚每個變數在各個因子上的負荷情況,即讓每個變數在某個因子上的負荷儘可能等於1,而在其它因子上則儘可能等於0。該方法可以增強第一因子的解釋力,而使其它因子的效力減弱。可見Quartimax旋轉法適合於找出一個最強效力的因子。Equamax旋轉法則是一種折中的做法,即儘可能簡化因子,也可弄清楚負荷情況。其缺點是可能兩方面都未照顧好。

斜交旋轉(oblique rotarion)方法是要求在旋轉時各個因子之間呈斜交的關係,表示允許該因子與因子之間有某種程度上的相關。斜交旋轉中,因子之間的夾可以是任意的,所以用斜交因子描述變數可以使因子結構更為簡潔。選擇直接斜交旋轉時,必須指定Delta值。該值的取值範圍在0~-1之間,0值產生最高相關因子,大的負數產生旋轉的結果與直交接近。Promax斜交旋轉方法也允許因子彼此相關,它比直接斜交旋轉更快,因此適用於大數據集的因子分析。

綜上所述,不同的因子旋轉方式各有其特點。因此,究竟選擇何種方式進行因子旋轉取決於研究問題的需要。如果因子分析的目的只是進行數據簡化,而因子的確切含義是什麼並不重要,就應該選擇直交旋轉。如果因子分析的目的是要得到理論上有意義的因子,應該選擇斜交因子。事實上,研究中很少有完全不相關的變數,所以,從理論上看斜交旋轉優於直交旋轉。但是斜交旋轉中因子之間的斜交程度受研究者定義的參數的影響,而且斜交選裝中所允許的因子之間的相關程度是很小的,因為沒有人會接受兩個高度相關的共同因子。如果兩個因子確實高度相關,大多數研究者會選取更少的因子重新進行分析。因此,斜交旋轉的優越性大打折扣。在實際研究中,直交旋轉(尤其是Varimax旋轉法)得到更廣泛的運用。

4、決定因素與命名

轉軸後,要決定因素數目,選取較少因素層面,獲得較大的解釋量。在因素命名與結果解釋上,必要時可將因素計算後之分數存儲,作為其它程序分析之輸入變數。

5、計算各樣本的因子得分

因子分析的最終目標是減少變數個數,以便在進一步的分析中用較少的因子代替原有變數參與數據建模。本步驟正是通過各種方法計算各樣本在各因子上的得分,為進一步的分析奠定基礎。

地質生一枚,Geology isn"t a real science!啊……


這個問題,在知乎上掛了好多天,回答的人也很少(幾乎沒有╮(╯_╰)╭),大概是因為我剛開始用知乎,沒什麼人緣,只是根據系統推薦邀請了幾個人回答,所以可能沒什麼人看到我的問題吧。所以,感謝一樓回答的那位。

後來,我自己又查找各種資料,終於找到了因子分析的手算方法了。

如下,因子分析的數學模型

手算步驟——

1.標準化原始數據X,具體方法可以在網上「輕易」找到

2.計算X的相關係數矩陣R(手算比較繁瑣,但SPSS很容易導出)

3.也是我當時最困惑的一點,如何計算出 因子載荷陣A(沒有求出A,那麼一切都無法繼續啊啊啊,所以A應該怎麼求啊啊啊,如下)

(1)求R的特徵值λ1≥λ2≥λ3≥…λp≥0及對應的單位特徵向量μ1,μ23,…μp

(2)計算因子載荷a(ij),得到因子載荷陣A

4.根據特徵根λ大小確定公因子F個數,選出公因子(選λ&>1的為公因子)

5.計算共同度和方差貢獻率

Xi的變數共同度為因子載荷矩陣A中第i行元素的平方和;因子變數Fj的方差貢獻為因子載荷矩陣A中第j列各元素的平方和。

6.因子旋轉,得出旋轉後的成分矩陣(這個手算太可怕,不知道要用正交陣去乘因子載荷陣多少次,所以一般用SPSS導出吧。。。)

7.計算因子得分

用SPSS導出的結果中,【成分矩陣】就是初始的 因子載荷陣A!!!

具體步驟和分析道理,可見百度文庫一篇文

鏈接:因子分析的基本思想、基本步驟、數學模型及求解

自己的問題自己回答o(╯□╰)o,總之就醬啦~希望給後來人一個小借鑒吧。。。


基於兩位知友已經分析了spss運行結果過程,我就其中我認為比較重要的地方說下個人看法吧,只是簡單了解的朋友看黑體字就好了。

因子分析分為Q型和R型,我們是正對R型進行如下研究:

一。因子分析步驟:

1.確認是是否適合做因子分析

2.構造因子變數

3.旋轉方法解釋

4.計算因子變數得分

二。因子分析的計算過程:

1.將原始數據標準化

目的:消除數量級量綱不同

2.求標準化數據的相關矩陣

3.求相關矩陣的特徵值和特徵向量

4.計算方差貢獻率和累計方差貢獻率

5.確定因子

F1,F2,F3...為前m個因子包含數據總量(累計貢獻率)不低於80%。可取前m各因子來反映原評價

6.因子旋轉

當所得因子不足以明顯確定或不易理解時選擇此方法

7.原指標的線性組合求各因子的得分

兩種方法:回歸估計和barlett估計法

8.綜合得分:以各因子的方差貢獻率為權,各因子的線性組合得到各綜合評價指標函數

F=(λ1F1+…λmFm)/(λ1+…λm)

=W1F1+…WmFm

9.得分排序

--------------------------------------------------------------------------------------------------------------------------------------

想直接看結果的上面就是,沒什麼,下面就是我個人認為重要的,想學好因子分析要知道。

因子分析模型,又名正交因子模型

X=AF+?

其中:

X=[X1,X2,X3...XP]『

A=

F=[F1,F2...Fm]"

?=[?1,?2...?p]"

以上滿足:

(1)m小於等於p

(2)cov(F,?)=0

(3)Var(F)=Im

D(?)=Var(?)=

?1,?2...?p不相關,且方差不同

我們把F成為X公共因子,A為荷載矩陣,?為X特殊因子

A=(aij)

數學上證明:aij就是i個變數與第j個因子的相關係數,參見層次分析法aij定義。

&<1&>荷載矩陣

就荷載矩陣的估計和解釋方法有主因子和極大似然估計,我們就主因子分析而言:(是主因子不是主成份)

設隨機向量X的協方差陣為?

λ1,λ2,λ3..&>0為?的特徵根

μ1,μ2,μ3...為對應的標準正交向量

我們大一學過線代或者高代,裡面有個東西叫譜分析:

?=λ1μ1μ1』+......+λpμpμp』

=

當因子個數和變數個數一樣多,特殊因子方差為0.

此時,模型為X=AF,其中Var(F)=Ip

於是,Var(X)=Var(AF)=AVar(F)A"=AA"

對照?分解式,A第j列應該是

也就是說,除了uj前面部分,第j列因子簽好為第j個主成份的係數,所以為主成份法。

如果非要作死考慮?

原來的協方差陣可以分解為:

?=AA"+D=

以上分析的目的;

1.因子分析模型是描述原變數X的協方差陣?的一種模型

2.主成份分析中每個主成份相應係數是唯一確定的,然而因子分析中的每個因子的相應係數不是唯一的,因而我們的因子荷載矩陣不是唯一的

(主成分分析是因子分析的特例,非常類似,有興趣的可以去看看,這兩者非常容易混淆)

&<2&>共同度和方差貢獻

無論是在spss或者R的因子分析中都圍繞著貢獻度,我們來看下,它到底是什麼意思。

由因子分析模型,當僅有一個公因子F時,

Var(Xi)=Var(aiF)+Var(?i)

由於數據標準化,左端為1,右端分別為共性方差和個性方差

共性方差越大,說明共性因子作用越大。

因子載荷矩陣A中的第i行元素之平方和記為hi2

成為變數(Xi)共同度

它是公共因子對(Xi)的方差鎖做出的貢獻,反映了全部公共因子對變數(Xi)的影響。

hi2大表明第i個分量對F的每一個分量F1,F2,...Fm的共同依賴程度大

將因子載荷矩陣A的第j列的各元素的平方和記為gj2

成為公共因子Fj對x的方差貢獻。

gj2表示第j個公共因子Fj對x的每一個分量Xi所提供的方差的總和,他就是衡量公共因子的相對重要行的指標。gj2越大,表明公共因子Fj對x的貢獻越大,或者說對x的影響和作用就越大。

如果將載荷矩陣A的所有gj2都計算出來,按大小排列,就可以提煉最有影響力的公共因子。

&<3&>因子旋轉

這方面涉及較為簡單,我就簡單提一下

目的:建立因子分析模型不是只要找主因子,更加重要的是意義,以便對實際進行分析,因子旋轉就是使所得結論更加清晰的表示。

方法:正交旋轉,斜交旋轉兩大類,常用正交。

便於理解,我解釋下旋轉的意義,以平面直角坐標係為例,我們想得到的數據正好為:y=x和y=-x上的點,我們能解釋的卻在x=0和y=0上,這時候我們就可以旋轉坐標系,卻不影響結果。這只是便於理解,沒有任何科學依據,覺得不對的請無視。

#下面是廢話,寫給題主的,看問題的可以走了。

1.不是你沒人緣,是你提的問題對於很多人不划算,寫的多,而且沒有人愛看,沒有頂,所以不愛花這個時間,其次就是你提的問題需要大量數學符號,很難打,而且容易出錯,更加讓人不願去回答,希望你以後會在知乎有自己的樂趣。

2.我不知道你的老師為什麼讓你們去手算過程,現實生活中這種複雜計算光是相關性就夠你算一天的,沒有意義的事情

3.我大一的高代老師說過計算過程就是個p,明白一種分析的意義往往比知曉其計算過程更加重要,可能我回答的絕大多數都不符合你的問題,但是我還是希望我給別人帶來的不僅僅是計算方法,還有它能帶給你的意義。


不然你覺得高校里多元統計分析該怎麼考試


當然可以的,所有統計結果都是從數學公式得到的


我懷疑你和我一樣,為考試而來 我已經算死在考前了… 很想知道三年後的你解決了沒有~&>_&<~


同學你沒好好聽講啊,上統計學必然是先講原理再將軟體操作的。翻翻書吧,大概道理就是能最大程度解釋方差唄


關聯矩陣求特徵向量和特徵值這步手算會死的吧 計算機做的時候有很多迭代演算法 基於qr decomposition什麼的 但是 手算還是會死的

話說樓主你也蠻拼的


主成分參數估計可以手算,極大似然參數估計就算了吧


估計載荷矩陣有很多方法,有些方法需要迭代。因子載荷分布極化也需要大量迭代。


推薦閱讀:

TAG:SPSS數據分析 | 因子分析 |