天天看點

資料降維之因子分析

之前學習的時候大略看了一下,不記得什麼,重新學習學習

因子分析(factor analysis

是主成分分析的推廣和發展,與主成分分析 一樣,它也是一種”降維”的統計分析方法。是一種用來分析隐藏在表面現象背後的因子作用的一類統計模型。

因子分析是研究相關陣或協方差陣的内部依賴關系,它将多個變量綜合為少數幾個因子,以再現原始變量與因子之間的關系。

因子分析的主要應用有兩個方面:一是尋求基本結構,簡化觀測系統, 将具有錯綜複雜關系的對象(變量或樣本)綜合為少數幾個因子(不 可觀測的随機變量),以再現因子與原始變量之間的内在聯系;二是 用于分類,對于p個變量或n個樣本進行分類

因子分析根據研究對象的不同可以分為R型和Q型因子分析。

R型因子分析研究變量(名額)之間的相關關系,通過對變量的相關陣或 協方差陣内部結構的研究,找出控制所有變量的幾個公共因子(或稱主 因子、潛在因子),用以對變量或樣本進行分類。

Q型因子分析研究樣本之間的相關關系,通過對樣本的相似矩陣内部結

構的研究找出控制樣本的幾個主要因素(或稱為主因子)。

這兩種因子分析的處理方法是一樣的,隻是出發點不同。R型從變量的

相關陣出發,Q型從樣本的相似矩陣出發。

因子的特點:

1) 因子變量的數量遠遠少于原始變量的個數;

2) 因子變量并非原始變量的取舍,而是一種新的綜合;

3) 因子變量之間沒有線性關系;

4) 因子變量具有明确的解釋性,可以最大限度地發揮專業分析的作用。

因子分析就是以最小的資訊損失,将衆多的原始變量濃縮成為少數幾個

因子變量,使得變量具有更高的可解釋性的一種資料縮減方法。

因子分析的核心問題有兩個:一是如何構造因子變量,二是如何對因子 變量進行命名解釋。

因子分析常常有以下四個基本步驟:

1) 确定待分析的原變量是否适合做因子分析。

2) 構造因子變量。

3) 利用旋轉方法使因子變量更具有可解釋性。

4) 計算因子變量得分。

1) 将原始資料标準化,以消除變量間在數量級和量綱上的不同。

2) 求标準化資料的相關矩陣。

3) 求相關矩陣的特征值和特征向量。

4) 計算方差貢獻率與累積方差貢獻率。

5) 确定因子:設F1、F2、…,Fp為p個因子,其中前m個因子包含的資料信 息總量(即其累積貢獻率)不低于80%,可取前m個因子來反映原評價名額。

6) 因子旋轉:若所得的m個因子無法确定或其實際意義不是很明顯,這時

需要因子進行旋轉以獲得較為明顯的實際含義。

7) 用原名額的線性組合來求各因子得分:采用回歸估計法、Bartlett估計法

計算因子得分。

8) 綜合得分:以各因子的方差貢獻率為權,由各因子的線性組合得到綜合

評價名額函數:

9) 得分排序:利用綜合得分可以得到得分名次。

R中自帶的因子分析函數factanal()采用極大似然估計方法估計因子載荷,适

用于大樣本量的資料分析,其調用格式為

factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA, subset, na.action, start = NULL, scores = c("none", "regression", "Bartlett"), rotation = "varimax", control = NULL, ...)

x是公式或用于因子分析的資料,可以是矩陣(每行為一個樣本)或資料框; factors表示要生成的因子個數;data指定資料集;當x為公式時使用; covmat是樣本的協方差矩陣或相關系數矩陣,使用這個參數時x可以忽略; scores表示計算因子得分的方法;rotation表示因子旋轉的方法,預設 為”varimax”—方差最大旋轉。

例:洛杉矶街區資料(LA.Neighborhoods.csv),這是美國普查局2000年的資料。一共有110個街區,15個變量。

資料降維之因子分析
w=read.csv("LA.Neighborhoods.csv") #讀入資料 
w$density=w$Population/w$Area	#增加人口密度變量
u=w[,-c(12:15)] #去掉人口、面積、經緯度變量
(a=factanal(factors=2,scale(u[,-1]),scores="regression"))

plot(a$scores[,1:2],type="n",ylim=c(-2,1.5),xlim=c(-2.5,2.5),
xlab="Factor 1",ylab="Factor 2",main="Factor Scores")
abline(h=0);abline(v=0)
text(a$scores[,1],a$scores[,2],labels=u[,1],cex=0.7)

           
資料降維之因子分析
資料降維之因子分析

因子得分圖各個點是用街區名字代表的, 從圖中可以看出各種街區所在的位置, 也可以識别一些特别突出的街區。

對應分析把R型因子分析和Q型因子分析統一起來,通過R型因子分析直 接得到Q型因子分析的結果,同時把變量(名額)和樣品反映到相同的坐 标軸(因子軸)的一張圖上,以此來說明變量(名額)與樣品之間的關系。

對應分析應用于分類變量而不是連續變量,傳統意義上應用于列聯表, 但由于其實描述性的,其他表格也可以應用。所有資料都應該是非負的, 并且行和列是平等的。

眼睛和頭發顔色資料(caith.txt) 該資料是關于蘇格蘭Caithness地方人 的眼睛顔色(變量eye)和頭發顔色(變量hair)的列聯表。該地引人關注是 因為那裡混居着北歐日耳曼人(Nordic),凱爾特人(Celtic)和盎格魯撒拉 遜人(Anglo-Saxon)。

資料見下表:

資料降維之因子分析
library(MASS)

v=caith	#資料來源
colnames(v)=paste(colnames(v),"hair") rownames(v)=paste(rownames(v),"eye") (cc=corresp(v,nf=2)) #對應分析集結果輸出
           
資料降維之因子分析

輸出的是典型相關系 數,行計分和列計分

資料降維之因子分析

顔色深的眼睛和顔色深的頭發接近,反之亦然

繼續閱讀