1 |
x |
|
x1 |
|
x2 |
|
tr |
|
alpha |
|
pr |
|
opt |
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 | ##---- 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 = NULL, x1 = NULL, x2 = NULL, tr = 0.2, alpha = 0.05,
pr = TRUE, opt = 1)
{
if (is.null(x[1])) {
if (is.matrix(x1))
x = cbind(x1, x2)
if (is.list(x1))
x = c(x1, x2)
}
if (is.matrix(x))
x = listm(x)
crit = NA
n1 = NA
n2 = NA
if (is.matrix(x) || is.data.frame(x))
K2 = ncol(x)
if (is.list(x))
K2 = length(x)
K = floor(K2/2)
if (2 * K != K2)
stop("Total number of groups, K2, should be an even number")
ic = 0
ic2 = K
pv = NULL
for (i in 1:K) {
ic = ic + 1
ic2 = ic2 + 1
testit = yuen(x[[ic]], x[[ic2]], tr = tr, alpha = alpha)
n1[ic] = testit$n1
n2[ic] = testit$n2
pv[ic] = testit$p.value
}
pick = NULL
v = order(pv)
ic = 0
for (i in K:1) {
K2 = 2 * K
flag = TRUE
if (opt == 1) {
i2 = i * 2
if (i == K)
res = (0 - 2) * sum(log(pv))
if (i < K)
res = (0 - 2) * sum(log(pv[-pick]))
pvF = 1 - pchisq(res, i2)
}
if (opt == 2) {
if (i == K)
res = sum(qnorm(pv/2)^2)
if (i < K)
res = sum(qnorm(pv[-pick]/2)^2)
pvF = 1 - pchisq(res, i)
}
if (opt == 3) {
if (i == K)
res = max(pv)
if (i < K)
res = max(pv[-pick])
pvF = pbeta(res, i, 1)
}
if (pvF > alpha)
flag = TRUE
if (pvF <= alpha/(K + 1 - i)) {
ic = ic + 1
pick = c(pick, v[ic])
flag = FALSE
if (pv[v[ic]] > alpha)
flag = TRUE
}
if (flag)
break
}
Decision = rep("Not Sig", length(pv))
if (!is.null(pick))
Decision[pick] = "Reject"
nsig = sum(length(pick))
list(n1 = n1, n2 = n2, p.values = pv, Decisions = as.matrix(Decision),
num.sig = nsig)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.