"探索性因子分析EFA是個啥唐全?"

在很多研究中,我們需要的變量都不能或者不容易被直接測量迁沫,比如芦瘾,假如我們要研究家庭環(huán)境和學校環(huán)境對學生成績的影響捌蚊,我們要如何測量家庭環(huán)境和學校環(huán)境?

雖然我們不能直接測量家庭環(huán)境和學校環(huán)境近弟,但是我們可以通過一些相關(guān)的可測量變量來反映這些不可測量的變量缅糟,比如我們使用家庭年收入、父母學歷等等指標來反映家庭環(huán)境祷愉;用學校排名窗宦,學校本科率,學生所在班級排名等指標來衡量學校環(huán)境

但是細心的小伙伴會發(fā)現(xiàn)二鳄,家庭收入和父母學歷本身就存在相關(guān)性赴涵;學校排名和學校本科率也有相關(guān)性,因此我們可以推斷肯定存在一個共同影響家庭收入订讼、父母學歷的因子髓窜;也會存在影響學校排名和本科率的因子,那我們?nèi)绾握页鏊杏绊懟蛘咧渌凶兞康墓惨蜃幽兀?/p>

別急欺殿,現(xiàn)在就來給家人們詳細講講因子分析~

(”因子分析分為驗證性因子分析(CFA)探索性因子分析(EFA)寄纵,本文講的是因子分析皆為EFA“)


2.1 兩類檢驗(KMO & Bartlett)

當我們的變量不獨立或不相關(guān)的時候,其實就不存在上述栗子中的問題了脖苏,那我們也不可能找到影響所有變量的公共因子

因此程拭,在做因子分析前我們需要進行KMO檢驗和Bartlett檢驗

  • KMO檢驗

KMO檢驗用于檢驗變量之間的偏相關(guān)性的,其取值為[0,1]棍潘,當KMO統(tǒng)計量越接近于1時恃鞋,變量之間的偏相關(guān)性越強

一般我們要求KMO統(tǒng)計量在0.5以上且越接近于1越好,如果KMO在0.5以下亦歉,那就要重新考慮是否要使用因子分析了

  • Bartlett檢驗

Bartlett用于檢驗變量之間是否獨立恤浪,其原假設(shè)是變量之間相互獨立,如果檢驗的P值小于0.05鳍徽,那么我們就可以在95%的置信水平上拒絕原假設(shè)资锰,認為變量間不獨立

只要變量不獨立疹鳄,那我們當然可以進行因子分析

經(jīng)過KMO和Bartlett檢驗后壳繁,我們發(fā)現(xiàn)變量確實相關(guān)而且不獨立,因子分析終于可以大展拳腳了预鬓,那這個因子分析到底是怎么個操作方法呢濒募?

萬丈高樓平地起鞭盟,我們還是要先弄清因子分析的模型

2.2 因子分析模型

2.2.1 數(shù)學模型

既然變量不獨立而且相關(guān),那他們肯定會受到一個或者多個潛在變量的影響瑰剃,我們只要把這個潛在變量找出來齿诉,再用潛在的變量表示原來的變量,那我們對原始變量的研究就可以轉(zhuǎn)化為對這個潛在變量的研究。因子分析模型也是這個道理

簡單來說粤剧,因子分析模型就是用公共因子特殊因子表示原來的變量

假設(shè)我們現(xiàn)在對n個樣本觀察了p個指標歇竟,即X1,X2...Xp,公共因子用F表示抵恋,特殊因子用epsilon表示焕议,那么因子分析模型就可以用以下數(shù)學模型表示
\begin{align} \\& X = \begin{bmatrix} X_{1} \\ X_{2} \\ ... \\ X_{p}\end{bmatrix},A = \begin{bmatrix} a_{11} \ a_{12} \ ... \ a_{1m} \\ a_{21} \ a_{22} \ ... \ a_{2m} \\ ... \\ a_{p1} \ a_{p2} \ ... \ a_{pm} \end{bmatrix} \\& \\& F = \begin{bmatrix} F_{1} \\ F_{2} \\ ... \\ F_{p}\end{bmatrix},e = \begin{bmatrix} \varepsilon_{1} \\ \varepsilon_{2} \\ ... \\ \varepsilon_{p}\end{bmatrix} \\& \\& X1 = a_{11}F1 \ + ... + \ a_{1d}F_l6xrvi3 + \varepsilon_{1} \\& X2 = a_{21}F1 \ + ... + \ a_{2d}F_hcrrvqv + \varepsilon_{2} \\& ... \\& X_{p} = a_{p1}F1 \ + ... + \ a_{pd}F_oryuyl2 + \varepsilon_{p} \end{align}

