1 |
m1 |
|
m2 |
|
nullv |
|
cop |
|
MM |
|
SEED |
|
nboot |
|
plotit |
|
STAND |
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 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (m1, m2, nullv = rep(0, ncol(m1)), cop = 3, MM = FALSE,
SEED = NA, nboot = 500, plotit = TRUE, STAND = TRUE)
{
if (ncol(m1) != ncol(m2)) {
stop("Number of variables in group 1 does not equal the number in group 2.")
}
if (is.na(SEED))
set.seed(2)
m1 <- elimna(m1)
m2 <- elimna(m2)
n1 <- nrow(m1)
n2 <- nrow(m2)
n <- min(c(n1, n2))
crit.level <- 0.05
if (n <= 120)
crit.level <- 0.045
if (n <= 80)
crit.level <- 0.04
if (n <= 60)
crit.level <- 0.035
if (n <= 40)
crit.level <- 0.03
if (n <= 30)
crit.level <- 0.025
if (n <= 20)
crit.level <- 0.02
val <- matrix(NA, ncol = ncol(m1), nrow = nboot)
for (j in 1:nboot) {
data1 <- sample(n1, size = n1, replace = TRUE)
data2 <- sample(n2, size = n2, replace = TRUE)
mm1 <- m1[data1, ]
temp <- outpro(mm1, plotit = FALSE, cop = cop, STAND = STAND)$keep
v1 <- apply(mm1[temp, ], 2, mean)
mm2 <- m2[data2, ]
temp <- outpro(mm2, plotit = FALSE, cop = cop, STAND = STAND)$keep
v2 <- apply(mm2[temp, ], 2, mean)
val[j, ] <- v1 - v2
}
temp <- pdis(rbind(val, nullv))
sig.level <- sum(temp[nboot + 1] < temp[1:nboot])/nboot
if (ncol(m1) == 2 && plotit) {
print("plotting")
plot(val[, 1], val[, 2], xlab = "VAR 1", ylab = "VAR 2")
temp3 <- smean(m1, cop = cop) - smean(m2, cop = cop)
points(temp3[1], temp3[2], pch = "+")
ic <- round((1 - crit.level) * nboot)
temp <- pdis(val)
temp.dis <- order(temp)
xx <- val[temp.dis[1:ic], ]
xord <- order(xx[, 1])
xx <- xx[xord, ]
temp <- chull(xx)
lines(xx[temp, ])
lines(xx[c(temp[1], temp[length(temp)]), ])
}
list(p.value = sig.level, crit.level = crit.level)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.