相应分析的R包ca和mca,cca,RDA的R实现整理

 对应分析(correspondence analysis, CA)是在因子分析的基础上发展起来的方法,通过对原始数据采用适当的标度方法,把R型因子分析(对变量)和Q型因子分析(对样品)结合起来,同时得到两方面的结果。对应分析是一种维度缩减方法,特别的,可以在同一因子平面上表现变量和样品,从而直观的揭示所研究的变量和样品之间的内在联系。
    因子分析最早由法国学者Benzecri (1973)提出,现已有广泛的应用,特别在社会科学研究,市场分析等领域,对应分析已经成为一种常用的数据分析方法。[1]

ca分析

用的数据是smoke

 none light medium heavy
SM    4     2      3     2
JM    4     3      7     4
SE   25    10     12     4
JE   18    24     33    13
SC   10     6      7     2

行是体重和列是人名

library(ca)

data("smoke")

ca(smoke)

即可查看ca分析的结果

names(ca(smoke)) 抽烟者姓名,即列名

summary(ca(smoke))

plot(ca(smoke))基本图形样式[2],plot中的map参数默认是symmetric即对称分布;具体格式可参考文章2

这里还是说一下吧

plot(x, dim = c(1,2), map = "symmetric", what = c("all", "all"),
mass = c(FALSE, FALSE), contrib = c("none", "none"),
col = c("#0000FF", "#FF0000"), pch = c(16, 1, 17, 24),
labels = c(2, 2), arrows = c(FALSE, FALSE), ...)
 
可选的图形参数
"symmetric" (default) 对称分布
"rowprincipal" 行数据为主
"colprincipal" 列数据为主
"symbiplot" 主成分分析的biplot绘图
"rowgab"
"colgab"
"rowgreen"行作为主坐标列作为标准坐标的情形
"colgreen"

plot(ca(smoke), mass = TRUE, contrib = "absolute",map = "rowgreen", arrows = c(FALSE, TRUE))

行作为主坐标列作为标准坐标的情形

三维图:

install.packages("rgl")

library(rgl)

plot3d.ca(ca(smoke, nd=3)) nd参数:Number of dimensions to be included in the output;即输出中包含的维度数目

################################################

多重相关分析:

引用数据:wg93 dataset
 
这个数据集是国际社会调查计划关于1993年环境的调查:德国西部地区的样本
作为调查记录的数据框,包含了关于科学态度的四个问题,各自对应一个5分的标度
(1=强烈同意,5=强烈反对),同时数据框中还有3个人口统计学变量:性别,年龄和教育程度。
 数据集大小 817x7

library(ca)
data("wg93")
mjca(wg93[,1:4])

head(wg93[,1:4])
  A B C D
1 2 3 4 3
2 3 4 2 3
3 2 3 2 4
4 2 2 2 2
5 3 3 3 3
6 3 4 4 5

绘图:plot( mjca(wg93[,1:4]))

#换Burt矩阵的方法再作一次
#先看看Burt矩阵:(共20行20列,这里是一部分)
#这个矩阵由anacor包的burtTable( )函数生成

summary(mjca(wg93[,1:4], lambda = "Burt"))

plot(mjca(wg93[,1:4], lambda = "Burt"))

貌似作图效果差异不大

######################################################3

ade4 :  cca介绍

典范对应分析(canonical correspondence analusis, CCA),是基于对应分析发展而来的一种排序方法,将对应分析与多元回归分析相结合,每一步计算均与环境因子进行回归,又称多元直接梯度分析。其基本思路是在对应分析的迭代过程中,每次得到的样方排序坐标值均与环境因子进行多元线性回归。CCA要求两个数据矩阵,一个是植被数据矩阵,一个是环境数据矩阵。首先计算出一组样方排序值和种类排序值(同对应分析),然后将样方排序值与环境因子用回归分析方法结合起来,这样得到的样方排序值即反映了样方种类组成及生态重要值对群落的作用,同时也反映了环境因子的影响,再用样方排序值加权平均求种类排序值,使种类排序坐标值值也简介地与环境因子相联系
library(ade4)

data(rpjdl)

rpjdl$mil
    ROCH C.25 C.50 C1 C2 C4 C8 C16
1     80    5    0  0  0  0  0   0
2     80   10    1  1  0  0  0   0
3      5   90    1  0  0  0  0   0
4     20   70    1  0  0  0  0   0
5     20   80    5  1  0  0  0   0

