1 |
x1 |
|
y1 |
|
x2 |
|
y2 |
|
xout |
|
outfun |
|
SEED |
|
nboot |
|
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 | ##---- 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 (x1, y1, x2, y2, xout = FALSE, outfun = outpro, SEED = TRUE,
nboot = 200, STAND = TRUE, ...)
{
if (SEED)
set.seed(2)
X = elimna(cbind(x1, y1, x2, y2))
x1 = as.matrix(x1)
x2 = as.matrix(x2)
p = ncol(x1)
p1 = p + 1
p2 = p + 2
p3 = p1 + p
p4 = p3 + 1
x1 = X[, 1:p]
y1 = X[, p1]
x2 = X[, p2:p3]
y2 = X[, p4]
n = length(y1)
if (xout) {
opf = identical(outfun, outpro)
if (!opf) {
flag1 = outfun(x1)$out.id
flag2 = outfun(x2)$out.id
}
if (opf) {
flag1 = outpro(x1, STAND = STAND)$out.id
flag2 = outfun(x2, STAND = STAND)$out.id
}
flag = unique(c(flag1, flag2))
if (length(flag) > 0)
X = X[-flag, ]
x1 = X[, 1:p]
y1 = X[, p1]
x2 = X[, p2:p3]
y2 = X[, p4]
}
nk = length(y1)
x1 = as.matrix(x1)
x2 = as.matrix(x2)
data <- matrix(sample(length(y1), size = length(y1) * nboot,
replace = TRUE), nrow = nboot)
bvec1 <- apply(data, 1, regboot, x1, y1, regfun = lsfit,
...)
bvec2 <- apply(data, 1, regboot, x2, y2, regfun = lsfit,
...)
dif = t(bvec1 - bvec2)
S = cov(dif)
est1 = lsfit(x1, y1)$coef
est2 = lsfit(x2, y2)$coef
est = est1 - est2
k <- (nk - p1)/((nk - 1) * p1)
stat <- k * crossprod(est, solve(S, est))[1, ]
pvalue <- 1 - pf(stat, p1, nk - p1)
list(test.statistic = stat, degrees_of_freedom = c(p1, nk -
p1), p.value = pvalue, est.1 = est1, est.2 = est2, estimate.dif = est)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.