Reference no: EM132277587
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)