[英]Getting Error in chol.default(K) : the leading minor of order 5 is not positive definite with betareg
[英]Error in chol.default(Cxx) : the leading minor of order is not positive definite
我在R.它加載了一個相當簡單的腳本,在兩個數據幀,然后執行rCCA
與mixOmics
:
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? 所以我不知道該如何解決。
當您要處理的矩陣的某些特征向量不是正數(通常為零或在很小的閾值以下)時,就會發生錯誤。 從本質上講,這意味着您的數據太嘈雜/太小而無法估計完整的協方差矩陣。
正則化意味着(大約)添加一個懲罰項以使您的估計值遠離零(在這種情況下,使矩陣遠離具有非正特征向量的矩陣)。 如果您正則化參數( lambda1
, lambda2
)太小,那么你會得到錯誤。 由於您的grid1
和grid2
序列從零或很小的值開始,因此rCCA
會為這些太小的值而阻塞。
嘗試將grid1和grid2序列設置為從更大的值開始,例如
grid1 <- grid2 <- seq(0.05, 0.2, length=5)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.