11.2對應分析git
在不少狀況下,咱們所關心的不單單是行或列變量自己,而是行變量和列變量的相互關係,這就是因子分析等方法沒法解釋的了。1970年法國統計學家J.P.Benzenci提出對應分析,也稱關聯分析、R-Q型因子分析,其是一種多元相依變量統計分析技術。它經過分析由定性變量構成的交互彙總表,來揭示同一變量各種別之間的差別,以及不一樣變量各種別之間的對應關係,這是一種很是好的分析調查問卷的手段。函數
對應分析是一種視覺化的數據分析方法,其基木思想是將一個聯列表的行和列中各元素的比例結構以點的形式在較低維的空間中表示出來,優勢在於可以將幾組看不出任何聯繫的數據,經過視覺上能夠接受的定位圖展示出來,使用起來直觀、簡單、方便,所以普遍應用於市場細分、產品定位、地質研究以及計算機工程等領域。對象
11.2.1理論基礎blog
對應分析是尋求樣木(行)與指標(列)之間聯繫的低維圖示法,其關鍵是利用一種數據變換方法,使含有n個樣本觀測值和m個變量的原始數據矩陣x變成另外一個矩陣z, z是一個過渡知陣,在接下來的計算中使用。經過z將樣本和變量結合起來。ip
11.2.2 R語言實現ci
R中的程序包MASS提供了兩個函數,corresp()用於作簡單一的對應分析,mca()用於計算多重對應分析,一般使用前者,其調用格式爲corresp(x,nf=1,……)開發
x是數據矩陣:nf表示因子分析中計算因子的個數,一般取2.數據分析
【例】數學
> ch=data.frame(A=c(47,22,10),B=c(31,32,11),C=c(2,21,25),D=c(1,10,20))產品> rownames(ch)=c("Pure-Chinese","Semi-Chinese","Pure-English")
> library(MASS)
> ch.ca=corresp(ch,nf=2)
> options(digits=4)
> ch.ca
First canonical correlation(s): 0.5521 0.1409
Row scores:
[,1] [,2]
Pure-Chinese 1.2069 0.6383
Semi-Chinese -0.1368 -1.3079
Pure-English -1.3051 0.9010
Column scores:
[,1] [,2]
A 0.9325 0.9196
B 0.4573 -1.1655
C -1.2486 -0.5417
D -1.5346 1.2773
分析結果給出了兩個因子對應行變量、列變量的載荷係數。對應分析是一種可視化的多元統計方法,它主要是經過圖形分析來得出結論,在R中咱們使用函數biplot()能夠提取因子分析的散點圖,以直觀地展現樣本和變量各個水平之間的關係。
分析圖時主要看兩種散點的橫座標之間的距離,縱座標的距離對於分析意義不大。散點「純漢字」和數學成績A最接近,說明數學好的人能夠自如地進行純漢字讀寫;散點「純英文」與數學成績D很是接近,說明數學差的人不會漢字只會英文;而「半漢字」介於數學成績B和C之間,說明會部分漢字的學生數學成績通常。
MASS程序包的函數功能仍是有限的,因而一些R軟件使用者開發了專門用來處理對應分析的程序包,如ca包,該包專門用於計算並可視化簡單對應分析、多重及聯合對應分析。
對應分析普遍地應用於市場研究中,經常結合問卷調查方法,在產品定位、市場細分方面是一項很是重要的統計技術。在企業營銷中,常常須要明確產品定位:什麼樣的消費者在使用本企業生產的產品?在不一樣類型的消費者心目中,哪個品牌更受歡迎?當數據量較小時,可使用列聯表來分析不一樣類型的消費者在選擇品牌上的差別。可是列聯表存在一個問題:當變量不少且每一個變量又有多個類別時,數據量很大,很難直觀地發現變量間的內在聯繫,這時對應分析就是一種有效的解決方案。
> brand=data.frame(low=c(2,49,4,4,15,1),medium=c(7,7,5,49,2,7),high=c(16,3,23,5,5,14))
> rownames(brand)=c("A","B","C","D","E","F")
> library(ca)
> options(digits=3)
> brand.ca=ca(brand)
> brand.ca
Principal inertias (eigenvalues):
1 2
Value 0.530966 0.343042
Percentage 60.75% 39.25%
Rows:
A B C D E F
Mass 0.1147 0.271 0.147 0.266 0.101 0.1009
ChiDist 0.7704 1.026 0.906 1.029 0.738 0.7939
Inertia 0.0681 0.285 0.120 0.282 0.055 0.0636
Dim. 1 -0.7267 1.399 -0.581 -0.850 0.988 -0.8296
Dim. 2 0.9553 -0.200 1.368 -1.403 0.281 0.8786
Columns:
low medium high
Mass 0.3440 0.353 0.303
ChiDist 1.0058 0.861 0.934
Inertia 0.3480 0.262 0.264
Dim. 1 1.3792 -0.778 -0.659
Dim. 2 -0.0663 -1.107 1.367
使用函數ca()獲得的分析結果包含了更多的信息:ChiDist是列聯表的卡方檢驗結果;Inertia是慣量,也就是咱們所說的特徵根;Dim. 1和Dim. 2是提取的兩個因子對行、列變量的因子載荷。可經過names()查看因子分析輸出的對象列表。
> names(brand.ca)
[1] "sv" "nd" "rownames" "rowmass"
[5] "rowdist" "rowinertia" "rowcoord" "rowsup"
[9] "colnames" "colmass" "coldist" "colinertia"
[13] "colcoord" "colsup" "call"
例如,以下語句能夠獲得兩個因子對應的行的標準座標:
> brand.ca$rowcoord
Dim1 Dim2
A -0.727 0.955
B 1.399 -0.200
C -0.581 1.368
D -0.850 -1.403
E 0.988 0.281
F -0.830 0.879
用plot()函數繪製因子分析的散點圖
plot(brand.ca)
對應分析散點圖是由品牌類別和收入類別的因子座標值組成,從中能夠看出,低收入人羣傾向於選擇品牌B和E,中收入水平傾向於選擇品牌D,而高收入水平傾向於品牌A. C和F,這樣企業就完成了初步的市場定位。