millog <- log(rpjdl$mil + 1)
iv1 <- cca(rpjdl$fau, millog, scan = FALSE)
plot(iv1)
s.corcircle(iv1$as)
s.label(iv1$c1, 2, 1, clab = 0.5, xlim = c(-4,4))
s.label(iv1$ls, 2, 1, clab = 0, cpoi = 1, add.p = TRUE) 加点
s.match(iv1$ls, iv1$li, 2, 1, clab = 0.5)
s.arrow(iv1$fa)
s.label(iv1$l1, 2, 1, clab = 0, cpoi = 1.5)
s.label(iv1$co, 2, 1, add.plot = TRUE)
s.distri(iv1$l1, rpjdl$fau, 2, 1, cell = 0, csta = 0.33)
s.label(iv1$co, 2, 1, clab = 0.75, add.plot = TRUE)  加表识
par(mfrow = c(1,2))
s.corcircle(iv1$cor, 2, 1) 
s.arrow(iv1$fa, 2, 1)
par(mfrow = c(1,1))

是由对应分析CA/RA修改而产生的新方法。它是把CA/RA和多元回归结合起来,每一步计算结果都与环境因子进行回归,而详细地研究植被与环境的关系。Braak把这一方法用于多元直接梯度分析,以区别前面简单的直接梯度分析。CCA要求两个数据 矩阵。一个是植被数据矩阵;一个是环境数据矩阵。不同于以前的直接梯度分析,CCA可以结合多个环境因子一起分析从而更好地反映群落与环境的关系。在种类和环境因子不特别多的情况下,CCA可以将样方排序,种类排序及环境因子排序表示在一个图上,可以直观地看出它们之间的关系。CCA的基本思路是在CA/RA迭代过程中,每次得到的样方坐标都要与环境因子相结合,其结合方式为 多元线性回归
(参见,《数量生态学》 张金屯

关键问题:

        (1)RDA或CCA的选择问题:RDA是基于线性模型,CCA是基于单峰模型。一般我们会选择CCA来做直接梯度分析。但是如果CCA排序的效果不太好,就可以考虑是不是用RDA分析。RDA或CCA选择原则:先用species-sample资料做DCA分析,看分析结果中Lengths of gradient 的第一轴的大小,如果大于4.0,就应该选CCA,如果3.0-4.0之间,选RDACCA均可,如果小于3.0, RDA的结果要好于CCA。

      (2)计算单个环境因子的贡献率:CCA分析里面所得到的累计贡献率是所有环境因子的贡献率,怎么得到每个环境因子的贡献率:生成三个矩阵,第一个是物种样方矩阵,第二个是目标环境因子矩阵,第三个是剔除目标环境因子矩阵后的环境因子矩阵。分别输入Canoco软件中,这样CCA分析得到的特征根贡献率即是单个目标环境因子的贡献率。

###################################

发现还有一个包,vegan

library(permute)
library(vegan)

vare.pca <- rda(varespec)
vare.pca

plot(vare.pca)

sum(apply(varespec, 2, var))

biplot(vare.pca, scaling = -1)

vare.pca <- rda(varespec, scale = TRUE)
vare.pca

plot(vare.pca, scaling = 3)

dim(varespec)



先列出来几篇文章

豆瓣的几篇博文,大概介绍了一下对应分析的ca包中的ca分析函数和mjca()函数,具体算法和具体参数的意思并没有细说

1 : http://www.douban.com/note/236615553/

2:http://www.douban.com/note/236880884/

3:http://www.douban.com/note/237832019/

典型相关分析

4:http://blog.csdn.net/statdm/article/details/7585113

5:http://blog.sina.com.cn/s/blog_b5c8908c0101eddd.html




http://www.cnblogs.com/medo/archive/2010/01/02/1637839.html



  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ggplot.acm 是一个用于实现多重对应分析 (MCA) 的 ggplot2 扩展。多重对应分析是一种多元数据分析方法,常用于研究因素间的关联和相互作用。 ggplot.acm 提供了一种在 R 语言环境中使用 ggplot2 语法进行 MCA 可视化分析的简单且灵活的工具。 ggplot.acm 提供了一些主要函数和方法,以帮助用户处理和分析多变量数据。用户可以利用这些函数对数据集进行预处理,如数据标准化、缺失值处理等。然后,用户可以使用 ggplot2 语法创建图形,并通过 ggplot.acm 提供的特殊图层函数将 MCA 分析结果添加到图形中。 ggplot.acm 支持在图形中展示多个变量之间的关系和交互作用。用户可以根据需要选择要显示的变量,并使用 ggplot2 的强大图形功能自定义图形样式。此外,ggplot.acm 还提供了一些额外的功能,如通过颜色、形状或尺寸来区分不同组别的变量,以及在图中添加标签和注释等。 ggplot.acm 的设计目标是使 MCA 变得更加容易理解和应用。它提供了一个直观且易于使用的界面,让用户可以通过探索数据和可视化结果来了解变量之间的关系。同时,ggplot.acm 还具有高度可定制性,用户可以根据自己的需求和偏好进行个性化设置。 总而言之,ggplot.acm 是一个能够简化 MCA 分析并提供多样化可视化效果的工具。它使用户能够更轻松地使用 ggplot2 进行多重对应分析,并通过丰富的图形功能更好地理解数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值