lincon:

Usage Arguments Examples

Usage

1
lincon(x, con = 0, tr = 0.2, alpha = 0.05, pr = TRUE, crit = NA, SEED = TRUE, KB = FALSE)

Arguments

x
con
tr
alpha
pr
crit
SEED
KB

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
##---- 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 = TRUE, crit = NA, 
    SEED = TRUE, KB = FALSE) 
{
    if (tr == 0.5) 
        stop("Use the R function medpb to compare medians")
    if (is.data.frame(x)) 
        x = as.matrix(x)
    if (KB) 
        stop("Use the function kbcon")
    flag <- T
    if (alpha != 0.05 && alpha != 0.01) 
        flag <- F
    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)
    sam = NA
    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]
        sam[j] = length(x[[j]])
        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
        if (CC > 28) 
            print("For faster execution time but less power, use kbcon")
        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
                  test[jcom, 3] <- abs(xbar[j] - xbar[k])/sqrt(w[j] + 
                    w[k])
                  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])
                  df <- (w[j] + w[k])^2/(w[j]^2/(h[j] - 1) + 
                    w[k]^2/(h[k] - 1))
                  test[jcom, 6] <- df
                  psihat[jcom, 6] <- 2 * (1 - pt(test[jcom, 3], 
                    df))
                  if (!KB) {
                    if (CC > 28) 
                      flag = F
                    if (flag) {
                      if (alpha == 0.05) 
                        crit <- smmcrit(df, CC)
                      if (alpha == 0.01) 
                        crit <- smmcrit01(df, CC)
                    }
                    if (!flag || CC > 28) 
                      crit <- smmvalv2(dfvec = rep(df, CC), alpha = alpha, 
                        SEED = SEED)
                  }
                  if (KB) 
                    crit <- sqrt((J - 1) * (1 + (J - 2)/df) * 
                      qf(1 - alpha, J - 1, df))
                  test[jcom, 4] <- crit
                  psihat[jcom, 4] <- (xbar[j] - xbar[k]) - crit * 
                    sejk
                  psihat[jcom, 5] <- (xbar[j] - xbar[k]) + crit * 
                    sejk
                }
            }
        }
    }
    if (sum(con^2) > 0) {
        if (nrow(con) != length(x)) {
            stop("The number of groups does not match the number of contrast coefficients.")
        }
        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
        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
            test[d, 2] <- sum(con[, d] * xbar)/sejk
            df <- (sum(con[, d]^2 * w))^2/sum(con[, d]^4 * w^2/(h - 
                1))
            if (flag) {
                if (alpha == 0.05) 
                  crit <- smmcrit(df, ncol(con))
                if (alpha == 0.01) 
                  crit <- smmcrit01(df, ncol(con))
            }
            if (!flag) 
                crit <- smmvalv2(dfvec = rep(df, ncol(con)), 
                  alpha = alpha, SEED = SEED)
            test[d, 3] <- crit
            test[d, 4] <- sejk
            test[d, 5] <- df
            psihat[d, 3] <- psihat[d, 2] - crit * sejk
            psihat[d, 4] <- psihat[d, 2] + crit * sejk
            psihat[d, 5] <- 2 * (1 - pt(abs(test[d, 2]), df))
        }
    }
    if (pr) {
        print("Note: confidence intervals are adjusted to control FWE")
        print("But p-values are not adjusted to control FWE")
        print("Adjusted p-values can be computed with the R function p.adjusted")
    }
    list(n = sam, test = test, psihat = psihat)
  }

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