intersection-union test [General Sta­tis­tics]

posted by martin  – Austria, 2011-11-03 23:28 (4994 d 04:17 ago) – Posting: # 7600
Views: 8,511

(edited on 2011-11-04 14:16)

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.

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 ;-)) approach should also be applicable.

Complete thread:

UA Flag
Activity
 Admin contact
23,427 posts in 4,929 threads, 1,679 registered users;
29 visitors (0 registered, 29 guests [including 11 identified bots]).
Forum time: 04:45 CEST (Europe/Vienna)

No matter what side of the argument you are on,
you always find people on your side
that you wish were on the other.    Thomas Berger

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5