以上的復雜式子,我們可以用X = AF + e表示弧关,其模型描述如下:

  • X是原始可觀測變量盅安,維度是p【注意:此時的X進行了中心化處理,E(x)=0】
  • F代表公共因子世囊,維度是d(d<p)
  • 系數(shù)a(loadings)别瞭,又稱“因子載荷”,需要求解株憾;所有的a組成載荷矩陣A蝙寨,載荷矩陣A不唯一
  • 公因子F的線性組合反映X
  • ?代表特殊因子;特殊因子僅僅與當前變量有關(guān)号胚;例如?1僅與X1有關(guān)籽慢,特殊因子之間相互獨立浸遗,且E(?)=0

【模型假設(shè)】

  • 各特殊因子之間相互獨立

  • 各特殊因子與公共因子相互獨立 Cov(F,?) = 0

  • 各公共因子均值為0猫胁,方差為1且彼此獨立

整個因子分析最重要的一步,就是要求出loadings跛锌,即因子載荷弃秆,圍繞因子載荷,我們還要提一下以下幾個重要的性質(zhì)

2.2.2 重要性質(zhì)

因子載荷矩陣有以下幾個重要統(tǒng)計性質(zhì)

  1. 因子的統(tǒng)計意義

因子a_ij是第i個變量與第就髓帽、個公共因子的相關(guān)系數(shù)菠赚,反映了第i個變量與第j個公共因子的相關(guān)重要性

說人話就是,a_ij越大郑藏,Xi與Fj的相關(guān)性越強唄~

  1. 共同度hi

h_{i}^2 = \sum_{j=1}^{m}a_{ij}^2 = a_{i1}^{2} + a_{i2}^{2} + ... + a_{ij}^{2}

對第i個變量Xi的共同度是指因子載荷矩陣第i行的因子的平方和衡查,也可以理解成j個共同因子對第i個變量的方差的貢獻度

對其兩邊求方差可以得到
\begin{align} \\& \quad Var(X) = a_{i1}^2Var(F_{1}) + ... + a_{im}^2Var(F_{m}) + Var(\varepsilon_{i}) \\& \quad Var(Fi) = 1 \\& \quad Cov(Fi,Fj) = 0 \\& \\& \quad then, \\& \\& \quad 1 = \sum_{j=1}^{m}a_{ij}^2 + \sigma_{i}^2 \end{align}
上式可以看出,所有的公共因子和特殊因子對變量Xi的貢獻為1必盖,因子平方和越靠近1拌牲,則特殊因子項的方差就會很小,因子分析的效果越好

  1. 公共因子方差貢獻

因子載荷矩陣中第j列元素的因子平方和為Fj對所有Xi的方差貢獻和歌粥,記為gj2塌忽,用于衡量Fj的相對重要性
g_{j}^{2} = \sum_{i=1}^{p}a_{ij}^2

說人話就是,因子載荷矩陣里每一行的因子的平方和代表共同度失驶,每一列的因子的平方和代表方差貢獻

那接下來就要講講這個因子載荷要咋求出來

2.2.3 因子載荷&因子旋轉(zhuǎn)

估計因子載荷的方法很多土居,比如主成分分析,最大似然估計等,由于上一篇文章講了PCA擦耀,我們這就用主成分分析法來求因子載荷

由于PCA再主成分分析一文里說的很詳細棉圈,這里就不再闡述了,大體思路一致眷蜓,關(guān)鍵在于找到相關(guān)系數(shù)矩陣對應(yīng)的特征值和特征向量

