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

Re: st: sample size


From   Joseph Coveney <[email protected]>
To   Statalist <[email protected]>
Subject   Re: st: sample size
Date   Thu, 06 Jan 2005 19:56:23 +0900

Kazi Mizanur Rahman wrote:

The baseline proportion of a an event was 0.9.
We assume that after providing an intervention in one group for a particular
time period we get the proportion as 0.5. We also have a comparison group
that receives no intervention. After that particular time period the
proportion becomes 0.8 in the comparison group. How to calculate the sample
size with 80% power and alpha .05 ?

--------------------------------------------------------------------------------

There are undoubtedly some analytical solutions to this power analysis, but 
have you considered simulation?  See A. H. Feiveson, Power by simulation. 
_The Stata Journal_ 2(2):107-24, 2002. ( www.stata-journal.com/sj2-2.html for 
an abstract.)  Something analogous to the do-file below might be worth 
considering.  You'd need to take into account any assumptions regarding 
within-subject correlation, if your study design calls for repeated 
measurements.

Joseph Coveney

clear
set more off
set seed `=date("2005-01-06", "ymd")'
*
program define kazisim, rclass
    replace res0 = uniform() < 0.9
    replace res1 = uniform() < (0.8 - `1' * trt * 0.3)
    logit res1 res0 trt, nolog
    test trt
    return scalar p = r(p)
end
* Power (under the alternative hypothesis)
forvalues samplesize = 50(10)100 {
    display in smcl as result "`samplesize'"
    clear
    quietly set obs `samplesize'
    generate byte trt = _n > _N / 2
    quietly generate byte res0 = .
    quietly generate byte res1 = .
    simulate "kazisim 1" p = r(p), reps(1000)
    generate byte pos = (p < 0.05)
    summarize pos
}
* Test size (under the null hypothesis)
forvalues samplesize = 50(10)100 {
    display in smcl as result "`samplesize'"
    clear
    quietly set obs `samplesize'
    generate byte trt = _n > _N / 2
    quietly generate byte res0 = .
    quietly generate byte res1 = .
    simulate "kazisim 0" p = r(p), reps(1000)
    generate byte pos = (p < 0.05)
    summarize pos
}
exit

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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