intersection-union test [General Statistics]
Dear HS!
A good „introduction“ to the intersection-union test (IUT) for hypothesis of equivalence is given in chapter 7.1 in Wellek (2010). I set up a simulation study to evaluate the power and the type I error when testing 3 hypothesis of equivalence simultaneously based on the IUT using a common CV and log-normal distributed random variables. I used identical magical margins (i.e. 0.8 to 1.25) for all three comparisons. I evaluated the power (2 scenarios) and the type I error (2 scenarios) for a parallel group design. You may find the code useful.
best regards
Martin
PS.: There are different definitions of power available when comparing more than 2 groups. I simulated the power for claiming equivalence for all three comparisons (i.e. overall equivalence) suitable for the IUT.
PPS.: I implemented the confidence interval inclusion approach but IMHO a SOST (six one-sided tests
) approach should also be applicable.
A good „introduction“ to the intersection-union test (IUT) for hypothesis of equivalence is given in chapter 7.1 in Wellek (2010). I set up a simulation study to evaluate the power and the type I error when testing 3 hypothesis of equivalence simultaneously based on the IUT using a common CV and log-normal distributed random variables. I used identical magical margins (i.e. 0.8 to 1.25) for all three comparisons. I evaluated the power (2 scenarios) and the type I error (2 scenarios) for a parallel group design. You may find the code useful.
library(gmodels)
set.seed(645326)
simfun <- function(mue, n, cv, nsim){
grp <- factor(c(rep('A', n[1]), rep('B', n[2]), rep('C', n[3])))
count <- 0
for(i in 1:nsim){
x <- c(rlnorm(n=n[1], meanlog=log(mue[1])-0.5*log(cv^2+1), sdlog=sqrt(log(cv^2+1))),
rlnorm(n=n[2], meanlog=log(mue[2])-0.5*log(cv^2+1), sdlog=sqrt(log(cv^2+1))),
rlnorm(n=n[3], meanlog=log(mue[3])-0.5*log(cv^2+1), sdlog=sqrt(log(cv^2+1))))
# contrasts of interest obtained by an ANOVA model using the pooled SE
mod <- lm(log(x) ~ 0 + grp)
res1 <- exp(estimable(mod, c(1,-1,0), conf.int=0.9)[c(6,7)])
res2 <- exp(estimable(mod, c(1,0,-1), conf.int=0.9)[c(6,7)])
res3 <- exp(estimable(mod, c(0,1,-1), conf.int=0.9)[c(6,7)])
if(res1[1] >= 0.8 & res1[2] <= 1.25 &
res2[1] >= 0.8 & res2[2] <= 1.25 &
res3[1] >= 0.8 & res3[2] <= 1.25){count <- count + 1}
}
return(count/nsim)
}
# set parameters for simulation
n <- c(20,20,20)
cv <- 0.2
nsim <- 1E3
# equivalent scenarios: probability for showing overall equivalence
simfun(mue=c(1, 1, 1), n=n, cv=cv, nsim=nsim)
simfun(mue=c(1.05, 1.05, 1), n=n, cv=cv, nsim=nsim)
# inequivalent scenarios: probability for erroneously showing overall equivalence
simfun(mue=c(1, 1, 0.8-1E-16), n=n, cv=cv, nsim=nsim)
simfun(mue=c(1, 1.1251, 0.9), n=n, cv=cv, nsim=nsim)
best regards
Martin
PS.: There are different definitions of power available when comparing more than 2 groups. I simulated the power for claiming equivalence for all three comparisons (i.e. overall equivalence) suitable for the IUT.
PPS.: I implemented the confidence interval inclusion approach but IMHO a SOST (six one-sided tests

Complete thread:
- Two-stage (any method) and multiplicity Helmut 2011-10-30 17:36 [General Statistics]
- Two-stage (any method) and multiplicity ElMaestro 2011-10-30 18:26
- Dose-dependent PK Helmut 2011-11-02 22:30
- Dunnett not for continuous scales? Really? d_labes 2011-11-01 11:11
- Yes, yes – but another construction site Helmut 2011-11-02 22:18
- PowerTOST help d_labes 2011-11-03 13:18
- PowerTOST help (solved) Helmut 2011-11-03 14:28
- intersection-union testmartin 2011-11-03 22:28
- IUT and Dunnett: code for comparison of power martin 2011-11-05 23:43
- PowerTOST help d_labes 2011-11-03 13:18
- Yes, yes – but another construction site Helmut 2011-11-02 22:18
- Two-stage (any method) and multiplicity ElMaestro 2011-10-30 18:26