Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: Sample size for equivalence trials in Stata

From   Joseph Coveney <>
To   Statalist <>
Subject   Re: st: Sample size for equivalence trials in Stata
Date   Mon, 03 Oct 2005 20:44:47 +0900

Jannik Helweg-Larsen wrote (excerpted):

There is also the artmenu ado (findit artmenu: SJ5-1 st0013_1.  A
menu-driven facility for complex sample size calculation randomized
controlled trials  with a survival or a binary update) which is supposed to
provide non-inferiority sample size, however I haven't quite figured out
how- the program does not  seem accept two proportions of the same size..

The equivsize.ado by Philip Ryan is working very well- but should be limited
in situations when proportions are less than 0.2- I wonder if other Stata
based alternatives for calculating sample size  exists for e.g.
non-inferiority studies with small proportions (0.2)?


It seems that you wouldn't set the two proportions equal in using -artbin-
for a noninferiority trial, but rather set one of the proportions equal to
the assumed proportion of the reference treatment group and the other to the
test group proportion that is just-detectable as inferior under the null
hypothesis of inferiority.  In the example given in -help artbinlg-, the
reference group's proportion is 0.3 and the just-detectably worse
performance of the test group is at 0.2, an odds ratio of 0.58 or so.

Base upon off-the-cuff simulations below, you should be safe using -artbin-
even with a reference group proportion of 10% and a
just-detectable-inferior test proportion of 5% with odds ratio as the

You'd need to check with Philip Ryan to be sure, but -equivsize- looks like
it's based upon Blackwelder's* formula.  It's not necessarily intended to be
an endorsement of the practice, but a Web search turns up examples of sample
size estimation based upon the Blackwelder formula with proportions smaller
than 0.2 (larger than 0.8).

Joseph Coveney

*W. C. Blackwelder, Proving the null hypothesis in clinical trials.
_Controlled Clinical Trials_ 3:345-53, 1982.

program define arttest, rclass
    drop _all
    local 1 = `1' + mod(`1', 2)
    quietly {
        rndbin `1' `2' 1
        generate byte group = _n > _N / 2
        cs xb group, or /* woolf */
    return scalar lb_rd = r(lb_rd)
    return scalar lb_or = r(lb_or)
set more off
set seed0 `=date("2005-10-04", "ymd")'
foreach proportion_pair in "0.05 0.1" "0.2 0.3" {
    artbin, pr(`proportion_pair') ngroups(2) ///
      aratios(1 1) distant(0) ///
      alpha(0.05) power(0.8) onesided(0) ni(1)
    tokenize `"`r(altp)'"', parse(", ")
    local rd = `1' - `3'
    local or = `1' / (1 - `1') / (`3' / (1 - `3'))
    simulate lb_rd = r(lb_rd) lb_or = r(lb_or), ///
      reps(10000) nodots: arttest `r(n)' `3'
    generate byte is_noninferior_rd = lb_rd > `rd'
    generate byte is_noninferior_or = lb_or > `or'
    assert !mi(is_noninferior_or) & !mi(is_noninferior_rd)
    summarize is_noninferior_*

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index