Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R_R_Analysis_Correlation - Fatal编程技术网

R

R,r,analysis,correlation,R,Analysis,Correlation,我正在使用R(和包CCA)并尝试对两个变量集(物种丰度和食物丰度分别存储为两个矩阵Y和X)进行正则化典型相关分析,其中单位数(N=15)小于矩阵中的变量数,即>400(其中大多数是潜在的)“解释性”变量,只有12-13个“响应”变量。Gonzalez等人(2008年)注意到,该软件包“包括CCA的规范化版本,用于处理变量多于单位的数据集”,这当然是我仅有的15个“单位”。“因此,我试图使用CCA软件包进行正则化典型相关分析,以查看变量集中的关系。我一直在关注Gonzalez等人(2008年)在论

我正在使用R(和包CCA)并尝试对两个变量集(物种丰度和食物丰度分别存储为两个矩阵Y和X)进行正则化典型相关分析,其中单位数(N=15)小于矩阵中的变量数,即>400(其中大多数是潜在的)“解释性”变量,只有12-13个“响应”变量。Gonzalez等人(2008年)注意到,该软件包“包括CCA的规范化版本,用于处理变量多于单位的数据集”,这当然是我仅有的15个“单位”。“因此,我试图使用CCA软件包进行正则化典型相关分析,以查看变量集中的关系。我一直在关注Gonzalez等人(2008年)在论文中所经历的过程。然而,我在chol.default(Bmat)中看到一条错误消息
error:12阶的前导小调不是正定的
,我不知道这意味着什么,也不知道该怎么办。这是代码,任何关于这个主题的想法或知识都将不胜感激

library(CCA)
correl <- matcor(X, Y)
img.matcor(correl, type = 2)
res.regul <- estim.regul(X, Y, plt = TRUE,
    grid1 = seq(0.0001, 0.2, l=51),
    grid2 = seq(0, 0.2, l=51))

Error in chol.default(Bmat) : the leading minor of order 12 is not positive definite
库(CCA)

correl您的X方差协方差矩阵不是正定的,因此在内部调用
fda::geigen
时会出现错误

包中有一个用于正则化CCA的类似函数,但我猜它会导致相同的错误消息,因为它基本上使用相同的方法(除了他们将
geigen
函数直接插入
rcc
函数)。我不记得我是如何让它与我的数据一起工作的,因为有一个相关的问题(但我会在再次找到我的旧代码后再查看它:-)

一种解决方案是使用广义Cholesky分解。(
gchol
;小心,它返回一个下三角矩阵)或(
sechol
)包中有一个。当然,这意味着修改函数内部的代码,但这并不是一个真正的问题,依我看。或者您可以尝试使用包中的
make.positive.definite
来生成Var(X)PD

作为替代,您可以考虑使用包,它为PLS(路径建模)和具有K块的CCA方法提供统一的接口。 典型相关分析(CCA)是一种探索性数据分析(EDA)技术,用于估计在同一实验单元上收集的两组变量之间的相关关系。通常,用户将有两个数据矩阵X和Y,其中行表示实验单位nrow(X)=nrow(Y)

在R中,基本包提供函数cancor()以启用CCA。这仅限于观察数量大于变量(特征)数量的情况,nrow(X)>ncol(X)

R软件包CCA是提供扩展CCA功能的几个软件包之一。包CCA围绕cancor()提供了一组包装函数,可以考虑特征计数超过实验单位计数的情况,ncol(X)>nrow(X)。Gonzalez等人(2008年)详细描述了工作原理。的1.2版(发布于2014-07-02)在撰写本文时是最新版本

可能还值得一提的是,在前面的回答中提到的包
亲属关系
准确性
不再托管在CRAN上

诊断 在跳转到其他软件包或对您的(想必来之不易的!)数据应用未知方法之前,尝试和诊断数据问题可能是有益的


传递给此处提到的任何CCA例程的矩阵在理想情况下应该是数字完整的(无缺失值)。传递给此处提到的任何CCA例程的矩阵在理想情况下应该是数字完整的(无缺失值)。程序估计的标准相关数将等于最小列秩X和Y,也就是说,我没有使用
CCA
软件包的经验,但您是否尝试过
vegan::CCA
?@Roman Luštrik,我还没有尝试过,谢谢您的建议。从我所看到的
vegan::cca
是规范对应分析,虽然略有不同,但可能仍然适用于我的数据。试着问一个问题。我的错!在这种情况下,您可能希望看到
?vegan::CCorA
library(CCA)
data(nutrimouse)
X <- as.matrix(nutrimouse$gene[,1:10])
Y <- as.matrix(nutrimouse$lipid)

cc(X,Y) ## works

X[,1] <- 2 * X[,9] ## column 9 no longer provides unique information

cc(X,Y)

Error in chol.default(Bmat) :
  the leading minor of order 9 is not positive definite
cc(X[,-9],Y) ## works
X <- scale(X)
res.regul <- estim.regul(X, Y, plt = TRUE,
                               grid1 = seq(0.0001, 0.2, l=51),
                               grid2 = seq(0, 0.2, l=51))
estim.regul(X,Y,plt=TRUE)