Question: Is it better in terms of Type I and Type II error to delete tied values or to use the midrank correction?

Use at least three different sample sizes, two different significance levels, two values of “d”, two different distributions, and 10% versus 30% tied values.

Use any test in Chapters 2 – 7 of the text, except for Wilcoxon rank sum, Siegel-Tukey, and two-sample t-test.

Useful code:

## Power for sign test vs. t-test if the distribution is normal

require(coin)

require(rmutil)

powerFun.norm <- function(n,d=1,p=0.5,alpha=0.05,sigma=1,nsims=1000)

{

pval.sign <- numeric(nsims)

pval.t <- numeric(nsims)

pval.wsr <- numeric(nsims)

for (i in 1:nsims) {

dat1 <- rnorm(n,mean=0,sd=sigma)

dat2 <- rnorm(n,mean=d,sd=sigma)

diff <- dat2-dat1

ts <- length(diff[diff > 0])

pval.sign[i] <- binom.test(ts,n)$p.value

pval.wsr[i] <- pvalue(wilcoxsign_test(dat2~dat1))

pval.t[i] <- t.test(diff)$p.value

}

power.sign <- length(pval.sign[pval.sign < alpha])/nsims

power.wsr <- length(pval.wsr[pval.wsr < alpha])/nsims

power.t <- length(pval.t[pval.t < alpha])/nsims

return(list(sign = power.sign, WSR = power.wsr, t=power.t))

}

powerFun.norm(10)

powerFun.norm(20)

# Underlying distribution is exponential

powerFun.exp <- function(n,d=0.5,p=0.5,alpha=0.05,sigma=1,nsims=1000)

{

pval.sign <- numeric(nsims)

pval.t <- numeric(nsims)

pval.wsr <- numeric(nsims)

for (i in 1:nsims) {

dat1 <- rexp(n,rate=1)

dat2 <- rexp(n,rate=d)

diff <- dat2-dat1

ts <- length(diff[diff > 0])

pval.sign[i] <- binom.test(ts,n)$p.value

pval.wsr[i] <- pvalue(wilcoxsign_test(dat2~dat1))

pval.t[i] <- t.test(diff, mu=1)$p.value

}

power.sign <- length(pval.sign[pval.sign < alpha])/nsims

power.wsr <- length(pval.wsr[pval.wsr < alpha])/nsims

power.t <- length(pval.t[pval.t < alpha])/nsims

return(list(sign = power.sign, WSR = power.wsr, t=power.t))

}

powerFun.exp(10)

powerFun.exp(20)

powerFun.dexp <- function(n,d=1,p=0.5,alpha=0.05,sigma=1,nsims=1000)

{

pval.sign <- numeric(nsims)

pval.t <- numeric(nsims)

pval.wsr <- numeric(nsims)

for (i in 1:nsims) {

dat1 <- rlaplace(n,m=0,s=sigma)

dat2 <- rlaplace(n,m=d,s=sigma)

diff <- dat2-dat1

ts <- length(diff[diff > 0])

pval.sign[i] <- binom.test(ts,n)$p.value

pval.wsr[i] <- pvalue(wilcoxsign_test(dat2~dat1))

pval.t[i] <- t.test(diff)$p.value

}

power.sign <- length(pval.sign[pval.sign < alpha])/nsims

power.wsr <- length(pval.wsr[pval.wsr < alpha])/nsims

power.t <- length(pval.t[pval.t < alpha])/nsims

return(list(sign = power.sign, WSR = power.wsr, t=power.t))

}

powerFun.dexp(10)

powerFun.dexp(20)