主成分分析鏈接??

假設(shè)v是最終計算出來的特征值和特征向量迄损,λ是特征值,那么因子載荷a可以由以下公式計算

整個計算方法基本和PCA一致账磺,求出特征值芹敌,找出累計方差貢獻大于70%的前幾個λ,然后再計算出對應(yīng)的特征向量v垮抗,然后再計算出因子載荷

得到因子載荷后氏捞,我們需要衡量因子是被哪幾個指標支配【即不同的F是受哪些X影響】,一般因子載荷a>0.5則認為該指標是支配指標

比如冒版,以下表格的數(shù)據(jù)可以看出F1受到x1,x2支配液茎;而F2受到x3,x4支配

F1 F2
x1 0.7052 0.1024
x2 0.6905 0.2049
x3 0.3515 0.7906
x4 0.2516 0.8854

做完因子旋轉(zhuǎn)后,因子載荷的平方值會向0和1兩個方向分化辞嗡,原本值大的因子載荷會更大捆等,原本值小的因子載荷會更小,這樣我們就可以把他們區(qū)分開

【栗子??】

說了辣么多续室,來個栗子吧栋烤,不然看的云里霧里的

假設(shè)變量的相關(guān)系數(shù)矩陣是R如下,求其因子挺狰,首先第一步我們求特征值λ
\begin{align} \\& R = \begin{bmatrix} \quad 1 \quad \frac{-1}{3} \quad 2/3 \\ \frac{-1}{3} \quad 1 \quad 0 \\ \frac{2}{3} \quad 0 \quad 1 \end{bmatrix} \end{align}
根據(jù)特征值和特征向量公式我們求的λ
\begin{align} \\& |R - \lambda E|X = 0 \quad then \quad \\& R-\lambda E = \begin{bmatrix} \quad 1-\lambda \quad \frac{-1}{3} \quad 2/3 \\ \frac{-1}{3} \quad 1 -\lambda \quad 0 \\ \frac{2}{3} \quad 0 \quad 1-\lambda \end{bmatrix} \\& |R-\lambda X| = (1-\lambda)^3 +0 + 0 -(1-\lambda)\frac{4}{9} - \frac{1}{9}(1-\lambda) -0 = 0 \\& \\& then, \\& \lambda_{1} = 1;\quad \lambda_{2} = 1- \frac{\sqrt{5}}{3} = 0.2546; \quad \lambda_{3} = 1 + \frac{\sqrt{5}}{3}=1.7454; \end{align}

計算出特征值后我們要計算累計方差貢獻明郭,計算如下

λ proportion cummulative
1.7454 58.18% 58.18%
1 33.33% 91.53%
0.2546 8.48% 100%

因為λ1和λ2大于1,而且累計方差占比大于70%丰泊,因此我們只選取2個因子薯定,接下來就要計算其特征向量

