Compute the power of the two-sample test for proportions, or determine parameters to obtain a target power.
power.prop.test(n = NULL, p1 = NULL, p2 = NULL, sig.level = 0.05,
power = NULL,
alternative = c("two.sided", "one.sided"),
strict = FALSE, tol = .Machine$double.eps^0.25)
number of observations (per group)
probability in one group
probability in other group
significance level (Type I error probability)
power of test (1 minus Type II error probability)
one- or two-sided test. Can be abbreviated.
use strict interpretation in two-sided case
numerical tolerance used in root finding, the default providing (at least) four significant digits.
Object of class "power.htest"
, a list of the arguments
(including the computed one) augmented with method
and
note
elements.
Exactly one of the parameters n
, p1
, p2
,
power
, and sig.level
must be passed as NULL, and that
parameter is determined from the others. Notice that sig.level
has a non-NULL default so NULL
must be explicitly passed if you
want it computed.
If strict = TRUE
is used, the power will include the probability of
rejection in the opposite direction of the true effect, in the two-sided
case. Without this the power will be half the significance level if the
true difference is zero.
Note that not all conditions can be satisfied, e.g., for
power.prop.test(n=30, p1=0.90, p2=NULL, power=0.8, strict=TRUE)
there is no proportion p2
between p1 = 0.9
and 1, as
you'd need a sample size of at least \(n = 74\) to yield the
desired power for \((p1,p2) = (0.9, 1)\).
For these impossible conditions, currently a warning
(warning
) is signalled which may become an error
(stop
) in the future.
# NOT RUN { power.prop.test(n = 50, p1 = .50, p2 = .75) ## => power = 0.740 power.prop.test(p1 = .50, p2 = .75, power = .90) ## => n = 76.7 power.prop.test(n = 50, p1 = .5, power = .90) ## => p2 = 0.8026 power.prop.test(n = 50, p1 = .5, p2 = 0.9, power = .90, sig.level=NULL) ## => sig.l = 0.00131 power.prop.test(p1 = .5, p2 = 0.501, sig.level=.001, power=0.90) ## => n = 10451937 try( power.prop.test(n=30, p1=0.90, p2=NULL, power=0.8) ) # a warning (which may become an error) ## Reason: power.prop.test( p1=0.90, p2= 1.0, power=0.8) ##-> n = 73.37 # }
Run the code above in your browser using DataCamp Workspace