Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: power calculation graphs

From   "Airey, David C" <david.airey@Vanderbilt.Edu>
To   "" <>
Subject   Re: st: power calculation graphs
Date   Fri, 20 Aug 2010 09:48:39 -0500


While you can use -postfile-, you can also work directly with a Stata data file. Here's a simple example of making a power graph:


set obs 7 // make a data set of 7 observations

generate size = . // prepare variable for data

generate power = . // prepare variable for data

local i 1 // i is used to identify data rows

foreach power of numlist 0.50(0.10)0.90 0.99 { // set up a loop

	sampsi 9 13, sd1(2) sd2(4) power(`power') alpha(0.05)
	replace size = r(N_1) in `i' // add size result to data set
	replace power = `power'*100 in `i' // add power result to data set
	local i = `i' + 1 // increment to the next row
} // end the loop

graph twoway connected power size, /// 
	xlabel(0(5)25) mc(red) lc(red) // make a graph

graph export plot1.pdf, replace // Apple OS X only

Also, there are power(ful) articles in the Stata Journal:

Generalized power calculations for generalized linear models and more
R. Newson. 2004.
Stata Journal Volume 4 Number 4.

Power by simulation
A. H. Feiveson. 2002.
Stata Journal Volume 2 Number 2.

On Fri, Aug 20, 2010 at 8:54 AM, Nikolaos Pandis <> wrote:
> Hi to all.
> I was wondering if someone would be able to help me draw the following sample calculation graphs with Stata:
> 1. Two arm parallel trial, outcome binary.
> A power (y-axis) sample size (x-axis) calculation graph for various failure proportions between trial arms. For example, p1=0.80 and p2=0.85, or p1=0.80 p=0.90 or p1=0.80 p=0.95
> 2. Two arm parallel trial, outcome continuous.
> A power (y-axis) sample (x-axis) calculation graph for various failure proportions between trial arms. For example, m1= 100 and m2= 120 with equal sd1=sd2=10. It would be great if I could vary m1, m2, sd (always sd1=sd2)

You can do both of these using the -sampsi- command and could have
found this yourself by typing -search sample size- into Stata.

If you want to do the analysis for a range of values then you should
consider putting each call within a series of nested -forval- loops
and write the results to a file using -postfile- which you can then
read into Stata and draw the graphs you want.

I'll leave the actual coding of this as an exercise for you to work on ;-)


*   For searches and help try:

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