1 |
x |
|
fac |
|
tr |
|
nboot |
|
SEED |
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 | ##---- 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 (x, fac, tr = 0.2, nboot = 100, SEED = TRUE)
{
library(MASS)
if (SEED)
set.seed(2)
x = fac2list(x, fac)
J <- length(x)
h <- vector("numeric", J)
w <- vector("numeric", J)
xbar <- vector("numeric", J)
pts = NULL
nval = 0
for (j in 1:J) x[[j]] = elimna(x[[j]])
for (j in 1:J) {
val <- x[[j]]
val <- elimna(val)
nval[j] = length(val)
pts = c(pts, val)
x[[j]] <- val
h[j] <- length(x[[j]]) - 2 * floor(tr * length(x[[j]]))
w[j] <- h[j] * (h[j] - 1)/((length(x[[j]]) - 1) * winvar(x[[j]],
tr))
xbar[j] <- mean(x[[j]], tr)
}
u <- sum(w)
xtil <- sum(w * xbar)/u
A <- sum(w * (xbar - xtil)^2)/(J - 1)
B <- 2 * (J - 2) * sum((1 - w/u)^2/(h - 1))/(J^2 - 1)
TEST <- A/(B + 1)
nu1 <- J - 1
nu2 <- 1/(3 * sum((1 - w/u)^2/(h - 1))/(J^2 - 1))
sig <- 1 - pf(TEST, nu1, nu2)
chkn = var(nval)
if (chkn == 0) {
top = var(xbar)
cterm = NULL
if (tr == 0)
cterm = 1
if (tr == 0.2)
cterm = 0.642
if (is.null(cterm))
cterm = area(dnormvar, qnorm(tr), qnorm(1 - tr)) +
2 * (qnorm(tr)^2) * tr
bot = winvar(pts, tr = tr)/cterm
e.pow = top/bot
}
if (chkn != 0) {
vals = 0
N = min(nval)
xdat = list()
for (i in 1:nboot) {
for (j in 1:J) {
xdat[[j]] = sample(x[[j]], N)
vals[i] = t1way.effect(xdat, tr = tr)$Var.Explained
}
}
e.pow = mean(vals, na.rm = TRUE)
}
list(TEST = TEST, nu1 = nu1, nu2 = nu2, p.value = sig, Var.Explained = e.pow,
Effect.Size = sqrt(e.pow))
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.