將λ代回原矩陣計算
\begin{align} \\& For \quad \lambda = 1.7454; \\& \\& \begin{bmatrix} \frac{-\sqrt{5}}{3} \quad \frac{-1}{3} \quad \frac{2}{3} \\ \frac{-1}{3} \quad \frac{-\sqrt{5}}{3} \quad 0 \\ \frac{2}{3} \quad 0 \quad \frac{-\sqrt{5}}{3} \end{bmatrix} * \begin{bmatrix} x1 \\ x2 \\ x3 \end{bmatrix} = 0 \\& \\& \begin{bmatrix}\ 0 \quad \quad \quad 0 \quad \quad \quad 0 \\ -1 \quad -\sqrt{5} \quad \quad 0 \\ 0 \quad -2\sqrt{5} \quad -\sqrt{5}\end{bmatrix} * X = 0 \\& \\& -x_{1} - \sqrt{5}x_{2} = 0 \\&-2\sqrt{5}x_{2} - \sqrt{5}x_{3} = 0 \\& \\& x_{1}=\sqrt{5},\ then \ x_{2} = -1,\ x3 = 2 \\& \\& v = \begin{bmatrix} \sqrt{5} \\ -1 \\ 2\end{bmatrix} \quad standarized \quad \begin{bmatrix} 0.7071 \\ -0.3162 \\ 0.6325 \end{bmatrix} \\& \end{align}
上述例子求出了其中一個特征向量,其他特征向量計算方法也類似瞳购,求出后計算對應(yīng)的因子
\begin{align} \\&\lambda_{1} = 1.7454; \quad \lambda_{2} = 1; \quad v_{1} = \begin{bmatrix} 0.7071 \\ 0.3162 \\ -0.6325 \\\end{bmatrix}; \quad v_{2} = \begin{bmatrix} 0 \\ 0.8165 \\ 0.4082 \\\end{bmatrix} \\& A = \begin{bmatrix} \sqrt{\lambda_{1}}v1,\sqrt{\lambda_{2}}v2 \end{bmatrix} = \begin{bmatrix} 0.9342 \quad \quad 0 \\ -0.4178 \quad 0.8165 \\ 0.8355 \quad 0.4082 \\\end{bmatrix} \end{align}
由此可得x與公共因子與特殊因子的模型數(shù)學表示如下:
\begin{align} \\& x1 = 0.9342*F_{1} + 0*F_{2} + \varepsilon_{1} \\& x2 = -0.4178*F_{1} + 0话侄。8165*F_{2} + \varepsilon_{2} \\& x3 = 0.8355*F_{1} + 0。4082*F_{2} + \varepsilon_{3} \end{align}
其中F1對x的貢獻度為1.7454学赛,F(xiàn)2對x的貢獻度為1

相信看完案例年堆,大家應(yīng)該能明白因子載荷矩陣是怎么計算出來的 了~

2.2.4 因子得分

因子得分其實就是指模型中因子F的取值,前面也說到罢屈,因子F是不能直接觀察的理論變量嘀韧,因此其取值只能借助于X來測量,一般F都要由X來線性表示
F_{j} = u_{j1}X_{j1} + u_{j2}X_{j2} + u_{jp}X_{jp} \quad j = 1,2,...,m
無意中看到有一篇文章寫的是對因子得分的質(zhì)疑缠捌,感覺他說的挺有道理的锄贷,而且因子得分好像用的也不多【可能只有我用的不多h】译蒂,因此這部分也不打算細講

大概知道因子得分就是通過一種數(shù)學運算,將潛在因子F的值用X算出來了

【總結(jié)一下】

其實因子分析也就以下幾步

  1. 進行統(tǒng)計檢驗谊却,看數(shù)據(jù)是否適合做因子分析
  2. 標準化柔昼,以及計算相關(guān)系數(shù)矩陣
  3. 求解特征值和特征向量
  4. 計算方差貢獻率與累計方差貢獻率
  5. 確定與計算因子【包括因子旋轉(zhuǎn)】

這咋一看,感覺和PCA那么像呢炎辨,因為我們使用的是主成分分析法求解的因子載荷捕透,所有確實和PCA有點像,但實際上碴萧,EFA與PCA也是有很大區(qū)別的

2.2.5 EFA與PCA區(qū)別

  • PCA使用原始數(shù)據(jù)的線性組合來降低數(shù)據(jù)維度乙嘀;而EFA則希望尋找隱藏在數(shù)據(jù)中無法直接觀察的因子
  • PCA旨在找到一種或幾種綜合指標,把每一個指標表示成原始變量的線性組合破喻,而EFA是將原始變量近似表示成公共因子的線性組合虎谢,大概意思如下圖 【靈魂畫手??】


2.3 EFA的python實現(xiàn)

EFA在spss、R曹质、SAS婴噩、python等軟件都能實現(xiàn),由于現(xiàn)在喜歡用python的胖友比較多羽德,那就來寫下python下如何實現(xiàn)EFA吧~

【注意??】這里沒有進行相關(guān)統(tǒng)計檢驗

import pandas as pd
import sklearn.datasets
from factor_analyzer import FactorAnalyzer
import matplotlib.pyplot as plt

