0
10倍交差検証を行い、並列処理(parLapply)を使用してジョイントモデルのモデル性能を評価しようとしています。イムは、私はエラーメッセージが表示される理由を見つけるしようとしている: は次のようにリモートエラー(val)のチェックでエラーが発生しました:5ノードがエラーを生成しました:オブジェクトが見つかりません
コードが見えます「checkForRemoteErrorsでエラーが発生しました(valは):オブジェクトが見つからないウィーク ':5つのノードがエラーを生成」:
# Validation using 10-fold CV
library("parallel")
set.seed(123)
V <- 10
n <- nrow(dfC)
splits <- split(seq_len(n), sample(rep(seq_len(V), length.out = n)))
CrossValJM <- function (i) {
library("JM")
library("nlme")
trainingData <- dfL[!dfL$ID %in% i, ]
trainingData_ID <- trainingData[!duplicated(trainingData$ID), ]
testingData <- dfL[dfL$ID %in% i, ]
lmeFit <- lme(DA ~ ns(Week, 2), data = trainingData,
random = ~ ns(Week, 2) | ID)
coxFit <- coxph(Surv(TT_event, Event) ~ Gender * Age, data =
trainingData_ID,
x = TRUE)
jointFit <- jointModel(lmeFit, coxFit, timeVar = "Week")
pe <- prederrJM(jointFit, newdata = testingData, Tstart = 10,
Thoriz = 20)
auc <- aucJM(jointFit, newdata = testingData, Tstart = 10,
Thoriz = 20)
list(pe = pe, auc = auc)
}
cl <- makeCluster(5)
res <- parLapply(cl, splits, CrossValJM)
stopCluster(cl)
関数自体は受け入れられますが、クラスターコマンドを実行すると、関数内で与えられたオブジェクトを認識できないというエラーが発生します。または、parLapply関数を正しく使用していないのですか?
P.S:次のようにデータが見えます(DFLが長〜1000およびDFC〜200のデータフレームである):
dfL <- data.frame(ID = c(1, 1, 1, 2, 2, 3), DA = c(0.4, 1.8, 1.2, 3.2, 3.6, 2.8), Week = c(0, 4, 16, 4, 20, 8), Event = c(1, 1, 1, 0, 0, 1), TT_Event = c(16, 20, 8), Gender = c(0, 0, 0, 1, 1, 0), Age = c(24, 24, 24, 56, 56, 76))
dfC <- data.frame(ID = c(1, 2, 3, 4, 5, 6), DA = c(1.2, 3.6, 2.8, 2.4, 1.9, 3.4), Week = c(16, 20, 8, 36, 24, 32), Event = c(1, 0, 1, 1, 1, 0), TT_Event = c(16, 20, 8, 36, 24, 32), Gender = c(0, 1, 0, 0, 1, 1), Age = c(24, 56, 76, 38, 44, 50))
のthnx :)
ThnxF.Privé..しかし、上記の他の投稿を読んでください...既にこのようなものを試してみました – Oesj