plotLinearTrendTestDesign.RdCreate plots involving sample size, power, scaled difference, and significance level for a t-test for linear trend.
plotLinearTrendTestDesign(x.var = "n", y.var = "power",
range.x.var = NULL, n = 12,
slope.over.sigma = switch(alternative, greater = 0.1, less = -0.1,
two.sided = ifelse(two.sided.direction == "greater", 0.1, -0.1)),
alpha = 0.05, power = 0.95, 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 = ifelse(x.var == "n", diff(range.x.var) + 1, 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),
"slope.over.sigma" (scaled minimal detectable slope), "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),
"slope.over.sigma" (scaled minimal detectable slope), 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(3,25). When
x.var="slope.over.sigma" and alternative="greater" or
alternative="two.sided" and two.sided.direction="greater", the default value is c(0.1, 1).
When x.var="slope.over.sigma" and alternative="less" or alternative="two.sided" and
two.sided.direction="less", the default value is -c(1, 0.1).
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=12. 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 specifying the ratio of the true slope (\(\beta_1\)) to the
population standard deviation of the error terms (\(\sigma\)).
This is also called the "scaled slope". When alternative="greater" or
alternative="two.sided" and two.sided.direction="greater", the default
value is slope.over.sigma=0.1. When alternative="less" or
alternative="two.sided" and two.sided.direction="less", the default
value is delta.over.sigma=-0.1. This argument is ignored when
x.var="slope.over.sigma" or y.var="slope.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 the kind of alternative hypothesis. The possible values
are "two.sided" (the default), "greater", and "less".
character string indicating the direction (positive or negative) for the
scaled minimal detectable slope when alternative="two.sided". When two.sided.direction="greater" (the default), the scaled minimal detectable slope is positive.
When two.sided.direction="less", the scaled minimal detectable slope is negative.
This argument is ignored if alternative="less" or alternative="greater".
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
FALSE.
for the case when y.var="n", a positive integer greater than 2 indicating
the maximum sample size. The default value is n.max=5000.
numeric scalar indicating the toloerance to use in the
uniroot search algorithm.
The default value is tol=1e-7.
positive integer indicating the maximum number of iterations
argument to pass to the uniroot function. 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 unless x.var="n", in which case n.points=diff(range.x.var)+1.
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 linearTrendTestPower,
linearTrendTestN, and linearTrendTestScaledMds for
information on how to compute the power, sample size, or scaled minimal detectable
slope for a t-test for linear trend.
plotlinearTrendTestDesign 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 file for linearTrendTestPower.
See the help files for linearTrendTestPower.
# Look at the relationship between power and sample size for the t-test for
# liner trend, assuming a scaled slope of 0.1 and a 5% significance level:
dev.new()
plotLinearTrendTestDesign()
#==========
# Plot sample size vs. the scaled minimal detectable slope for various
# levels of power, using a 5% significance level:
dev.new()
plotLinearTrendTestDesign(x.var = "slope.over.sigma", y.var = "n",
ylim = c(0, 30), main = "")
plotLinearTrendTestDesign(x.var = "slope.over.sigma", y.var = "n",
power = 0.9, add = TRUE, plot.col = "red")
plotLinearTrendTestDesign(x.var = "slope.over.sigma", y.var = "n",
power = 0.8, add = TRUE, plot.col = "blue")
legend("topright", c("95%", "90%", "80%"), lty = 1, bty = "n",
lwd = 3 * par("cex"), col = c("black", "red", "blue"))
title(main = paste("Sample Size vs. Scaled Slope for t-Test for Linear Trend",
"with Alpha=0.05 and Various Powers", sep="\n"))
#==========
# Clean up
#---------
graphics.off()