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语言实战】学习笔记 第十一章 对应分析的更多相关文章

  1. R语言可视化学习笔记之添加p-value和显著性标记

    R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline   上篇文章中提了一下如何通过ggpubr ...

  2. 【数据分析 R语言实战】学习笔记 第四章 数据的图形描述

    4.1 R绘图概述 以下两个函数,可以分别展示二维,三维图形的示例: >demo(graphics) >demo(persp) R提供了多种绘图相关的命令,可分成三类: 高级绘图命令:在图 ...

  3. 【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)

    3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The f ...

  4. 从零开始系列-R语言基础学习笔记之二 数据结构(二)

    在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...

  5. R语言实战读书笔记(二)创建数据集

    2.2.2 矩阵 matrix(vector,nrow,ncol,byrow,dimnames,char_vector_rownames,char_vector_colnames) 其中: byrow ...

  6. R语言的学习笔记 (持续更新.....)

    1. DATE 处理 1.1 日期格式一个是as.Date(XXX) 和strptime(XXX),前者为Date格式,后者为POSIXlt格式 1.2 用法:as.Date(XXX,"%Y ...

  7. 从零开始系列--R语言基础学习笔记之一 环境搭建

    R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...

  8. R语言实战读书笔记(三)图形初阶

    这篇简直是白写了,写到后面发现ggplot明显更好用 3.1 使用图形 attach(mtcars)plot(wt, mpg) #x轴wt,y轴pgabline(lm(mpg ~ wt)) #画线拟合 ...

  9. o'Reill的SVG精髓(第二版)学习笔记——第十一章

    第十一章:滤镜 11.1滤镜的工作原理 当SVG阅读器程序处理一个图形对象时,它会将对象呈现在位图输出设备上:在某一时刻,阅读器程序会把对象的描述信息转换为一组对应的像素,然后呈现在输出设备上.例如我 ...

随机推荐

  1. 纯css 图片自适应居中

    html 结构 <div class="container"> <div class="content"></div> &l ...

  2. 四、Chrome开发者工具详解(4)-Profiles面板

    摘自: http://www.cnblogs.com/charliechu/p/6003713.html

  3. 二、Chrome开发者工具详解(2)-Network面板

    摘自: http://www.cnblogs.com/charliechu/p/5981346.html

  4. CS231n 2016 通关 第三章-SVM 作业分析

    作业内容,完成作业便可熟悉如下内容: cell 1  设置绘图默认参数 # Run some setup code for this notebook. import random import nu ...

  5. 准备看的ros相关源码

    进程通信:lcm 导航:navigation 3D可视化工具:rviz Mobile Robot Programming Toolkit:mrpt 其他: 人体肌肉:simbody openslam ...

  6. CCF 201604-1 折点计数 (水题,暴力)

    问题描述 给定n个整数表示一个商店连续n天的销售量.如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点.其他的天都不是折点.如 ...

  7. Mol Cell Proteomics. |陈洁| 整合鸟枪法蛋白质组学中鉴定和定量的错误率

    大家好,本周分享的是发表在MCP上的一篇关于鸟枪蛋白质组学中的错误率的文章,题目是Integrated identification and quantification error probabil ...

  8. web框架原理,http 协议

    目录 web框架原理 web框架是什么东西 执行代码用浏览器访问一下 输出结果 http 协议 http 协议简介 http 协议概述 http 工作原理 http请求方法 http 状态码 url介 ...

  9. python 函数 之 用户注册register()

    db_path='db.txt' #定义默认文件路径,方便修改def get_uname(): while True: uname=input('请输入用户名:').strip() if uname. ...

  10. luoguP3808[模板]AC自动机(简单版)

    传送门 ac自动机模板题,裸的多串匹配 代码: #include<cstdio> #include<iostream> #include<algorithm> #i ...