plotTTestDesign.Rd
Create plots involving sample size, power, scaled difference, and significance level for a one- or two-sample t-test.
plotTTestDesign(x.var = "n", y.var = "power", range.x.var = NULL,
n.or.n1 = 25, n2 = n.or.n1,
delta.over.sigma = switch(alternative, greater = 0.5, less = -0.5,
two.sided = ifelse(two.sided.direction == "greater", 0.5, -0.5)),
alpha = 0.05, power = 0.95,
sample.type = ifelse(!missing(n2), "two.sample", "one.sample"),
alternative = "two.sided", two.sided.direction = "greater", approx = FALSE,
round.up = FALSE, n.max = 5000, tol = 1e-07, maxiter = 1000, plot.it = TRUE,
add = FALSE, n.points = 50, plot.col = "black", plot.lwd = 3 * par("cex"),
plot.lty = 1, digits = .Options$digits, ..., main = NULL, xlab = NULL,
ylab = NULL, type = "l")
character string indicating what variable to use for the x-axis.
Possible values are "n"
(sample size; the default),
"delta.over.sigma"
(scaled minimal detectable difference), "power"
(power of the test), and "alpha"
(significance level of the test).
character string indicating what variable to use for the y-axis.
Possible values are "power"
(power of the test; the default),
"delta.over.sigma"
(scaled minimal detectable difference), and
"n"
(sample size).
numeric vector of length 2 indicating the range of the x-variable to use
for the plot. The default value depends on the value of x.var
.
When x.var="n"
the default value is c(2,50)
. When
x.var="delta.over.sigma"
and alternative="greater"
or
alternative="two.sided"
and two.sided.direction="greater"
,
the default value is c(0.5, 2)
. When x.var="delta.over.sigma"
and
alternative="less"
or alternative="two.sided"
and two.sided.direction="less"
, the default value is
-c(2, 0.5)
. When x.var="power"
the default value is c(alpha + .Machine$double.eps, 0.95)
. When x.var="alpha"
, the
default value is c(0.01, 0.2)
.
numeric scalar indicating the sample size. The default value is
n.or.n1=25
. When sample.type="one.sample"
, n.or.n1
denotes the number of observations in the single sample. When
sample.type="two.sample"
, n.or.n1
denotes the number of
observations from group 1. Missing (NA
), undefined (NaN
),
and infinite (Inf
, -Inf
) values are not allowed. This
argument is ignored if either x.var="n"
or y.var="n"
.
numeric scalar indicating the sample size for group 2. The default value
is the value of n.or.n1
. Missing (NA
), undefined (NaN
),
and infinite (Inf
, -Inf
) values are not allowed. This
argument is ignored when sample.type="one.sample"
.
numeric scalar specifying the ratio of the true difference (\(\delta\)) to the
population standard deviation (\(\sigma\)). This is also called the
"scaled difference". When alternative="greater"
or
alternative="two.sided"
and two.sided.direction="greater"
, the default
value is delta.over.sigma=0.5
. When alternative="less"
or
alternative="two.sided"
and two.sided.direction="less"
, the default
value is delta.over.sigma=-0.5
. This argument is ignored when
x.var="delta.over.sigma"
or y.var="delta.over.sigma"
.
numeric scalar between 0 and 1 indicating the Type I error level associated
with the hypothesis test. The default value is alpha=0.05
.
This argument is ignored when x.var="alpha"
.
numeric scalar between 0 and 1 indicating the power associated with the
hypothesis test. The default value is power=0.95
. This argument is
ignored when x.var="power"
or y.var="power"
.
character string indicating whether the design is based on a one-sample or
two-sample t-test. When sample.type="one.sample"
, the computations
for the plot are based on a one-sample t-test. When
sample.type="two.sample"
, the computations for the plot are based on a
two-sample t-test. The default value is sample.type="one.sample"
.
character string indicating the kind of alternative hypothesis. The possible
values are "two.sided"
(the default), "less"
, and "greater"
.
character string indicating the direction (positive or negative) for the scaled
minimal detectable difference when alternative="two.sided"
. When two.sided.direction="greater"
(the default), the scaled minimal detectable
difference is positive. When two.sided.direction="less"
, the scaled minimal
detectable difference is negative. This argument is ignored unless alternative="two.sided"
and either x.var="delta"
or
y.var="delta"
.
logical scalar indicating whether to compute the power based on an approximation
to the non-central t-distribution. The default value is approx=FALSE
.
logical scalar indicating whether to round up the values of the computed sample
size(s) to the next smallest integer. The default value is round.up=FALSE
.
This argument is ignored unless y.var="n"
.
for the case when y.var="n"
, a positive integer greater than 1 indicating
the maximum sample size when sample.type="one.sample"
or the maximum sample
size for group 1 when sample.type="two.sample"
. The default value is
n.max=5000
.
numeric scalar relevant to the case when y.var="n"
or
y.var="delta.over.sigma"
.
This argument is passed to the uniroot
function and indicates the tolerance
to use in the search algorithm. The default value is tol=1e-7
.
numeric scalar relevant to the case when y.var="n"
and approx=FALSE
(i.e., when the power is based on the exact test), or when
y.var="delta.over.sigma"
. This argument is passed to the
uniroot
function and is a positive integer indicating the
maximum number of iterations. The default value is maxiter=1000
.
a logical scalar indicating whether to create a new plot or add to the existing plot
(see add
) on the current graphics device. If plot.it=FALSE
, no plot
is produced, but a list of (x,y) values is returned (see VALUE). The default value
is plot.it=TRUE
.
a logical scalar indicating whether to add the design plot to the
existing plot (add=TRUE
), or to create a plot from scratch
(add=FALSE
). The default value is add=FALSE
.
This argument is ignored if plot.it=FALSE
.
a numeric scalar specifying how many (x,y) pairs to use to produce the plot.
There are n.points
x-values evenly spaced between range.x.var[1]
and range.x.var[2]
. The default value is n.points=50
.
a numeric scalar or character string determining the color of the plotted
line or points. The default value is plot.col="black"
. See the
entry for col
in the help file for par
for more information.
a numeric scalar determining the width of the plotted line. The default value is
3*par("cex")
. See the entry for lwd
in the help file for par
for more information.
a numeric scalar determining the line type of the plotted line. The default value is
plot.lty=1
. See the entry for lty
in the help file for par
for more information.
a scalar indicating how many significant digits to print out on the plot. The default
value is the current setting of options("digits")
.
additional graphical parameters (see par
).
See the help files for tTestPower
, tTestN
, and
tTestScaledMdd
for information on how to compute the power,
sample size, or scaled minimal detectable difference for a one- or two-sample
t-test.
plotTTestDesign
invisibly returns a list with components
x.var
and y.var
, giving coordinates of the points that have
been or would have been plotted.
See the help files for tTestPower
, tTestN
, and
tTestScaledMdd
.
See the help files for tTestPower
, tTestN
, and
tTestScaledMdd
.
# Look at the relationship between power and sample size for a two-sample t-test,
# assuming a scaled difference of 0.5 and a 5% significance level:
dev.new()
plotTTestDesign(sample.type = "two")
#----------
# For a two-sample t-test, plot sample size vs. the scaled minimal detectable
# difference for various levels of power, using a 5% significance level:
dev.new()
plotTTestDesign(x.var = "delta.over.sigma", y.var = "n", sample.type = "two",
ylim = c(0, 110), main="")
plotTTestDesign(x.var = "delta.over.sigma", y.var = "n", sample.type = "two",
power = 0.9, add = TRUE, plot.col = "red")
plotTTestDesign(x.var = "delta.over.sigma", y.var = "n", sample.type = "two",
power = 0.8, add = TRUE, plot.col = "blue")
legend("topright", c("95%", "90%", "80%"), lty = 1,
lwd = 3 * par("cex"), col = c("black", "red", "blue"), bty = "n")
title(main = paste("Sample Size vs. Scaled Difference for",
"Two-Sample t-Test, with Alpha=0.05 and Various Powers",
sep="\n"))
#==========
# Modifying the example on pages 21-4 to 21-5 of USEPA (2009), look at
# power versus scaled minimal detectable difference for various sample
# sizes in the context of the problem of using a one-sample t-test to
# compare the mean for the well with the MCL of 7 ppb. Use alpha = 0.01,
# assume an upper one-sided alternative (i.e., compliance well mean larger
# than 7 ppb).
dev.new()
plotTTestDesign(x.var = "delta.over.sigma", y.var = "power",
range.x.var = c(0.5, 2), n.or.n1 = 8, alpha = 0.01,
alternative = "greater", ylim = c(0, 1), main = "")
plotTTestDesign(x.var = "delta.over.sigma", y.var = "power",
range.x.var = c(0.5, 2), n.or.n1 = 6, alpha = 0.01,
alternative = "greater", add = TRUE, plot.col = "red")
plotTTestDesign(x.var = "delta.over.sigma", y.var = "power",
range.x.var = c(0.5, 2), n.or.n1 = 4, alpha = 0.01,
alternative = "greater", add = TRUE, plot.col = "blue")
legend("topleft", paste("N =", c(8, 6, 4)), lty = 1, lwd = 3 * par("cex"),
col = c("black", "red", "blue"), bty = "n")
title(main = paste("Power vs. Scaled Difference for One-Sample t-Test",
"with Alpha=0.01 and Various Sample Sizes", sep="\n"))
#==========
# Clean up
#---------
graphics.off()