df = pd.read("your path")
n = 6 # 選一個盡量大的值
fa = FactorAnalyzer(n_factors=n,rotation="varimax") # 最大方差旋轉(zhuǎn)
fa.fit(df)                                                                       # df不能有NAN df.dropna()
pd.Dataframe.from_records(fa.loadings_)             # 得到因子載荷loadings
ev,v = fa.get_eigenvalues()                                     # 得到特征值和特征向量

# 確定最優(yōu)的n值
# draw scree plot 
xvals = range(1,df.shape[1]+1)
plt.scatter(xvals,ev)
plt.plot(xvals, ev)
plt.title("scree plot")
plt.xlabel("factor")
plt.ylabel("eigenvalues")
plt.grid
plt.show()

# 確定最優(yōu)的n后几莽,使用最優(yōu)的n再進行因子分析

碼字不易,喜歡的話給個贊和關(guān)注吧~??

相關(guān)參考

[1] 對主成分分析中綜合得分方法的質(zhì)疑

[2] EFA的python實現(xiàn)

[3] Abdi, Hervé. "Factor rotations in factor analyses." Encyclopedia for Research Methods for the Social Sciences. Sage: Thousand Oaks, CA (2003): 792-795.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宅静,一起剝皮案震驚了整個濱河市章蚣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坏为,老刑警劉巖究驴,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匀伏,居然都是意外死亡,警方通過查閱死者的電腦和手機蝴韭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門够颠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人榄鉴,你說我怎么就攤上這事履磨。” “怎么了庆尘?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵剃诅,是天一觀的道長。 經(jīng)常有香客問我驶忌,道長矛辕,這世上最難降的妖魔是什么笑跛? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮聊品,結(jié)果婚禮上飞蹂,老公的妹妹穿的比我還像新娘。我一直安慰自己翻屈,他們只是感情好陈哑,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伸眶,像睡著了一般惊窖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厘贼,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天爬坑,我揣著相機與錄音,去河邊找鬼涂臣。 笑死盾计,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的赁遗。 我是一名探鬼主播署辉,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岩四!你這毒婦竟也來了哭尝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤剖煌,失蹤者是張志新(化名)和其女友劉穎材鹦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耕姊,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡桶唐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茉兰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尤泽。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖规脸,靈堂內(nèi)的尸體忽然破棺而出坯约,到底是詐尸還是另有隱情,我是刑警寧澤莫鸭,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布闹丐,位于F島的核電站,受9級特大地震影響被因,放射性物質(zhì)發(fā)生泄漏卿拴。R本人自食惡果不足惜衫仑,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巍棱。 院中可真熱鬧惑畴,春花似錦、人聲如沸航徙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽到踏。三九已至杠袱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窝稿,已是汗流浹背楣富。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伴榔,地道東北人纹蝴。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像踪少,于是被迫代替她去往敵國和親塘安。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 主成分分析在統(tǒng)計學中援奢,主成分分析主要是一種通過降維技術(shù)來將數(shù)據(jù)集進行簡化的操作兼犯,并且在減少對數(shù)據(jù)集的維數(shù)的同時保證...
    Jachin111閱讀 1,882評論 0 0
  • 1.定義 因子分析:即對信息的濃縮。比如領(lǐng)導說了14句話集漾,將其濃縮為4個關(guān)鍵詞 2. SPSSAU操作步驟 (1)...
    mhhhpl閱讀 4,184評論 0 0
  • Chapter 13 Factor Analysis 本篇是第十三章切黔,內(nèi)容是因子分析。這篇博客的完整內(nèi)容包含各類數(shù)...
    G小調(diào)的Qing歌閱讀 21,911評論 0 11
  • 1 因子分析概念 因子分析是一種數(shù)據(jù)簡化的技術(shù)具篇。它通過研究眾多變量之間的內(nèi)部依賴關(guān)系纬霞,探求觀測數(shù)據(jù)中的基本結(jié)構(gòu),并...
    羋學僧閱讀 23,783評論 9 12
  • 采用因子分析方法栽连,根據(jù)48位應(yīng)聘者的15項指標得分险领,選出6名最優(yōu)秀的應(yīng)聘者## (1)讀入數(shù)據(jù),數(shù)據(jù)標準化 (2)...
    chfing閱讀 619評論 0 0