对应分析 in R (1)
对应分析(correspondence analysis, CA)是在因子分析的基础上发展起来的方法,通过对原始数据采用适当的标度方法,把R型因子分析(对变量)和Q型因子分析(对样品)结合起来,同时得到两方面的结果。对应分析是一种维度缩减方法,特别的,可以在同一因子平面上表现变量和样品,从而直观的揭示所研究的变量和样品之间的内在联系。
因子分析最早由法国学者Benzecri (1973)提出,现已有广泛的应用,特别在社会科学研究,市场分析等领域,对应分析已经成为一种常用的数据分析方法。
本文介绍对应分析的基本原理,及其在R中的使用。
1.简单对应分析
基本思想:
对数据阵X所作的R型和Q型因子分析,分别反映了数据集整体的内在联系,对应分析通过对应变换后的标准化矩阵Z,将两者结合起来。
此时,变量间的协方差矩阵为和样品间的协方差矩阵有相同的非零特征值,而这些特征值又正是各个公共因子的方差,因此可以用相同的因子轴同时表示变量点和样本点。期间主要使用的数学工具是奇异值分解。
数学推导:可参考[1],[2]。
基本步骤:同上,公式输入太麻烦了。
数据:对应分析要求数据非负(如果有负数可以考虑对所有数据加上一个适当常数),最适应于列联表属性数据。
一个例子:美国于1973年到1978年间授予哲学博士学位的数目
(美国人口调查局,1979)
使用R的ca包
> x<-read.csv(file="bs.csv",head=TRUE)
> library(ca)
> a<-ca(x)
> a
#ca对象a的内容:
Principal inertias (eigenvalues): %主惯量(特征值)及贡献率
1 2 3 4 5
Value 0.003416 7.4e-05 4.8e-05 1.7e-05 1e-06
Percentage 96.06% 2.08% 1.35% 0.48% 0.03%
Rows: #行(样品)的结果
1 2 3 4 5 6
Mass 0.175601 0.169743 0.170077 0.165629 0.161004 0.157946
ChiDist 0.084783 0.052191 0.017941 0.027724 0.052149 0.087630
Inertia 0.001262 0.000462 0.000055 0.000127 0.000438 0.001213
Dim. 1 -1.437572 -0.870701 -0.253596 0.414733 0.876788 1.478397
Dim. 2 0.377779 0.341439 0.092096 -1.501658 -0.951500 1.658507
Columns: #列(变量)的结果
l p s b e m
Mass 0.242540 0.202643 0.179854 0.154461 0.160374 0.060128
ChiDist 0.028057 0.041826 0.014029 0.110180 0.070832 0.070263
Inertia 0.000191 0.000355 0.000035 0.001875 0.000805 0.000297
Dim. 1 0.441611 -0.706110 0.023125 1.882020 -1.204076 -1.093941
Dim. 2 0.940685 -0.281149 -1.325916 -0.150955 -0.426479 2.644450
#图形结果
> plot(a)
#图中1—6 分别为1973至1978年
结果说明:6个行点和6个列点可分为3类,第一类为b,在1978年比例最大。第2类为s和l,在1975年至1977年比例随年度下降。第3类为p,e,m,它们在1973,1974年的比例最大。
参考:
[1] 高惠璇,应用多元统计分析
[2] Francois Husson,Exploratory Multivariate Analysis by Example Using R
因子分析最早由法国学者Benzecri (1973)提出,现已有广泛的应用,特别在社会科学研究,市场分析等领域,对应分析已经成为一种常用的数据分析方法。
本文介绍对应分析的基本原理,及其在R中的使用。
1.简单对应分析
基本思想:
对数据阵X所作的R型和Q型因子分析,分别反映了数据集整体的内在联系,对应分析通过对应变换后的标准化矩阵Z,将两者结合起来。
此时,变量间的协方差矩阵为和样品间的协方差矩阵有相同的非零特征值,而这些特征值又正是各个公共因子的方差,因此可以用相同的因子轴同时表示变量点和样本点。期间主要使用的数学工具是奇异值分解。
数学推导:可参考[1],[2]。
基本步骤:同上,公式输入太麻烦了。
数据:对应分析要求数据非负(如果有负数可以考虑对所有数据加上一个适当常数),最适应于列联表属性数据。
一个例子:美国于1973年到1978年间授予哲学博士学位的数目
(美国人口调查局,1979)
![]() |
使用R的ca包
> x<-read.csv(file="bs.csv",head=TRUE)
> library(ca)
> a<-ca(x)
> a
#ca对象a的内容:
Principal inertias (eigenvalues): %主惯量(特征值)及贡献率
1 2 3 4 5
Value 0.003416 7.4e-05 4.8e-05 1.7e-05 1e-06
Percentage 96.06% 2.08% 1.35% 0.48% 0.03%
Rows: #行(样品)的结果
1 2 3 4 5 6
Mass 0.175601 0.169743 0.170077 0.165629 0.161004 0.157946
ChiDist 0.084783 0.052191 0.017941 0.027724 0.052149 0.087630
Inertia 0.001262 0.000462 0.000055 0.000127 0.000438 0.001213
Dim. 1 -1.437572 -0.870701 -0.253596 0.414733 0.876788 1.478397
Dim. 2 0.377779 0.341439 0.092096 -1.501658 -0.951500 1.658507
Columns: #列(变量)的结果
l p s b e m
Mass 0.242540 0.202643 0.179854 0.154461 0.160374 0.060128
ChiDist 0.028057 0.041826 0.014029 0.110180 0.070832 0.070263
Inertia 0.000191 0.000355 0.000035 0.001875 0.000805 0.000297
Dim. 1 0.441611 -0.706110 0.023125 1.882020 -1.204076 -1.093941
Dim. 2 0.940685 -0.281149 -1.325916 -0.150955 -0.426479 2.644450
#图形结果
> plot(a)
![]() |
#图中1—6 分别为1973至1978年
结果说明:6个行点和6个列点可分为3类,第一类为b,在1978年比例最大。第2类为s和l,在1975年至1977年比例随年度下降。第3类为p,e,m,它们在1973,1974年的比例最大。
参考:
[1] 高惠璇,应用多元统计分析
[2] Francois Husson,Exploratory Multivariate Analysis by Example Using R