У меня довольно простой скрипт в 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? Так что я не знаю, как это исправить ..