简介
(Correspondence Analysis, CA)
三种关系:
- Q型:样品 间
- R型:变量 间
- 对应型:样品 与 变量 间
Q:对应分析 比较 因子分析? A:因子分析中,可用较少公共因子 来提取 样本数据 绝大部分信息,以便通过较少因素而获得足够信息, 缺点:对于R型、Q型因子分析,即对 变量、样本 分别做因子分析,并没有考虑变量与样本间联系,损失了一部分信息。 而且,在实际问题中,样本数目远大于变量数目,在Q型因子分析时,计算量远大于R型因子分析。 对应分析就是 通过 数学变换,把 Q型 、R型 因子分析 结合起来
卡方效验
- H_0: 相互独立
- H_1: 相互影响(不独立)
library(openxlsx)
d10.1 = read.xlsx('../Res/mvstats5.xlsx', 'd10.1', rowNames=T)
chisq.test(d10.1) # 卡方效验
# PS:chi 卡 s 方 q 查询
有结果可知:
由于 X-squared=118.1
,p-value<0.001
,所以 拒绝原假设 H_0
,接受 H_1
,认为因素A和因素B不独立
,
即收入与满意度 之间 有密切联系,可以进一步做对应分析。
注意:
相关性 与 独立 不是一回事
相关性检验 仅表 线性相关,对于非线性无作用
对应分析
代码语言:javascript复制library(ca)
cal = ca(d10.1)
summary(cal)
代码语言:javascript复制value 为特征值,cum% 为累积贡献率
cal$rowcoord # 行坐标
代码语言:javascript复制Q型因分、因子载荷矩阵(loadings)
cal$colcoord # 列坐标
R型因分
根据上述数据 作 对应分析图
代码语言:javascript复制plot(cal)
见图,相似的类会聚在一起,
对应图分析
据上图 可 将 样本点、变量 分为 3组:
- 变量:< 1 万 样品:有些不满、很不满意
- 变量:1 万 - 3 万、 3 万 - 5万 样品:比较满意
- 变量:5 万 - 10万、>10万 样品:很满意
例 10.2
对应分析
代码语言:javascript复制d10.2 = read.xlsx('../Res/mvstats5.xlsx', 'd10.2', rowNames=T)
ca2 = ca(d10.2);ca2
对应分析图
代码语言:javascript复制plot(ca2)
代码语言:javascript复制summary(ca2)
案例
代码语言:javascript复制对应分析在农民收入分析中的应用
library(openxlsx)
Case10 = read.xlsx('../Res/mvcase5.xlsx', 'Case10', rowNames=T);Case10
代码语言:javascript复制C10d.1 = Case10[1:6,] # 文化程度数据
chisq.test(C10d.1)
代码语言:javascript复制C10d.2 = Case10[7:13,] # 总收入数据
chisq.test(C10d.2)
代码语言:javascript复制library(ca)
Ca1 = ca(C10d.1);summary(Ca1)
代码语言:javascript复制Ca1$rowcoord[,1:2]
Ca1$colcoord[,1:2]
代码语言:javascript复制plot(Ca1)
图10-2
代码语言:javascript复制据图 可将 样品 与 变量 分为三类:
Ca2 = ca(C10d.2);summary(Ca2)
代码语言:javascript复制Ca2$rowcoord[,1:2]
Ca2$colcoord[,1:2]
代码语言:javascript复制plot(Ca2)
据图 可将 广东省农民 的收入来源与收入水平 的 相关关系 分为三类
补充
R语言中 数据标准化 scale()
默认,scale()
对矩阵或数据框 的指定列 进行 均值为0、标准差为1 的标准化
newdata <- scale(mydata)
- 对每一列 进行 任意均值和标准差 的标准化
newdata <- scale(mydata)*SD M
M: 想要的均值
SD: 想要的标准差
注意:在非数值型的列上使用scale() 将会报错
- 对指定列 而不是 整个矩阵 或 数据框 进行标准化,使用下方代码 此句 将变量 myvar 标准化为均值 50、标准差为 10 的变量
newdata <- transform(mydata, myvar = scale(myvar)*10 50)
经数据标准化后(均值0,标准差1 -> 方差1),协方差矩阵 等同 相关系数矩阵 标准差 就是 方差开根号 理由如下:
毫无疑问,分母 也可理解为 X的标准差 × Y的标准差
而经数据标准化后,标准差为1,所以此时分母为1,相关系数=协方差
标准化: 消除 列间 量纲差异,无法消除(行间)样本间 量纲差异
独立性效验 仅 判 因素A和因素B是否 独立,若 A、B独立,则 无需 进行 对应分析 这里 因素A、因素B 是 二维列联表 后 因素, 因素A 即 行因素(样本),因素B 即 列因素(指标/特征)
相关性检验 仅是说 线性相关,不能判非线性。 相关与独立不是一回事
参考
感谢帮助!
- 如何通俗易懂地解释「协方差」与「相关系数」的概念?
- 《多元统计分析与R语言建模》王斌会
- 《R语言实战》Robert I. Kabacoff
- 本文作者: yiyun
- 本文链接: https://moeci.com/posts/分类-数据分析/分类-杂记/correspondence-analysis/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!