[fbf06f]: / partyMod / inst / RR / Rieger_RF_NA / Simulationen2neu.R

Download this file

103 lines (83 with data), 5.0 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
##############################################################################
# #
# R-Code zur HiWi-Stelle #
# #
# Teil 4b: #
# Die Simulationen zu den zusätzlichen NA-Mechanismen #
# #
##############################################################################
# source("funktionenZuMV2class.R") bzw. source("funktionenZuMV2regres.R")
# vorher laden!
source("funktionenZumDGPneu.R")
source("funktionenZuRF2.R") # hier Unterschied!
#****************************************************************************#
#library("party", lib.loc = "~/lib/oldparty/")
#library("impute", lib.loc = "~/lib/impute/") # hier Unterschied!
set.seed(856329)
sigma <- list()
sigma[[1]] <- matrix(data = c( 1, 0.9, 0.9, 0.9, 0.9,
0.9, 1, 0.9, 0.9, 0.9,
0.9, 0.9, 1, 0.9, 0.9,
0.9, 0.9, 0.9, 1, 0.9,
0.9, 0.9, 0.9, 0.9, 1), byrow = TRUE, ncol = 5)
sigma[[2]] <- matrix(data = c( 1, 0.9, 0.9, 0, 0,
0.9, 1, 0.9, 0, 0,
0.9, 0.9, 1, 0, 0,
0, 0, 0, 1, 0.9,
0, 0, 0, 0.9, 1), byrow = TRUE, ncol = 5)
sigma[[3]] <- matrix(data = c( 1, 0.1, 0.1, 0.1, 0.1,
0.1, 1, 0.1, 0.1, 0.1,
0.1, 0.1, 1, 0.1, 0.1,
0.1, 0.1, 0.1, 1, 0.1,
0.1, 0.1, 0.1, 0.1, 1), byrow = TRUE, ncol = 5)
delete <- vector(mode = "list", length = 2)
delete[[1]] <- deleteLOG # hier Unterschied!
delete[[2]] <- deleteDEPy # hier Unterschied!
imp <- c(TRUE, FALSE)
foo <- function(RF = RF1, dgp = dgp1, ntest = 10000, dgpfun.niter = 500, ...) {
res <- NULL
for (si in 1:length(sigma)) {
# fuer jedes Korrelations-Design:
#--------------------------------
cat(" sigma =", si, "\n Es folgt der Test-Datensatz (kein RF). \n")
# Test-Datensatz generieren:
testds <- dgp(niter=1, n=ntest, sigma[[si]], ...)
# Goldstandard:
cat(" sigma =", si, "\n Es folgt der Goldstandard. \n")
gold <- RF(test = testds, nIter = dgpfun.niter, sigma = sigma[[si]], ...)
res <- rbind(res, cbind(gold, 0, si, TRUE, 0, FALSE, FALSE, FALSE))
for (di in 1:length(delete)) {
# fuer jeden NA-Mechanismus:
#---------------------------
# reduzierter Fall "-NA":
cat(" sigma =", si, ";", "delete =", di, "\n Es folgt der reduzierte Datensatz. \n")
worst <- RF(delete[[di]], test = testds, nIter = dgpfun.niter, sigma = sigma[[si]],
na.omit = TRUE, lernMV = TRUE, ...)
res <- rbind(res, cbind(worst, 0, si, TRUE, di, TRUE, FALSE, FALSE))
for (impute in imp) {
# fuer vorherige Imputation und Surrogat-Splits:
#-----------------------------------------------
cat(" sigma =", si, ";", "delete =", di, ";", "impute =", impute,
"\n Es folgen 3x", dgpfun.niter, "Datensaetze mit NA. \n")
# fehlende Werte in den Lern-Datensaetzen:
cat("lernMV: \n")
tmp <- RF(delete[[di]], test = testds, nIter = dgpfun.niter, sigma = sigma[[si]],
lernMV = TRUE, testMV = FALSE, imp = impute, ...)
res <- rbind(res, cbind(tmp, 0, si, FALSE, di, TRUE, FALSE, impute))
# fehlende Werte im Test-Datensatz:
cat("testMV: \n")
tmp <- RF(delete[[di]], test = testds, nIter = dgpfun.niter, sigma = sigma[[si]],
lernMV = FALSE, testMV = TRUE, imp = impute, ...)
res <- rbind(res, cbind(tmp, 0, si, FALSE, di, FALSE, TRUE, impute))
# fehlende Werte in den Lern-Datensaetzen und im Test-Datensatz:
cat("lerntestMV: \n")
tmp <- RF(delete[[di]], test = testds, nIter = dgpfun.niter, sigma = sigma[[si]],
lernMV = TRUE, testMV = TRUE, imp = impute, ...)
res <- rbind(res, cbind(tmp, 0, si, FALSE, di, TRUE, TRUE, impute))
}
}
}
colnames(res) <- c("risk", "dgp", "sigma", "bench", "MV", "lernMV", "testMV", "imput")
res
}
##############################################################################