【数据分析 R语言实战】学习笔记 第十一章 对应分析
11.2对应分析
在很多情况下,我们所关心的不仅仅是行或列变量本身,而是行变量和列变量的相互关系,这就是因子分析等方法无法解释的了。1970年法国统计学家J.P.Benzenci提出对应分析,也称关联分析、R-Q型因子分析,其是一种多元相依变量统计分析技术。它通过分析由定性变量构成的交互汇总表,来揭示同一变量各类别之间的差异,以及不同变量各类别之间的对应关系,这是一种非常好的分析调查问卷的手段。
对应分析是一种视觉化的数据分析方法,其基木思想是将一个联列表的行和列中各元素的比例结构以点的形式在较低维的空间中表示出来,优点在于能够将几组看不出任何联系的数据,通过视觉上可以接受的定位图展现出来,使用起来直观、简单、方便,因此广泛应用于市场细分、产品定位、地质研究以及计算机工程等领域。
11.2.1理论基础
对应分析是寻求样木(行)与指标(列)之间联系的低维图示法,其关键是利用一种数据变换方法,使含有n个样本观测值和m个变量的原始数据矩阵x变成另一个矩阵z, z是一个过渡知阵,在接下来的计算中使用。通过z将样本和变量结合起来。
11.2.2 R语言实现
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,这样企业就完成了初步的市场定位。
【数据分析 R语言实战】学习笔记 第十一章 对应分析的更多相关文章
- R语言可视化学习笔记之添加p-value和显著性标记
R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline 上篇文章中提了一下如何通过ggpubr ...
- 【数据分析 R语言实战】学习笔记 第四章 数据的图形描述
4.1 R绘图概述 以下两个函数,可以分别展示二维,三维图形的示例: >demo(graphics) >demo(persp) R提供了多种绘图相关的命令,可分成三类: 高级绘图命令:在图 ...
- 【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)
3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The f ...
- 从零开始系列-R语言基础学习笔记之二 数据结构(二)
在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...
- R语言实战读书笔记(二)创建数据集
2.2.2 矩阵 matrix(vector,nrow,ncol,byrow,dimnames,char_vector_rownames,char_vector_colnames) 其中: byrow ...
- R语言的学习笔记 (持续更新.....)
1. DATE 处理 1.1 日期格式一个是as.Date(XXX) 和strptime(XXX),前者为Date格式,后者为POSIXlt格式 1.2 用法:as.Date(XXX,"%Y ...
- 从零开始系列--R语言基础学习笔记之一 环境搭建
R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...
- R语言实战读书笔记(三)图形初阶
这篇简直是白写了,写到后面发现ggplot明显更好用 3.1 使用图形 attach(mtcars)plot(wt, mpg) #x轴wt,y轴pgabline(lm(mpg ~ wt)) #画线拟合 ...
- o'Reill的SVG精髓(第二版)学习笔记——第十一章
第十一章:滤镜 11.1滤镜的工作原理 当SVG阅读器程序处理一个图形对象时,它会将对象呈现在位图输出设备上:在某一时刻,阅读器程序会把对象的描述信息转换为一组对应的像素,然后呈现在输出设备上.例如我 ...
随机推荐
- 获取当前正在运行的activity
adb shell dumpsys activity activities | findstr "Run"
- bzoj2962
线段树+卷积 这个东西直接算不太好,但是合并两段结果却很方便,假设c[i]表示选i个数乘积的和,那么$a[i]=\sum_{j=0}^{i}{b[j]*c[i-j]}$ 线段树维护即可 #includ ...
- sublimelinter-php 错误代码提示
先安装 SublimeLinter 如同其他插件一样使用 Package Control 来安装. 按下 Ctrl+Shift+p 进入 Command Palette 输入install进入 Pac ...
- u盘启动安装系统
七彩虹主板如何设置U盘启动,本文就以七彩虹CG41主板为例详细的讲讲U盘启动设置方法. 几天前,想用U盘启动的时候,发现CG41主板启动顺序里找不到USB项,Boot Device Priority( ...
- HDOJ-1021
Fibonacci Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- (2)ASP.NET Core 依赖关系注入(服务)
1.前言 面向对象设计(OOD)里有一个重要的思想就是依赖倒置原则(DIP),并由该原则牵引出依赖注入(DI).控制反转(IOC)及其容器等老生常谈的概念,初学者很容易被这些概念搞晕(包括我在内),在 ...
- 传统JDBC操作数据库
package com.jdbc.example; import java.sql.Connection; import java.sql.Date; import java.sql.DriverMa ...
- element走过的坑
1.想要更改表头颜色,只要在el-table里引入 :header-cell-style="{background:'red'}" 2.el-form自定义表单验证 , 但是左边不 ...
- Eclipse-Hadoop-Plugin编译
1 JDK配置 1.1 安装JDK 具体可以百度,网上教程很多,有JAVA开发环境的都是已经安装的. 1.2 配置环境变量 设置JAVA_HOME.CLASSPATH.PATH等.具体可以百度,有JA ...
- Unable to load script from assets 'index.android.bundle'.Make sure your bundle is packaged correctly or you're running a packager server
curl -k 'http://localhost:8081/index.android.bundle?platform=android' > android/app/src/main/asse ...