qdmcpdif:

Usage Arguments Examples

Usage

1
qdmcpdif(x, con = 0, alpha = 0.05)

Arguments

x
con
alpha

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
##---- 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, alpha = 0.05) 
{
    if (is.data.frame(x)) 
        x = as.matrix(x)
    if (!is.matrix(x)) 
        x <- matl(x)
    if (!is.matrix(x)) 
        stop("Data must be stored in a matrix or in list mode.")
    con <- as.matrix(con)
    J <- ncol(x)
    xbar <- vector("numeric", J)
    x <- elimna(x)
    nval <- nrow(x)
    h1 <- nrow(x)
    df <- h1 - 1
    if (sum(con^2 != 0)) 
        CC <- ncol(con)
    if (sum(con^2) == 0) 
        CC <- (J^2 - J)/2
    ncon <- CC
    if (alpha == 0.05) {
        dvec <- c(0.05, 0.025, 0.0169, 0.0127, 0.0102, 0.00851, 
            0.0073, 0.00639, 0.00568, 0.00511)
        if (ncon > 10) {
            avec <- 0.05/c(11:ncon)
            dvec <- c(dvec, avec)
        }
    }
    if (alpha == 0.01) {
        dvec <- c(0.01, 0.005, 0.00334, 0.00251, 0.00201, 0.00167, 
            0.00143, 0.00126, 0.00112, 0.00101)
        if (ncon > 10) {
            avec <- 0.01/c(11:ncon)
            dvec <- c(dvec, avec)
        }
    }
    if (alpha != 0.05 && alpha != 0.01) 
        dvec <- alpha/c(1:ncon)
    if (sum(con^2) == 0) {
        psihat <- matrix(0, CC, 5)
        dimnames(psihat) <- list(NULL, c("Group", "Group", "psihat", 
            "ci.lower", "ci.upper"))
        test <- matrix(NA, CC, 5)
        dimnames(test) <- list(NULL, c("Group", "Group", "p-value", 
            "p.crit", "se"))
        temp1 <- 0
        jcom <- 0
        for (j in 1:J) {
            for (k in 1:J) {
                if (j < k) {
                  jcom <- jcom + 1
                  dv <- x[, j] - x[, k]
                  test[jcom, 5] <- msmedse(dv)
                  temp <- sintv2(dv, alpha = alpha/CC)
                  temp1[jcom] <- temp$p.value
                  test[jcom, 3] <- temp$p.value
                  psihat[jcom, 1] <- j
                  psihat[jcom, 2] <- k
                  test[jcom, 1] <- j
                  test[jcom, 2] <- k
                  psihat[jcom, 3] <- median(dv)
                  psihat[jcom, 4] <- temp$ci.low
                  psihat[jcom, 5] <- temp$ci.up
                }
            }
        }
        temp2 <- order(0 - temp1)
        zvec <- dvec[1:ncon]
        sigvec <- (test[temp2] >= zvec)
        if (sum(sigvec) < ncon) {
            dd <- ncon - sum(sigvec)
            ddd <- sum(sigvec) + 1
            zvec[ddd:ncon] <- dvec[ddd]
        }
        test[temp2, 4] <- zvec
    }
    if (sum(con^2) > 0) {
        if (nrow(con) != ncol(x)) 
            print("WARNING: The number of groups does not match the number of contrast coefficients.")
        ncon <- ncol(con)
        psihat <- matrix(0, ncol(con), 4)
        dimnames(psihat) <- list(NULL, c("con.num", "psihat", 
            "ci.lower", "ci.upper"))
        test <- matrix(0, ncol(con), 4)
        dimnames(test) <- list(NULL, c("con.num", "sig", "crit.sig", 
            "se"))
        temp1 <- NA
        for (d in 1:ncol(con)) {
            psihat[d, 1] <- d
            for (j in 1:J) {
                if (j == 1) 
                  dval <- con[j, d] * x[, j]
                if (j > 1) 
                  dval <- dval + con[j, d] * x[, j]
            }
            temp3 <- sintv2(dval)
            temp1[d] <- temp3$p.value
            test[d, 1] <- d
            test[d, 4] <- msmedse(dval)
            psihat[d, 2] <- median(dval)
            psihat[d, 3] <- temp3$ci.low
            psihat[d, 4] <- temp3$ci.up
        }
        test[, 2] <- temp1
        temp2 <- order(0 - temp1)
        zvec <- dvec[1:ncon]
        print(c(ncon, zvec))
        sigvec <- (test[temp2, 2] >= zvec)
        if (sum(sigvec) < ncon) {
            dd <- ncon - sum(sigvec)
            ddd <- sum(sigvec) + 1
            zvec[ddd:ncon] <- dvec[ddd]
        }
        test[temp2, 3] <- zvec
    }
    if (sum(con^2) == 0) 
        num.sig <- sum(psihat[, 4] > 0) + sum(psihat[, 5] < 0)
    if (sum(con^2) > 0) 
        num.sig <- sum(psihat[, 3] > 0) + sum(psihat[, 4] < 0)
    list(test = test, psihat = psihat, con = con, num.sig = num.sig)
  }

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