更新時間:2022-12-01 來源:黑馬程序員 瀏覽量:
在搞清楚“FA與PCA的主要區(qū)別是什么?”之前,我們先來了解一下因子分析(Factor Analysis,F(xiàn)A)的定義是什么?它是研究從變量群中提取共性因子的統(tǒng)計方法,這里的共性因子是不同變量之間內(nèi)在的隱藏因子,例如,一名學(xué)生的語文、數(shù)學(xué)、英語成績都很好,那么潛在的共性因子可能是智力水平高。因此,因子分析的過程其實是尋找共性因子和個性因子并得到最優(yōu)解釋的過程。
因子分析與主成分分析的原理有相同之處,也有差異性。在大多數(shù)情況下,很難感性地區(qū)分因子分析和主成分分析,原因是二者的降維結(jié)果都是對原有維度進行一定的處理,在處理的結(jié)果上都偏離了原有基于維度的認識;但只要清楚二者的邏輯一個是基于變量的線性組合,一個是基于因子的組合,便能很好地區(qū)分。
FA與PCA的主要區(qū)別如下。
?。?)原理不同。主成分分析在損失很少信息的前提下,把多個指標(biāo)轉(zhuǎn)化為幾個不相關(guān)的主成分;而因子分析則從原始變量相關(guān)矩陣內(nèi)部的依賴關(guān)系出發(fā),把因子表達為能表示少數(shù)公共因子和僅對某一個變量有作用的特殊因子的線性組合。
?。?)假設(shè)條件不同。主成分分析不需要假設(shè)條件,而因子分析需要假設(shè)各個共同因子之間、特殊因子(Specific Factor)之間,以及共同因子和特殊因子之間都不相關(guān)。
(3)求解方法不同。主成分分析的求解方法從協(xié)方差陣出發(fā),而因子分析的求解方法包括主成分法、主軸因子法、極大似然法、最小二乘法、a因子提取法等。
(4)降維后的“維度”數(shù)量不同,即因子數(shù)量和主成分的數(shù)量。主成分分析的數(shù)量最多等于維度數(shù);而因子分析中的因子數(shù)需要分析者指定,指定的因子數(shù)不同,結(jié)果也不同。
綜合來看,主成分分析由于不需要假設(shè)條件,并且可以最大限度地保持原有變量的大多數(shù)特征,因此適用范圍更廣泛,尤其是分析宏觀的未知數(shù)據(jù)的穩(wěn)定性更高。
因子分析的實現(xiàn)過程非常簡單,示例如下。
fa = FA(n_components=None) # ① fa_data = fa.fit_transform(raw_data2) # ② fa_data[:3,:].round(2) # ③
代碼①初始化因子分析實戰(zhàn)。代碼②調(diào)用fit_transform做轉(zhuǎn)換。代碼③輸出前3條結(jié)果如下。
array([[1.66, -2.94, -1.76, -0.67, 0. ], [-0.27, 1.11, -0.28, -0.44, 0. ], [ 0.21, 0.9, 1.86, 0.92, 0. ]])
從結(jié)果可以看到,因子分析的結(jié)果與主成分分析的結(jié)果不同。