簡體   English   中英

chol.default(Cxx)中的錯誤:順序的前導未定是肯定的

[英]Error in chol.default(Cxx) : the leading minor of order is not positive definite

我在R.它加載了一個相當簡單的腳本,在兩個數據幀,然后執行rCCAmixOmics

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)

但是,執行倒數第二行時,出現此錯誤:

chol.default(Cxx)中的錯誤:4階前導未成年人不是肯定的

我已經訪問了類似錯誤的文檔: http : //mixomics.org/faq/parameters-tuning/

在這里,它說:“這很可能在遇到奇異矩陣時發生,其中兩個數據集的變量總數遠大於樣本數。我們建議使用正則化CCA”……但我已經在使用RCCA? 所以我不知道該如何解決。

當您要處理的矩陣的某些特征向量不是正數(通常為零或在很小的閾值以下)時,就會發生錯誤。 從本質上講,這意味着您的數據太嘈雜/太小而無法估計完整的協方差矩陣。

正則化意味着(大約)添加一個懲罰項以使您的估計值遠離零(在這種情況下,使矩陣遠離具有非正特征向量的矩陣)。 如果您正則化參數( lambda1lambda2 )太小,那么你會得到錯誤。 由於您的grid1grid2序列從零或很小的值開始,因此rCCA會為這些太小的值而阻塞。

嘗試將grid1和grid2序列設置為從更大的值開始,例如

grid1 <- grid2 <- seq(0.05, 0.2, length=5)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM