R chol.default(Cxx)中的错误:顺序的前导小调不是正定的
我在R中有一个非常简单的脚本。它在两个数据帧中加载,然后使用R chol.default(Cxx)中的错误:顺序的前导小调不是正定的,r,statistics,R,Statistics,我在R中有一个非常简单的脚本。它在两个数据帧中加载,然后使用mixOmics执行rCCA: system('defaults write org.R-project.R force.LANG en_US.UTF-8') ## install.packages("mixOmics") library(mixOmics) TCIA <- read.csv("/Users/kimrants/Desktop/Data_for_R/TCIA", header=TR
mixOmics
执行rCCA
:
system('defaults write org.R-project.R force.LANG en_US.UTF-8')
## install.packages("mixOmics")
library(mixOmics)
TCIA <- read.csv("/Users/kimrants/Desktop/Data_for_R/TCIA",
header=TRUE,
sep=",",
stringsAsFactors=FALSE)
TCGA <- read.csv("/Users/kimrants/Desktop/Data_for_R/TCGA",
header=TRUE,
sep=",",
stringsAsFactors=FALSE)
# Remove first column (of ID)
df_TCGA <- TCGA[,-1] df_TCIA<- TCIA[,-1]
data.shrink <- rcc(X=df_TCIA, Y=df_TCGA, ncomp = 5, method = 'shrinkage')
plot(data.shrink, scree.type = "barplot")
grid1 <- seq(0, 0.2, length = 5)
grid2 <- seq(0.0001, 0.2, length = 5)
cv <- tune.rcc(df_TCIA, df_TCGA,
grid1 = grid1, grid2 = grid2, validation = "loo")
result <- rcc(df_TCIA, df_TCGA, ncomp = 5,
lambda1= cv$opt.lambda1, lambda2 = cv$opt.lambda2)
system('defaults write org.R-project.R force.LANG en_US.UTF-8')
##安装软件包(“mixOmics”)
图书馆(混合组学)
TCIA当您试图操作的矩阵的某些特征向量不是正的(通常为零,或低于某个非常小的阈值)时,就会出现您看到的错误;这本质上意味着,您的数据太嘈杂/太小,无法估计完整的协方差矩阵
正则化意味着(近似地)添加一个惩罚项以使估计值远离零(在本例中,将矩阵远离非正特征向量)。如果正则化参数(lambda1
,lambda2
)太小,则会出现错误。由于您的grid1
和grid2
序列从零或非常小的值开始,因此rCCA
将因这些太小的值而阻塞
尝试将grid1和grid2序列设置为从更大的值开始,例如
grid1 <- grid2 <- seq(0.05, 0.2, length=5)
grid1猜测:尝试将grid1
和grid2
序列设置为从一个更大的值开始,例如,grid1@BenBolker修复了它!非常感谢你。两件事:1)也许我是这里的新手。。。但你能解释一下这是怎么解决的吗?我不确定我是否理解监管背后的机制。2) 我得到这个警告:“检测到79个零标度的变量实例!”这是我应该做的事情吗?我不知道这些警告——对不起。