Chapter 13 Factor Analysis
本篇是第十三章,內(nèi)容是因子分析茴扁。
這篇博客的完整內(nèi)容包含各類數(shù)學(xué)表達凫岖。可以見我CSDN和hexo搭的個人博客返咱。
CSDN博客
1 因子分析概念
因子分析是一種數(shù)據(jù)簡化的技術(shù)钥庇。它通過研究眾多變量之間的內(nèi)部依賴關(guān)系,探求觀測數(shù)據(jù)中的基本結(jié)構(gòu)咖摹,并用少數(shù)幾個假想變量來表示其基本的數(shù)據(jù)結(jié)構(gòu)评姨。這幾個假想變量能夠反映原來眾多變量的主要信息。原始的變量是可觀測的顯在變量萤晴,而假想變量是不可觀測的潛在變量吐句,稱為因子。
即一種用來在眾多變量中辨別店读、分析和歸結(jié)出變量間的相互關(guān)系并用簡單的變量(因子)來描述這種關(guān)系的數(shù)據(jù)分析方法蕴侧。
尋求基本結(jié)構(gòu)
- 通過因子分析,找出幾個較少的有實際意義的因子两入,反映出原來數(shù)據(jù)的基本結(jié)構(gòu)。
- 通常找出的這組觀察不到的因子概括了原始的變量的大多數(shù)信息敲才。
數(shù)據(jù)簡化
- 強相關(guān)問題會對分析帶來困難裹纳。
- 通過因子分析择葡,可以用所找出的少數(shù)幾個因子代替原來的變量做回歸分析、聚類分析剃氧、判別分析等敏储。
因子分析的用途
- 產(chǎn)生新的、更少的變量以便為后續(xù)的回歸和其他分析做基礎(chǔ)朋鞍。
- 識別概念或產(chǎn)品的基本感知和特性已添。
- 改善市場研究領(lǐng)域多元測量的結(jié)構(gòu)與方法。
2 因子分析模型
數(shù)學(xué)模型
因子分析模型的性質(zhì)
1滥酥、原始變量X的協(xié)方差矩陣的分解
A是因子模型的系數(shù)
D的主對角線上的元素值越小更舞,則公共因子共享的成分越多。
2坎吻、模型不受計量單位的影響缆蝉。
3、因子載荷不是惟一的:設(shè)T為一個p×p的正交矩陣瘦真,令A(yù)=AT刊头, F=T'F也是一個滿足因子模型條件的因子載荷。
因子載荷矩陣中的統(tǒng)計特征
- 因子載荷是第i個變量與第j個公共因子的相關(guān)系數(shù)诸尽。
- 變量的共同度是因子載荷矩陣的第i行的元素的平方和原杂。
所有的公共因子和特殊因子對變量的貢獻為1。- 因子載荷矩陣中各列元素的平方和對所有的的方差貢獻和您机。衡量的相對重要性穿肄。
3 因子載荷矩陣的估計方法
- 主成分分析法
上式給出的Σ表達式是精確的,然而往产,它實際上是毫無價值的被碗,因為我們的目的是尋求用少數(shù)幾個公共因子解釋,故略去后面的p-m項的貢獻仿村。
上式有一個假定:模型中的特殊因子是不重要的锐朴,因而從Σ的分解中忽略了特殊因子的方差。
確定因子個數(shù)(特征根大于1所對應(yīng)的特征向量蔼囊;碎石原則:把特征根從大到小排列焚志,把特征根減小速度變緩的特征根都刪掉)。- 主因子法
主因子方法是對主成分方法的修正畏鼓,假定我們首先對變量進行標(biāo)準(zhǔn)化變換酱酬。則
在實際的應(yīng)用中,個性方差矩陣一般都是未知的云矫,可以通過一組樣本來估計膳沽。估計的方法有如下多種:- 極大似然估計法
如果假定公共因子F和特殊因子服從正態(tài)分布,那么可以得到因子載荷和特殊因子方差的極大似然估計。用數(shù)值極大化的方法可以得到極大似然估計挑社。
4 因子旋轉(zhuǎn)(正交變換)
旋轉(zhuǎn)因子的目的
因子分析的目的不僅僅是要找出公共因子以及對變量進行分組陨界,更重要的是要知道每個公共因子的意義,以便進行進一步的分析痛阻。如果每個公共因子的含義不清菌瘪,則不便于進行實際背景的解釋。
初始因子的綜合性太強阱当,難以找出因子的實際意義俏扩。由于因子載荷陣是不唯一的,所以可以對因子載荷陣進行旋轉(zhuǎn)弊添,使因子載荷陣的結(jié)構(gòu)簡化录淡,使其每列或行的元素平方值向0和1兩極分化。
旋轉(zhuǎn)方法
- 變換后各變量的共同度不會發(fā)生變化表箭。
- 變換后各因子的貢獻會發(fā)生變化赁咙。
三種主要的正交旋轉(zhuǎn)法
- 方差最大法
方差最大法從簡化因子載荷矩陣的每一列出發(fā),使和每個因子有關(guān)的載荷的平方的方差最大免钻。當(dāng)只有少數(shù)幾個變量在某個因子上有較高的載荷時彼水,對因子的解釋最簡單。 方差最大的直觀意義是希望通過因子旋轉(zhuǎn)后极舔,使每個因子上的載荷盡量拉開距離凤覆,一部分的載荷趨于±1,另一部分趨于0拆魏。- 四次方最大法
四次方最大旋轉(zhuǎn)是從簡化載荷矩陣的行出發(fā)盯桦,通過旋轉(zhuǎn)初始因子,使每個變量只在一個因子上有較高的載荷渤刃,而在其它的因子上盡可能低的載荷拥峦。 如果每個變量只在一個因子上有非零的載荷,這時的因子解釋是最簡單的卖子。四次方最大法通過使因子載荷矩陣中每一行的因子載荷平方的方差達到最大略号。- 等量最大法
等量最大法把四次方最大法和方差最大法結(jié)合起來求Q和V的加權(quán)平均最大。
5 因子得分
當(dāng)解決了用一組公共因子的線性組合來表示一組觀測變量后洋闽,有時我們需要使用這些因子做其他的研究玄柠。比如把得到的因子作為自變量來做回歸分析,對樣本進行分類或評價诫舅,這就需要我們對公共因子進行測度羽利,即給出公共因子的值。
因子得分
因子分析的數(shù)學(xué)模型:
原變量被表示為公共因子的線性組合刊懈,當(dāng)載荷矩陣旋轉(zhuǎn)之后这弧,公共因子可以做出解釋娃闲,通常的情況下,我們還想反過來把公共因子表示為原變量的線性組合当宴。
因子得分函數(shù)畜吊。
可見,要求得每個因子的得分户矢,必須求得分函數(shù)的系數(shù),而由于p>m殉疼,所以不能得到精確的得分梯浪,只能通過估計。
巴特萊特因子得分(加權(quán)最小二乘法)
回歸方法
注:共需要解m次才能解出所有的得分函數(shù)的系數(shù)瓢娜。
6 因子分析步驟
- 選擇分析的變量
用定性分析和定量分析的方法選擇變量挂洛,因子分析的前提條件是觀測變量間有較強的相關(guān)性,因為如果變量之間無相關(guān)性或相關(guān)性較小的話眠砾,他們不會有共享因子虏劲,所以原始變量間應(yīng)該有較強的相關(guān)性。- 計算所選原始變量的相關(guān)系數(shù)矩陣
相關(guān)系數(shù)矩陣描述了原始變量之間的相關(guān)關(guān)系褒颈∑馕祝可以幫助判斷原始變量之間是否存在相關(guān)關(guān)系,這對因子分析是非常重要的谷丸,因為如果所選變量之間無關(guān)系堡掏,做因子分析是不恰當(dāng)?shù)摹2⑶蚁嚓P(guān)系數(shù)矩陣是估計因子結(jié)構(gòu)的基礎(chǔ)刨疼。- 提取公共因子
這一步要確定因子求解的方法和因子的個數(shù)泉唁。需要根據(jù)研究者的設(shè)計方案或有關(guān)的經(jīng)驗或知識事先確定。因子個數(shù)的確定可以根據(jù)因子方差的大小揩慕,只取方差大于1(或特征值大于1)的那些因子亭畜,因為方差小于1的因子其貢獻可能很小∮保或者按照因子的累計方差貢獻率來確定拴鸵,一般認(rèn)為要達到60%才能符合要求。- 因子旋轉(zhuǎn)
通過坐標(biāo)變換使每個原始變量在盡可能少的因子之間有密切的關(guān)系止吐,這樣因子的實際意義更容易解釋,也更容易為每個潛在因子賦予有實際意義的名字宝踪。- 計算因子得分
求出各樣本的因子得分,有了因子得分值碍扔,則可以在許多分析中使用這些因子瘩燥,例如以因子的得分做聚類分析的變量,做回歸分析中的回歸因子不同。
注
- 因子分析是十分主觀的厉膀,在許多出版的資料中溶耘,因子分析模型都用少數(shù)可命名因子提供了合理解釋。實際上服鹅,絕大多數(shù)因子分析并沒有產(chǎn)生如此明確的結(jié)果凳兵。不幸的是,評價因子分析質(zhì)量的法則尚未很好量化企软,質(zhì)量問題只好依賴一個“哇庐扫!”準(zhǔn)則如果在仔細(xì)檢查因子分析的時候,研究人員能夠喊出“哇仗哨,我明白這些因子”的時候形庭,就可認(rèn)為是成功地運用了因子分析方法。
主成分分析與因子分析
主成分分析與因子分析有所不同厌漂,主成分分析僅僅是變量變換萨醒。
- 主成分分析:原始變量的線性組合表示新的綜合變量,即主成分苇倡。
- 因子分析:潛在的假想變量和隨機影響變量的線性組合表示原始變量富纸。因子模型除了公共因子外還有特殊因子。公共因子只解釋了原來變量的部分方差旨椒,而全部主成分解釋了原來變量的全部方差晓褪。
主成分和公共因子的位置不同。因子分析也有因子載荷( factor loading)的概念钩乍,代表了因子和原先變量的相關(guān)系數(shù)辞州。但是在因子分析公式中的因子載荷位置和主成分分析不同。
在數(shù)學(xué)模型上寥粹,因子分析和主成分分析也有不少區(qū)別变过。而且因子分析的計算也復(fù)雜得多。根據(jù)因子分析模型的特點涝涤,它還多一道程序:因子旋轉(zhuǎn)( factor rotation)媚狰;這個步驟可以使結(jié)果更好。
旋轉(zhuǎn)后的公共因子一般沒有主成分那么綜合阔拳,公共因子往往可以找到實際意義崭孤,而主成分常找不到實際的含義。
可以看出糊肠,因子分析和主成分分析都依賴于原始變量辨宠,也只能反映原始變量的信息。所以原始變量的選擇很重要货裹。在得到分析的結(jié)果時嗤形,并不一定會都得到如我們例子那樣清楚的結(jié)果。這與問題的性質(zhì)弧圆,選取的原始變量以及數(shù)據(jù)的質(zhì)量等都有關(guān)系赋兵。如果原始變量本質(zhì)上獨立笔咽,就很難把很多獨立變量用少數(shù)綜合的變量概括,降維就可能失敗霹期。數(shù)據(jù)越相關(guān)叶组,降維效果就越好±欤可用如下方法進行變量間的相關(guān)性檢驗:
- KMO樣本測度: KMO在0.9以上甩十,非常適合; 0.8-0.9吭产,很適合枣氧; 0.7-0.8,適合垮刹; 0.6-0.7,不太適合张弛;
0.5-0.6荒典;很勉強; 0.5以下吞鸭,不適合寺董;- 巴特萊特球體檢驗: H0:相關(guān)系數(shù)矩陣R為單位陣I。拒絕時H0可作因子分析
7 因子分析的R語言實現(xiàn)
R語言做因子分析這里主要介紹三個函數(shù)刻剥,一個是自帶的factanal函數(shù)遮咖。
factanal(x,factors,data=NULL,covmat=NUL,n.obs=NA,subset,na.action,start=NULL,score=c("none","regression","Bartlett"),rotation="varimax",control=NULL,…)
x是公式或者用于因子分析的數(shù)據(jù),可以是矩陣(每一行為一個樣本)或數(shù)據(jù)框造虏;factors表示要生成的因子個數(shù)御吞;data指定數(shù)據(jù)集,當(dāng)x為公式的時候使用漓藕;covmat是樣本的協(xié)方差矩陣或者相關(guān)系數(shù)矩陣陶珠,使用這個參數(shù)的時候x可以忽略;scores表示計算因子得分的方法享钞;rotation表示因子旋轉(zhuǎn)的方法揍诽,默認(rèn)為"varimax",最大方差旋轉(zhuǎn)栗竖。這里近介紹幾個常用的幾個參數(shù)暑脆,其他參數(shù)說明可查詢R語言官方幫助。另外狐肢,這個函數(shù)事實上僅支持用極大似然估計方法做因子分析添吗。
第二個函數(shù)就是自編函數(shù)實現(xiàn)的主成分分析方法做因子分析(具體函數(shù)代碼后面給出)。
factor.analysis(x,m)
x為相關(guān)系數(shù)矩陣处坪,m為因子個數(shù)根资。
第三個函數(shù)是psych包里的fa函數(shù)架专。
fa(r,nfactors=玄帕,n.obs=部脚,rotate=,scores=裤纹,fm)
r是相關(guān)系數(shù)矩陣或原始數(shù)據(jù)矩陣委刘;nfactors設(shè)定提取的因子數(shù)(默認(rèn)為1);n.obs是觀測數(shù)(輸入相關(guān)系數(shù)矩陣時需要填寫)鹰椒;rotate設(shè)定放置的方法(默認(rèn)互變異數(shù)最小法)锡移;scores設(shè)定是否計算因子得分(默認(rèn)不計算);fm設(shè)定因子化方法(默認(rèn)極小殘差法)漆际。
用上一章提供的數(shù)據(jù)再進行因子分析淆珊。比較不同函數(shù)結(jié)果的差異。
基于factnal函數(shù)奸汇,3個因子施符。
基于自編函數(shù),3個因子擂找。
基于fa函數(shù)戳吝,3個因子。