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

posted by martin  – Austria, 2011-11-03 23:28 (4551 d 00:06 ago) – Posting: # 7600
Views: 7,135

(edited by martin 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
22,988 posts in 4,825 threads, 1,654 registered users;
85 visitors (0 registered, 85 guests [including 6 identified bots]).
Forum time: 00:34 CEST (Europe/Vienna)

The only way to comprehend what mathematicians mean by Infinity
is to contemplate the extent of human stupidity.    Voltaire

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