贵阳高端网站设计公司,广州购物商城网站开发,上海seo优化外包公司,网站制作服务订单一、主成分分析 主成分分析是多元统计分析的一种常用的降维方法#xff0c;它以尽量少的信息损失#xff0c;最大程度将变量个数减少#xff0c;且彼此间互不相关。提取出来的新变量成为主成分#xff0c;主成分是原始变量的线性组合。
1.1 KMO检验和Bartlett球形检验 在…一、主成分分析 主成分分析是多元统计分析的一种常用的降维方法它以尽量少的信息损失最大程度将变量个数减少且彼此间互不相关。提取出来的新变量成为主成分主成分是原始变量的线性组合。
1.1 KMO检验和Bartlett球形检验 在进行主成分分析和因子分析之前需要进行KMO和Bartlett球形检验。当KMO检验系数0.5Bartlett球形检验的P值0.05时数据才比较适合进行主成分分析或因子分析。这两个检验是用于检查变量的信息重叠度当检验通过时说明多变量相关性较大有信息重叠才会适合做主成分分析降低维度。 KMO检验的实现来自[R] KMO sampling adequacy and SPSS -- partial solution Bartlett球形检验使用psych包内的cortest.bartlett()函数
kmo()用法kmo(data)kmo()函数只需要输入标准化数据即可返回的overall为检验系数
cortest.bartlett()用法cortest.bartlett(R,nNULL,diagTRUE)其中参数R为相关阵 n为样本量即观测数量 diagT时将对角线矩阵换成1使其成为相关阵 例1 试对下列数据进行主成分分析 序号 省份 工资性收入 家庭性收入 财产性收入 转移性收入 1 北京 4524.25 1778.33 588.04 455.64 2 天津 2720.85 2626.46 152.88 79.64 3 河北 1293.50 1988.58 93.74 105.81 4 山西 1177.94 1563.52 62.70 86.49 5 内蒙古 504.46 2223.26 73.05 188.10 6 辽宁 1212.20 2163.49 113.24 201.28
注以上仅为部分表格 data2read.csv(Table_0.csv,encodingUTF-8)rownames(data2)data2[,1]data2data2[,-1]st.data2scale(data2) #标准化数据library(psych)source(kmo.R)kmo(st.data2)$overall #kmo检验
[1] 0.7404854cortest.bartlett(cor(st.data2),nrow(st.data2)) #巴特利特球形检验
$chisq
[1] 68.86313$p.value
[1] 6.992923e-13$df
[1] 6由检验结果可见kmo检验系数大于0.5Bartlett球形检验的P值极小 说明这个数据的变量信息重叠较多适合进行主成分分析和因子分析 1.2 主成分分析函数介绍 R语言中进行主成分分析的函数有自带的princomp()函数也有psych包内的principal()函数。两个函数虽然都是用于主成分分析但是两个函数会有所区别。本文会同时介绍两个函数
princomp()用法princomp(x,corFALSE,scoresTRUE,…)princomp()也有formula参数用法但是我们较少使用所以只介绍默认用法。 x是数据矩阵或数据框通常要先进行标准化 cor参数是一个逻辑值当corT时使用相关阵进行主成分分析默认corF此时用协差阵进行主成分分析 scores参数也是一个逻辑值表示是否计算主成分得分
principal()用法principal(r,nfactors1,rotate”varimax”,n.obsNA,scoresTRUE,…)r可以是数据矩阵或数据也可以是相关阵 rotate参数指定主成分旋转方法默认为最大方差法其他的方法还有 ”none”不进行旋转 “quartimax”、”promax”、”oblimin”、”simplimax”、”cluster” 简单的主成分分析的旋转方法除了”none”和”varimax”使用较多外其他都较少使用 scores参数的用法和princomp()函数里的scores参数相同都是表示是否计算主成分得分 n.obs是原始数据的样本量也就是观测的个数。当r是相关阵时需要指定n.obs但如果r是原始数据则不用指定 principal()与 princomp() 不同它只返回最佳主成分个数的子集。特征向量按特征值的开方重新缩放以产生在因子分析中更典型的分量载荷。principal()需要提前确定最佳主成分个数而princomp()是直接把所有主成分提取出来再通过方差累计贡献率确定主成分个数。所以在使用principal()进行主成分分析之前我们需要通过一些方法确定主成分的个数
1.3 确定主成分个数(principal) 提前确定主成分个数的方法无外乎画碎石图我们可以用同样来自于psych包内的fa.parallel()函数来确定。fa.parallel()不仅可以用于确定主成分个数也可以用于确定因子分析时因子的个数这个函数在下文的因子分析也有用到
fa.parallel()用fa.parallel(x,n.obsNULL,fm”minres”,fa”both”,…)x可以是数据矩阵或数据框也可以是相关阵 n.obs的用法和principal()内的n.obs用法相同也就是当x取相关阵时需要指定的观测个数 fm指定提取因子的方法默认为”minres”极小残差法。此外还可以选择 “ml”——极大似然法“pa”——主轴迭代法 “wls”——加权最小二乘法”gls”——广义最小二乘法 提取因子的方法用极大似然法计算会比较快但是在某些情况可能不收敛选用主轴迭代法会比较稳妥。这个主要在因子分析时会用到。 fa指定提取主成分还是因子fa”pc”时只提取主成分fa”fa”时只提取因子fa”both”时主成分和因子都提取 碎石图评估主成分个数的具体方法时查看高度为1的横线或两条红色虚线上方的散点个数。横线是特征值为1的高度红色虚线是随机数据矩阵的平均特征值。在主成分或因子个数增加的时候如果真实数据特征值低于随机数据的平均特征值这时候说明之后的因子或主成分没有保留的价值。 续上例 fa.parallel(st.data2,fmpa,fapc) #只确定主成分个数
Parallel analysis suggests that the number of factors NA and the number of components 1在随机数据平均特征值以上的只有第一特征值函数推荐保留一个主成分。但是第二个特征值离随机数据的平均特征值也不远而且到第三特征值的下降程度还比较大只保留一个主成分的建议还比较存疑。到底需不需要只保留一个主成分可以在主成分分析完后查看方差累计贡献率确定。 1.4 进行主成分分析 如果用princomp()进行主成分分析可以跳过前一步这个函数的主成分个数确定在主成分分析之后。而用principal()进行主成分分析则需要提前确定主成分个数。 对于princomp()的主成分分析结果需要用summary()函数获取各个主成分的方差、方差累计贡献率和载荷阵查看可以通过princomp对象的loadings组件获取也可以在summary()函数内加入loadings参数获取。 而principal()的主成分分析结果查看储存结果的变量可以获取大部分信息只查看载荷阵和方差累计贡献率也可以通过principal对象的loadings组件获取。 续上例 prc1princomp(st.data2,corT) #用princomp进行的主成分分析prc2principal(st.data2,nfactor1) #用principal进行的主成分分析summary(prc1,loadingsT) #查看princomp的主成分分析结果
Importance of components:Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 1.6221839 1.0039536 0.45568337 0.39108742
Proportion of Variance 0.6578701 0.2519807 0.05191183 0.03823734
Cumulative Proportion 0.6578701 0.9098508 0.96176266 1.00000000Loadings:Comp.1 Comp.2 Comp.3 Comp.4
工资性收入 0.582 0.314 0.749
家庭性收入 0.989 0.117
财产性收入 0.568 0.124 -0.806 -0.111
转移性收入 0.579 0.488 -0.651#Cumulative Proportion是方差累计贡献率
#可见在第二个主成分以及到达较高水平 prc2$loadings #查看principal对象的载荷阵和累计方差贡献率Loadings:PC1
工资性收入 0.944
家庭性收入 -0.102
财产性收入 0.921
转移性收入 0.939PC1
SS loadings 2.631
Proportion Var 0.658 #单个主成分的累计方差贡献率只有65.8%不高
#这说明自提取一个主成分有点不太合适
#再用principal进行两个主成分的主成分分析prc2principal(st.data2,nfactor2)prc2$loadingsLoadings:RC1 RC2
工资性收入 0.945
家庭性收入 0.998
财产性收入 0.928
转移性收入 0.931 -0.136RC1 RC2
SS loadings 2.622 1.018
Proportion Var 0.655 0.254
Cumulative Var 0.655 0.910 #两个主成分的累计贡献率达到91%的较高水平1.5 确定主成分个数(princomp) princomp()的主成分分析会提取所有主成分确定其主成分个数我们要从累计方差贡献率或碎石图确定。 对princomp对象使用summary()函数获取累计方差贡献率Cumulative Proportion就是累计方差贡献率通常取主成分个数使累计方差贡献率达到一个较高的百分数(如85%以上)。 确定princomp()的主成分个数也可以通过画碎石图确定画princomp对象碎石图的函数为screeplot()
screeplot()用法:screeplot(x,npcsmin(10,length(x$sdev)),typec(“barplot”,”lines”),…)x是princomp()的主成分分析结果 npcs是需要绘制的主成分个数默认取10和x全部主成分个数之间的最小值 type指定绘图的类型type”barplot”时绘制直方图type”line”时绘制折线图 这个函数绘制的碎石图没有随机数据的平均特征值作为参考。我们可以通过下降程度或绘制特征值为1的水平线来判断。再特征值1的水平线上的散点个数或者下降到一个较低水平的主成分之前的个数。 续上例
#prc1是princomp对象
#上文以通过summary()函数已经到两个主成分时到达了较高的累计贡献率screeplot(prc1,typeline)abline(1,0,colblue) #添加特征值1水平线由图看选取两个主成分是比较合适的
1.6 获取主成分得分以及进行综合评价 1.6.1 获取主成分得分 进行主成分分析的主要目的是对数据进行降维确定好主成分个数后可以通过scores组件获取原数据在各个主成分上的得分并用主成分的得分代替原变量进行其他分析 主成分的得分就是各个样品主成分的值主成分是标准化后的原始变量的线性组合将每个样品标准化原始变量的值代入主成分的表达式里也可以获得主成分得分。 princomp对象会返回所有主成分的得分我们只提取需要的前几个主成分得分即可 principal对象只返回m个主成分的得分m记为我们确定的主成分个数 续上例 head(prc1$scores[,1:2])Comp.1 Comp.2
北京 4.58987415 0.3734869
天津 0.28101544 1.7953881
河北 -0.44296144 0.3489825
山西 -0.65163291 -0.5607793
内蒙古 -0.60834766 0.7533096
辽宁 -0.05120586 0.6893062head(prc2$scores)RC1 RC2
北京 2.80352044 0.1472879
天津 0.30740034 1.7405353
河北 -0.24107468 0.3619058
山西 -0.43690909 -0.5169196
内蒙古 -0.31009603 0.7647188
辽宁 0.02183515 0.67578761.6.2 进行综合评价 另外我们可以利用主成分分析的得分对各个样品进行综合评价。主成分分析能从选定的指标体系中归纳出大部分信息根据主成分提供的信息进行综合评价是一种可行的选择。
每个样品的综合评价得分是主成分得分的加权和每个主成分的权重等于所属特征值除以m个特征根的和这里m指所选主成分个数。
对princomp()和principal()两个函数主成分分析结果进行综合评价的函数实现为如下该函数同时对每个样品的综合评价得分进行了排序
evaluationfunction(prin,dataNULL,nfactorNULL){#当prin是princomp返回的主成分分析结果时,data和nfactor不可缺#data是标准化数据用于获取特征值#nfactor是选择的主成分个数whichclass(prin)[length(class(prin))]if(whichprincomp) {if(is.null(data)|is.null(nfactor)) {print(需输入原始数据和主成分个数);stop()}else{valueseigen(cor(data))$values[1:nfactor]wvalues/sum(values);scoresprin$scores[,1:nfactor]}}#当prin是psych包内的principal函数返回的主成分分析结果时#特征值和主成分个数可以通过调用组件获取else if(whichprincipal) {scoresprin$scores;nfactorncol(scores)valuesprin$values[1:nfactor];wvalues/sum(values)}eva.scoresscores%*%wfinal.evaas.numeric(eva.scores)names(final.eva)rownames(eva.scores)sort(final.eva,T)
}续上例
#对各个样品进行综合评价source(“evaluation.R”)evaluation(prc1,st.data2,2)上海 北京 浙江 江苏 福建 天津 广东 黑龙江 4.0900564 3.4221571 2.1177097 0.8304684 0.7029739 0.7004168 0.6631721 0.3083484 吉林 辽宁 山东 河北 内蒙古 海南 西藏 湖南 0.1738328 0.1538769 0.0554438 -0.2236347 -0.2312404 -0.3985562 -0.4122491 -0.4853280 宁夏 重庆 四川 湖北 江西 山西 河南 新疆
-0.5463658 -0.6151700 -0.6180057 -0.6203514 -0.6264414 -0.6264713 -0.7128601 -0.7134170 青海 安徽 云南 陕西 广西 甘肃 贵州
-0.7150107 -0.7755070 -0.8726009 -0.9127242 -0.9854052 -1.0570477 -1.0700698 evaluation(prc2)上海 北京 浙江 天津 江苏 福建 黑龙江 2.08066022 2.06788405 1.59581510 0.70430316 0.60117700 0.58466717 0.37857458 广东 吉林 辽宁 山东 内蒙古 海南 河北 0.36999921 0.29433837 0.20294550 0.18165695 -0.01242897 -0.06809526 -0.07408087 湖北 新疆 湖南 江西 河南 四川 宁夏
-0.29972298 -0.32625842 -0.33136881 -0.38913165 -0.39577186 -0.42128328 -0.42511876 西藏 山西 重庆 安徽 青海 云南 广西
-0.44160741 -0.45906777 -0.46972445 -0.57218090 -0.58965530 -0.61776827 -0.69206531 陕西 甘肃 贵州
-0.78365886 -0.82534403 -0.86768814二、因子分析 因子分析和主成分分析有点相似但两种分析的出发点和结果都不同。主成分分析是试图寻找原变量的线性组合使得这个组合的方差最大使其携带的信息最多。因子分析是寻找对原变量都有影响的潜在变量这种潜在变量往往难以量化这个潜在变量称为公共因子公共因子可以赋予一定的现实意义。 R中进行因子分析的函数是psych包内的fa()函数。psych包内的部分函数在上文的主成分分析中也有介绍。这个函数进行的为R型因子分析Q型因子分析此处不做介绍。
2.1 KMO检验和Bartlett球形检验 在进行因子分析和主成分分析之前都需要进行KMO和Bartlett球形检验。这两个分析的介绍在上文的主成分分析已经给出此处不赘述 例2
对上一例题的数据进行因子分析
由上文进行主成分分析之前的kmo和Bartlett球形检验结果可知该数据适合做因子分析 2.2 确定因子个数 上文介绍了psych包内的fa.parallel()函数这个函数通过画原始数据和随机数据的碎石图来确定主成分或因子个数。我们令fa.parallel()的fa参数为”fa”这样绘制的是因子的碎石图用于确定因子个数 续上例 fa.parallel(st.data2,fmpa,fafa)
Parallel analysis suggests that the number of factors 1 and the number of components NA
There were 32 warnings (use warnings() to see them)函数建议的因子个数为1个从碎石图看也是1个比较合适。暂且先以1个因子进行因子分析 2.3 进行因子分析 进行因子分析需要用fa()函数
fa()用法fa(r,nfactors1,n.bos1,rotate”oblimin”,fm”minres”,…)这些参数与主成分分析中的principal()函数的参数用法相同 r为标准化数据或相关阵nfactors指定因子个数 n.bos指定样本量当r是相关阵时需要指定 rotate是因子旋转方法默认为”oblimin”斜交转轴法我们常用的是”varimax”最大方差法或”none”不旋转 fm指定提取公共因子的方法默认为”minres”极小残差法。此外还可以选择 “ml”——极大似然法“pa”——主轴迭代法 “wls”——加权最小二乘法”gls”——广义最小二乘法 fa()函数返回的分析结果有以下常用组件 communality——公共因子方差 values——特征根 loadings——载荷阵及因子方差贡献率 scores——因子得分 rot.mat——因子旋转矩阵 直接查看存储了因子分析结果的变量可以获取载荷阵、共同度等信息 续上例 FA1fa(st.data2,nfactors1,rotatevarimax,fmpa)FA1$loadingsLoadings:PA1 #根据载荷阵可以知道因子与哪些原始变量关系密切
工资性收入 0.928
家庭性收入 #家庭性收入的载荷太小不显示
财产性收入 0.866 #这可能导致因子解释不够充分
转移性收入 0.910PA1
SS loadings 2.444
Proportion Var 0.611 #一个因子只解释了原始数据61.1%的信息
#尝试提取两个公共因子FA2fa(st.data2,nfactors2,rotatevarimax,fmpa)FA2$loadingsLoadings:PA1 PA2
工资性收入 0.910
家庭性收入 0.396 #第二个公共因子对家庭性收入的载荷也不高
财产性收入 0.897
转移性收入 0.905 -0.291PA1 PA2
SS loadings 2.451 0.253
Proportion Var 0.613 0.063
Cumulative Var 0.613 0.676 #累计方差贡献率依然不高
#两个因子和一个因子对原始数据的解释程度相差不大
#这样只取一个因子会比较好2.4 构建新的指标体系以及获取得分 通过载荷阵查看公共因子与原始变量的载荷在一个公共因子上载荷较大的原始变量它与这个公共因子的关系会比较密切。我们可以根据载荷高的变量对公共因子赋予一定的现实意义以此构建新的指标体系 例如以高中各个学科成绩为原始变量的指标体系提取两个公共因子第一公共因子对数学、物理、化学的载荷较大第二公共因子对语文、英语、历史、政治的载荷较大那么我们可以将第一公共因子定义为理科能力第二公共因子定义为文科能力并将原始的指标体系简化为由理科能力和文科能力两个新指标组成 由于公共因子也是标准化原始数据的线性组合根据载荷可以计算出每个样品的因子得分。对fa()函数返回的因子分析结果我们也可以通过查看scores组件获得因子得分 续上例
#以FA1为例
#因为只有一个因子原始变量都是收入相关
#可以将公共因子定义为收入水平head(FA1$scores) #展示前6个样品的因子得分PA1
北京 2.520412846
天津 0.281677988
河北 -0.242683221
山西 -0.383635155
内蒙古 -0.347368818
辽宁 -0.009437811三、相应分析 相应分析又称为对应分析其是对两个定性变量的多水平进行相应研究查看它们之前的内在联系。相应分析也是联系R型因子分析和Q型因子分析的桥梁 相应分析基于计数列联表数据在R中进行简单相应分析可以用MASS包中的corresp()函数也可以用ca包中的ca()函数 以列联表出发进行简单相应分析的步骤很简单只需三步。一是对列联表进行独立性检验二是用相应分析的函数进行相应分析三是用画图函数画出相应分析图将各个水平在相应分析图中表示出来离得近的就是不同因素的比较类似的水平
3.1 构建列联表 有时候我们拿到的数据是每个观测的未分组数据此时我们需要用table()函数对每个水平进行计数构建列联表。
table()用法table(x,y,…)x与y就是我们需要进行计数的变量这两个变量通常需要先转化成因子 例3 试对1991 U.S.GSS数据中的race种族和Happy幸福进行相应分析 并说明它们两者的对应关系
sexraceregionhappylifesibs211111211212111102211922221214
注以上仅为部份表格 data3read.csv(1991 U.S. General Social Survey.csv)data3data3[,c(2,4)] #提取种族和幸福两个变量data3[,1]as.factor(data3[,1])data3[,2]as.factor(data3[,2])head(data3)race happy
1 1 1
2 1 2
3 1 1
4 1 9
5 2 2
6 2 2attach(data3)table3table(race,happy) #做列联表table3happy
race 1 2 3 91 409 730 117 82 46 116 39 33 12 26 9 23.2 独立性检验 进行相应分析前需要对行列因子进行独立性检验。如果行列独立说明这两个因素相互没有影响也就没有做相应分析的必要了。在R中进行独立性检验的函数主要是chisq.test()用的是皮尔逊卡方检验。此外还可以用Deducer包内的likelihood.test进行似然比独立性检验
chisq.test()用法chisq.test(x,yNULL,…)x可以是矩阵、数据框、表也可以是因子(factor)。当x是矩阵或数据框或表时内容应该是计数数据即x本质上应该是列联表此时是对列联表的行列因子进行独立性卡方检验 y是因子(factor)当x是列联表时可以忽略这个参数。当x和y都是因子时会对x和y的独立性进行检验。
likelihood.test()用法likelihood.test(x,yNULL,…)这个函数的用法与chisq.test()相同不过需要注意的是Deducer包的加载需要Java环境没有安装Java的电脑可能会加载失败 续上例 chisq.test(table3)Pearsons Chi-squared testdata: table3
X-squared 32.237, df 6, p-value 1.47e-05Warning message:
In chisq.test(table3) : Chi-squared approximation may be incorrect
#P值0.05但是给出了卡方近似可能有误的警告结果可能不可信
#更换检验函数使用Deducer包内的likelihood.test()
#这个函数进行似然比独立检验library(Deducer)likelihood.test(table3)Log likelihood ratio (G-test) test of independence without correctiondata: table3
Log likelihood ratio statistic (G) 27.146, X-squared df 6, p-value 0.0001359
#P值依然小于0.05说明种族与幸福确实不独立3.3 进行相应分析 进行简单相应分析可以使用MASS包内的corresp()函数也可以使用ca包中的ca()函数个人比较推荐使用ca()函数
corresp()用法corresp(x,nf1,…)或corresp(x,y,nf1,…)第一种用法中参数x是矩阵或数据框这个函数没有对表类(table类)对象的用法 第二种用法中x和y都是因子 nf指定提取公共因子数量也就是绘图时的维度只有当nf大于或等于2时才能绘制相应分析图通常都会取nf2 分析结果直接查看存储结果的变量即可
ca()用法ca(obj,…)obj可以是数据框、矩阵、表本质上是列联表 这个函数会算出相关矩阵的所有特征值也就是提取出所有公共因子我们可以根据特征值来看累计贡献率以此确定公共因子数。但是这对我们画图没有影响画图默认使用前两个公共因子 分析结果用summary()查看 续上例 CA1corresp(race,happy,nf2)CA2ca(table3)CA1
First canonical correlation(s): 0.13874525 0.04472209 x scores:[,1] [,2]
1 -0.4450141 0.04605089
2 2.0997831 -1.42379260
3 2.7375930 4.73970128y scores:[,1] [,2]
1 -0.81133437 0.4891867
2 -0.08354719 -0.2131040
3 2.37903773 -1.0140261
9 4.55423642 9.5915978summary(CA2)Principal inertias (eigenvalues):dim value % cum% scree plot 1 0.019250 90.6 90.6 *********************** 2 0.002000 9.4 100.0 ** -------- ----- Total: 0.021250 100.0 Rows:name mass qlt inr k1 cor ctr k2 cor ctr
1 | 1 | 833 1000 150 | -62 999 165 | 2 1 2 |
2 | 2 | 134 1000 563 | 291 954 593 | -64 46 273 |
3 | 3 | 32 1000 288 | 380 763 242 | 212 237 726 |Columns:name mass qlt inr k1 cor ctr k2 cor ctr
1 | 1 | 308 1000 191 | -113 964 203 | 22 36 74 |
2 | 2 | 575 1000 6 | -12 597 4 | -10 403 26 |
3 | 3 | 109 1000 568 | 330 981 616 | -45 19 112 |
4 | 9 | 9 1000 235 | 632 685 178 | 429 315 788 |
#CA1返回的是因子得分继续分析需要画相应分析图
#关心CA2的维度发现第二个维度已经解释了100%的方差3.4 画相应分析图 corresp对象的相应分析图可以用biplot()或plot()画出ca对象的相应分析图只能用plot()画出两个函数都是直接将相应分析结果放入第一个参数即可画出不多做介绍 续上例 par(mfrowc(1,2))biplot(CA1)plot(CA2)左图是corresp()函数对象的相应分析图 右图是ca()函数对象的相应分析图 红色的数字是幸福程度的水平黑色或蓝色的数字表示不同的人种两个相应分析图有些许不同但是都相似1号人种的幸福程度与1、2很近2号人种的幸福程度与3比较接近。左图的3号人种与幸福程度与9很接近而右图的3号人种与幸福程度3和9的距离差不多而且距离相对比较远3号人种的幸福程度既较多是3也较多是9
四、小结 对各项分析所用到的函数和应用场景进行总结
主成分分析因子分析函数应用场景函数应用场景kmo()开源获取kmo检验kmo()开源获取kmo检验cortest.bartlett()巴特利特球形检验与kmo检验搭配检查信息重叠度cortest.bartlett()巴特利特球形检验与kmo检验搭配检查信息重叠度princomp()主成分分析fa.parallel()画碎石图确定因子个数principal()psych包内的主成分分析fa()因子分析fa.parallel()画碎石图提前确定主成分个数对于principal对象screeplot()画碎石图确定主成分个数对于princomp对象evaluation()自编综合评价
相应分析函数应用场景table()做列联表chisq.test()独立性皮尔逊卡方检验likelihood.test()独立性似然比卡方检验corresp()简单相应分析(MASS)ca()简单相应分析(ca)plot()画相应分析图biplot()画相应分析图对于corresp对象