在邻域矩阵分析的主坐标中寻找每个主坐标(分量,轴等)所引起的变化

时间:2019-04-25 15:31:20

标签: eigenvalue covariance-matrix

在完成对数据集的pcnm分析之后,我可以调用所有轴并从分析中踢出新创建的标准值。但是,在将这些值进行多元回归或其他分析之前,我想知道每个轴上有多少变化。我试着告诉r踢出一个screeplot,足够了,但是没有运气。在进行此分析之前,我主要在SAS工作,因此我对R语言并不精通。下面的代码可以很好地工作,并且可以完成我需要做的所有事情,但是它并没有提供有关分析执行方式或分析结果如何的大量信息。因此,这里的底线是我想对每个组件所占的变化比例进行一些说明。谢谢大家的帮助。

根据vegan软件包手册,我曾尝试在R中使用用于其他排序分析的screeplot代码,但从未指定可用于pcnm。

#set working directory
setwd("G:/Cyprinodon_elegans")
#read in the data
loc<-read.csv("hydrologic_distances.csv",header=T)
attributes<-read.csv("balmorhea_locations.csv",header=T)
#have a look at the data
names(loc)
#pull only the values for origin, distination, and length
loc.go<-loc[,c(5,6,10)]
names(loc.go)
#create a matrix
loc.mat<-matrix(0,ncol=40,nrow=40)
loc.mat[cbind(loc.go$Origin,loc.go$Destination)]<-loc.go$Total_Length
#grab the row and column IDs
labels<-as.character(sort(unique(loc.go$Origin)))
rownames(loc.mat)<-labels
colnames(loc.mat)<-labels
#pull only the the lower right and make it a distance matrix
matrix2<-as.dist(loc.mat)
#load vegan library to run pcnm analysis
library(vegan)
#run pcnm
pcnm1<-pcnm(matrix2)
output<-as.data.frame(pcnm1$vectors)
output$UniqueID<-as.factor(as.character(row.names(output)))
output
#combine with other attributes
all.data<-cbind(attributes,output)
#plot the output
plot(all.data$Long,all.data$Lat)
ordisurf(all.data[,c(3:2)], scores(pcnm1, choi=1), bubble = 4, main = "PCNM 1")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=2), bubble = 4, main = "PCNM 2")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=3), bubble = 4, main = "PCNM 3")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=4), bubble = 4, main = "PCNM 4")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=5), bubble = 4, main = "PCNM 5")
#write the output
write.table(all.data,"PCNM.output.csv")

0 个答案:

没有答案