kbcon:

Usage Arguments Examples

Usage

1
kbcon(x, con = 0, tr = 0.2, alpha = 0.05, pr = T)

Arguments

x
con
tr
alpha
pr

Examples

  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
##---- 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, con = 0, tr = 0.2, alpha = 0.05, pr = T) 
{
    if (is.matrix(x)) 
        x <- listm(x)
    if (!is.list(x)) 
        stop("Data must be stored in a matrix or in list mode.")
    con <- as.matrix(con)
    J <- length(x)
    h <- vector("numeric", J)
    w <- vector("numeric", J)
    xbar <- vector("numeric", J)
    for (j in 1:J) {
        xx <- !is.na(x[[j]])
        val <- x[[j]]
        x[[j]] <- val[xx]
        h[j] <- length(x[[j]]) - 2 * floor(tr * length(x[[j]]))
        w[j] <- ((length(x[[j]]) - 1) * winvar(x[[j]], tr))/(h[j] * 
            (h[j] - 1))
        xbar[j] <- mean(x[[j]], tr)
    }
    if (sum(con^2) == 0) {
        CC <- (J^2 - J)/2
        v1 = J - 1
        psihat <- matrix(0, CC, 6)
        dimnames(psihat) <- list(NULL, c("Group", "Group", "psihat", 
            "ci.lower", "ci.upper", "p.value"))
        test <- matrix(NA, CC, 6)
        dimnames(test) <- list(NULL, c("Group", "Group", "test", 
            "crit", "se", "df"))
        jcom <- 0
        for (j in 1:J) {
            for (k in 1:J) {
                if (j < k) {
                  jcom <- jcom + 1
                  df <- (w[j] + w[k])^2/(w[j]^2/(h[j] - 1) + 
                    w[k]^2/(h[k] - 1))
                  term = sqrt((J - 1) * (1 + (J - 2)/df))
                  test[jcom, 3] <- ((xbar[j] - xbar[k])/(term * 
                    sqrt(w[j] + w[k])))^2
                  sejk <- sqrt(w[j] + w[k])
                  test[jcom, 5] <- sejk
                  psihat[jcom, 1] <- j
                  psihat[jcom, 2] <- k
                  test[jcom, 1] <- j
                  test[jcom, 2] <- k
                  psihat[jcom, 3] <- (xbar[j] - xbar[k])
                  test[jcom, 6] <- df
                  crit = qf(1 - alpha, v1, df)
                  aterm = sqrt(crit) * term
                  test[jcom, 4] <- qf(1 - alpha, v1, df)
                  psihat[jcom, 4] <- (xbar[j] - xbar[k]) - aterm * 
                    sejk
                  psihat[jcom, 5] <- (xbar[j] - xbar[k]) + aterm * 
                    sejk
                  psihat[jcom, 6] <- 1 - pf(test[jcom, 3], v1, 
                    df)
                }
            }
        }
    }
    if (sum(con^2) > 0) {
        if (nrow(con) != length(x)) {
            stop("The number of groups does not match the number of contrast coefficients.")
        }
        v1 = nrow(con) - 1
        psihat <- matrix(0, ncol(con), 5)
        dimnames(psihat) <- list(NULL, c("con.num", "psihat", 
            "ci.lower", "ci.upper", "p.value"))
        test <- matrix(0, ncol(con), 5)
        dimnames(test) <- list(NULL, c("con.num", "test", "crit", 
            "se", "df"))
        df <- 0
        L = nrow(con)
        for (d in 1:ncol(con)) {
            psihat[d, 1] <- d
            psihat[d, 2] <- sum(con[, d] * xbar)
            sejk <- sqrt(sum(con[, d]^2 * w))
            test[d, 1] <- d
            df <- (sum(con[, d]^2 * w))^2/sum(con[, d]^4 * w^2/(h - 
                1))
            A = (L - 1) * (1 + (L - 2)/df)
            test[d, 2] <- (sum(con[, d] * xbar)/(sqrt(A) * sejk))^2
            crit = qf(1 - alpha, v1, df)
            test[d, 3] <- crit
            test[d, 4] <- sejk
            test[d, 5] <- df
            psihat[d, 3] <- psihat[d, 2] - sqrt(crit * A) * sejk
            psihat[d, 4] <- psihat[d, 2] + sqrt(crit * A) * sejk
            psihat[d, 5] <- 1 - pf(test[d, 2], v1, df)
        }
    }
    if (pr) {
        print("Note: confidence intervals are adjusted to control FWE")
        print("But p-values are not adjusted to control FWE")
    }
    list(test = test, psihat = psihat)
  }

musto101/wilcox_R documentation built on May 23, 2019, 10:52 a.m.