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

posted by martin  – Austria, 2011-11-03 23:28 (4931 d 01:37 ago) – Posting: # 7600
Views: 8,270

(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,424 posts in 4,927 threads, 1,667 registered users;
79 visitors (0 registered, 79 guests [including 6 identified bots]).
Forum time: 02:05 CEST (Europe/Vienna)

My doctor gave me six months to live,
but when I couldn’t pay the bill
he gave me six months more.    Walter Matthau

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