reg1way:

Usage Arguments Examples

Usage

1
reg1way(x, y, regfun = tsreg, nboot = 100, SEED = TRUE, xout = FALSE, outfun = outpro, STAND = TRUE, AD = FALSE, alpha = 0.05, pr = TRUE, ...)

Arguments

x
y
regfun
nboot
SEED
xout
outfun
STAND
AD
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
##---- 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, y, regfun = tsreg, nboot = 100, SEED = TRUE, xout = FALSE, 
    outfun = outpro, STAND = TRUE, AD = FALSE, alpha = 0.05, 
    pr = TRUE, ...) 
{
    if (pr) {
        if (!xout) 
            print("Might want to consider xout=T to  remove leverage points")
    }
    if (SEED) 
        set.seed(2)
    if (!is.list(x)) 
        stop("Argument x should have list mode")
    J = length(x)
    x = lapply(x, as.matrix)
    pchk = lapply(x, ncol)
    temp = matl(pchk)
    if (var(as.vector(temp)) != 0) 
        stop("Something is wrong. Number of covariates differs among the groups being compared")
    nv = NULL
    p = ncol(x[[1]])
    p1 = p + 1
    for (j in 1:J) {
        xy = elimna(cbind(x[[j]], y[[j]]))
        x[[j]] = xy[, 1:p]
        y[[j]] = xy[, p1]
        x[[j]] = as.matrix(x[[j]])
        nv = c(nv, nrow(x[[j]]))
    }
    nv.keep = nv
    if (xout) {
        temp = lapply(x, outfun, plotit = FALSE, STAND = STAND, 
            ...)
        for (j in 1:J) {
            x[[j]] = x[[j]][temp[[j]]$keep, ]
            y[[j]] = y[[j]][temp[[j]]$keep]
        }
    }
    x = lapply(x, as.matrix)
    K = p1
    est = matrix(NA, nrow = J, ncol = p1)
    grpnum = NULL
    for (j in 1:J) grpnum[j] = paste("Group", j)
    vlabs = "Intercept"
    for (j in 2:p1) vlabs[j] = paste("Slope", j - 1)
    dimnames(est) = list(grpnum, vlabs)
    ecov = list()
    ecovinv = list()
    W = rep(0, p1)
    gmean = rep(0, p1)
    for (j in 1:J) {
        est[j, ] = regfun(x[[j]], y[[j]], xout = FALSE, ...)$coef
        nv.keep[j] = nrow(x[[j]])
        vals = matrix(NA, nrow = nboot, ncol = p1)
        data <- matrix(sample(length(y[[j]]), size = length(y[[j]]) * 
            nboot, replace = TRUE), ncol = nboot)
        data = listm(data)
        bvec <- lapply(data, regbootMC, x[[j]], y[[j]], regfun, 
            ...)
        vals = t(matl(bvec))
        ecov[[j]] = var(vals)
        ecovinv[[j]] = solve(ecov[[j]])
        gmean = gmean + ecovinv[[j]] %*% est[j, ]
        W = W + ecovinv[[j]]
    }
    estall = solve(W) %*% gmean
    F = 0
    for (k in 1:K) {
        for (m in 1:K) {
            for (j in 1:J) {
                F = F + ecovinv[[j]][k, m] * (est[j, k] - estall[k]) * 
                  (est[j, m] - estall[m])
            }
        }
    }
    pvalad = NULL
    df = K * (J - 1)
    if (!xout || AD) {
        iden = diag(p1)
        Aw = 0
        for (j in 1:J) {
            temp = iden - solve(W) %*% ecovinv[[j]]
            tempsq = temp %*% temp
            Aw = Aw + (sum(diag(tempsq)) + (sum(diag(temp)))^2)/(nv[j] - 
                1)
        }
        Aw = Aw/2
        alval <- c(1:999)/1000
        for (i in 1:999) {
            irem <- i
            crit = qchisq(alval[i], df)
            critad = crit + (crit/(2 * df)) * (Aw + 3 * Aw * 
                crit/(df + 2))
            if (F < critad) 
                break
        }
        pvalad = 1 - irem/1000
    }
    pval = 1 - pchisq(F, df)
    crit = qchisq(1 - alpha, df)
    critad = NULL
    if (!xout || AD) 
        critad = crit + (crit/(2 * df)) * (Aw + 3 * Aw * crit/(df + 
            2))
    est = data.frame(est)
    hlabs = NULL
    vlabs = "Intercept"
    for (j in 1:J) hlabs[j] = paste("Group", j)
    for (j in 2:p1) vlabs[j] = paste("Slope", j - 1)
    dimnames(est) <- list(hlabs, vlabs)
    list(n = nv, n.keep = nv.keep, test.stat = F, crit.value = crit, 
        adjusted.crit = critad, p.value = pval, adjusted.p.value = pvalad, 
        est = est)
  }

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