PCA、PCoA、NMDS、Anosim R绘图

本文介绍了如何使用R语言进行多元统计分析,包括PCA、PCoA、NMDS和Anosim等方法,并提供了详细的操作步骤和参考链接,特别强调了R包vegan在PCA绘图中的应用,以及在R中正确运行ANOSIM进行样品组间差异显著性检测的关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于R包 

PCA R绘图 vegan

### 输入文件的格式处理
>head(dataT)
            sp1    sp2    sp3    sp4    ...
sample1    相对丰度
sample2
sample3
  ...

>dataTD=decostand(data,"hell")  ## 数据的标准化“采用total标准化以后再取平方根”
>pca1=rda(dataTD)          ## RDA冗余分析
>pc1=c(pca1$CA$eig/sum(pca1$CA$eig))[1]*100  ## 计算第一主成分
>pc2=c(pca1$CA$eig/sum(pca1$CA$eig))[2]*100  ## 计算第二主成分
##绘制散点图
>plot(pca1,display="si",scaling=1,type="n", main="")
>points(pca1, dis="si", scaling=1,col=c("#C1E168", "#C1E168", "#C1E168", "#FD9347" ),pch=c(15, 15, 15, 17 ),cex=1)
##legend("bottomright", legend=levels(groups$g1), col=mycol, =shape,bty="n",cex=0.8) ##添加图例
> ordispider(pca1,groups = groups$group,display = "si", scaling=1,col = mycol)
#添加辅助线,ordispider把项目组合至它们的(加权)类质心,ordiellpse画出类标准差、标准误差或者置信区域的椭圆。

PS:
head(groups)
samples group
sample1    A    
sample2    A
sample3    B
 ...

PCoA

data
### PCA NMDS 的特点与应用场景 #### 主成分分析(PCA) 主成分分析是一种线性降维技术,其核心思想是通过寻找数据中的最大方差方向来降低维度。PCA 基于协方差矩阵或相关系数矩阵计算特征向量特征值,从而提取主要成分并减少冗余信息[^1]。 - **优点** - 计算效率高,适合处理大规模数据集。 - 结果易于解释,能够清晰展示变量间的线性关系。 - 对噪声具有一定的鲁棒性,在某些情况下能有效过滤掉次要变化因素。 - **局限性** - 只适用于线性可分的数据结构,无法捕捉复杂的非线性模式。 - 当样本间的关系并非欧几里得距离定义时,可能失去部分重要信息。 #### 非度量多维标度法(NMDSNMDS 是一种基于秩次的距离排序方法,旨在尽可能保留原始数据中对象之间的相对顺序而非绝对距离。这种方法特别适合用于描述生态学或其他领域内的复杂相似性或差异性矩阵[^3]。 - **优点** - 能够更好地适应非欧氏空间下的数据分析需求。 - 更灵活地应对不同类型的输入数据(如 Bray-Curtis 相似性指数),尤其在生物多样性研究中有广泛应用。 - 在面对大量物种或样品的情况下表现更优,因为它的优化过程专注于维持等级关系而不是精确数值匹配[^2]。 - **局限性** - 参数调整较为繁琐,通常需要多次迭代才能获得满意的结果。 - 解释起来相对较难,因为它并不像 PCA 那样提供明确的方向性贡献率指标。 #### 应用场景对比 - 如果目标是对连续型测量值进行简化表示,并希望了解哪些变量驱动了整体变异,则可以选择 PCA 方法。 - 若关注的是离散类别标签或者高度非线性的关联模式识别问题,则推荐采用 NMDS 技术[^4]。 ```python import numpy as np from sklearn.decomposition import PCA from scipy.stats import rankdata from skbio.stats.ordination import nmds # Example of using PCA and NMDS on a dataset X with shape (n_samples, n_features) pca = PCA(n_components=2) X_pca = pca.fit_transform(X) stress, X_nmds = nmds(rankdata(distance_matrix), number_of_dimensions=2) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值