plotPredIntNormSimultaneousTestPowerCurve {EnvStats}  R Documentation 
Plot power vs. \Delta/\sigma
(scaled minimal detectable difference) for a
sampling design for a test based on a simultaneous prediction interval for a
normal distribution.
plotPredIntNormSimultaneousTestPowerCurve(n = 8, df = n  1, n.mean = 1,
k = 1, m = 2, r = 1, rule = "k.of.m", range.delta.over.sigma = c(0, 5),
pi.type = "upper", conf.level = 0.95, r.shifted = r,
K.tol = .Machine$double.eps^(1/2), integrate.args.list = NULL,
plot.it = TRUE, add = FALSE, n.points = 20, plot.col = "black",
plot.lwd = 3 * par("cex"), plot.lty = 1, digits = .Options$digits,
cex.main = par("cex"), ..., main = NULL, xlab = NULL, ylab = NULL, type = "l")
n 
positive integer greater than 2 indicating the sample size upon which
the prediction interval is based. The default is value is 
df 
positive integer indicating the degrees of freedom associated with
the sample size. The default value is 
n.mean 
positive integer specifying the sample size associated with the future average(s).
The default value is 
k 
for the 
m 
positive integer specifying the maximum number of future observations (or
averages) on one future sampling “occasion”.
The default value is 
r 
positive integer specifying the number of future sampling “occasions”.
The default value is 
rule 
character string specifying which rule to use. The possible values are

range.delta.over.sigma 
numeric vector of length 2 indicating the range of the xvariable to use for the
plot. The default value is 
pi.type 
character string indicating what kind of prediction interval to compute.
The possible values are 
conf.level 
numeric scalar between 0 and 1 indicating the confidence level of the
prediction interval. The default value is 
r.shifted 
positive integer between 
K.tol 
numeric scalar indicating the tolerance to use in the nonlinear search algorithm to
compute 
integrate.args.list 
a list of arguments to supply to the 
plot.it 
a logical scalar indicating whether to create a plot or add to the existing plot
(see explanation of the argument 
add 
a logical scalar indicating whether to add the design plot to the existing plot ( 
n.points 
a numeric scalar specifying how many (x,y) pairs to use to produce the plot.
There are 
plot.col 
a numeric scalar or character string determining the color of the plotted line or points. The default value
is 
plot.lwd 
a numeric scalar determining the width of the plotted line. The default value is

plot.lty 
a numeric scalar determining the line type of the plotted line. The default value is

digits 
a scalar indicating how many significant digits to print out on the plot. The default
value is the current setting of 
cex.main , main , xlab , ylab , type , ... 
additional graphical parameters (see 
See the help file for predIntNormSimultaneousTestPower
for
information on how to compute the power of a hypothesis test for the difference
between two means of normal distributions based on a simultaneous prediction
interval for a normal distribution.
plotPredIntNormSimultaneousTestPowerCurve
invisibly returns a list with
components:
x.var 
xcoordinates of points that have been or would have been plotted. 
y.var 
ycoordinates of points that have been or would have been plotted. 
See the help file for predIntNormSimultaneous
.
In the course of designing a sampling program, an environmental scientist may wish
to determine the relationship between sample size, significance level, power, and
scaled difference if one of the objectives of the sampling program is to determine
whether two distributions differ from each other. The functions
predIntNormSimultaneousTestPower
and
plotPredIntNormSimultaneousTestPowerCurve
can be
used to investigate these relationships for the case of normallydistributed
observations.
Steven P. Millard (EnvStats@ProbStatInfo.com)
See the help file for predIntNormSimultaneous
.
predIntNormSimultaneous
, predIntNormSimultaneousK
,
predIntNormSimultaneousTestPower
,
predIntNorm
, predIntNormK
,
predIntNormTestPower
, Prediction Intervals,
Normal.
# USEPA (2009) contains an example on page 1923 that involves monitoring
# nw=100 compliance wells at a large facility with minimal natural spatial
# variation every 6 months for nc=20 separate chemicals.
# There are n=25 background measurements for each chemical to use to create
# simultaneous prediction intervals. We would like to determine which kind of
# resampling plan based on normal distribution simultaneous prediction intervals to
# use (1ofm, 1ofm based on means, or Modified California) in order to have
# adequate power of detecting an increase in chemical concentration at any of the
# 100 wells while at the same time maintaining a sitewide false positive rate
# (SWFPR) of 10% per year over all 4,000 comparisons
# (100 wells x 20 chemicals x semiannual sampling).
# The function predIntNormSimultaneousTestPower includes the argument "r"
# that is the number of future sampling occasions (r=2 in this case because
# we are performing semiannual sampling), so to compute the individual test
# Type I error level alpha.test (and thus the individual test confidence level),
# we only need to worry about the number of wells (100) and the number of
# constituents (20): alpha.test = 1(1alpha)^(1/(nw x nc)). The individual
# confidence level is simply 1alpha.test. Plugging in 0.1 for alpha,
# 100 for nw, and 20 for nc yields an individual test confidence level of
# 1alpha.test = 0.9999473.
nc < 20
nw < 100
conf.level < (1  0.1)^(1 / (nc * nw))
conf.level
#[1] 0.9999473
# The help file for predIntNormSimultaneousTestPower shows how to
# create the results below for various sampling plans:
# Rule k m N.Mean K Power Total.Samples
#1 k.of.m 1 2 1 3.16 0.39 2
#2 k.of.m 1 3 1 2.33 0.65 3
#3 k.of.m 1 4 1 1.83 0.81 4
#4 Modified.CA 1 4 1 2.57 0.71 4
#5 k.of.m 1 1 2 3.62 0.41 2
#6 k.of.m 1 2 2 2.33 0.85 4
#7 k.of.m 1 1 3 2.99 0.71 3
# The above table shows the Kmultipliers for each prediction interval, along with
# the power of detecting a change in concentration of three standard deviations at
# any of the 100 wells during the course of a year, for each of the sampling
# strategies considered. The last three rows of the table correspond to sampling
# strategies that involve using the mean of two or three observations.
# Here is the power curve for the 1of4 sampling strategy:
dev.new()
plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 4, r = 2,
rule="k.of.m", pi.type = "upper", conf.level = conf.level,
xlab = "SD Units Above Background", main = "")
title(main = paste(
"Power Curve for 1of4 Sampling Strategy Based on 25 Background",
"Samples, SWFPR=10%, and 2 Future Sampling Periods", sep = "\n"))
#
# Here are the power curves for the first four sampling strategies.
# Because this takes several seconds to run, here we have commented out
# the R commands. To run this example, just remove the pound signs (#)
# from in front of the R commands.
#dev.new()
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 4, r = 2,
# rule="k.of.m", pi.type = "upper", conf.level = conf.level,
# xlab = "SD Units Above Background", main = "")
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 3, r = 2,
# rule="k.of.m", pi.type = "upper", conf.level = conf.level, add = TRUE,
# plot.col = "red", plot.lty = 2)
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 2, r = 2,
# rule="k.of.m", pi.type = "upper", conf.level = conf.level, add = TRUE,
# plot.col = "blue", plot.lty = 3)
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, r = 2, rule="Modified.CA",
# pi.type = "upper", conf.level = conf.level, add = TRUE, plot.col = "green3",
# plot.lty = 4)
#legend(0, 1, c("1of4", "Modified CA", "1of3", "1of2"),
# col = c("black", "green3", "red", "blue"), lty = c(1, 4, 2, 3),
# lwd = 3 * par("cex"), bty = "n")
#title(main = paste("Power Curves for 4 Sampling Strategies Based on 25 Background",
# "Samples, SWFPR=10%, and 2 Future Sampling Periods", sep = "\n"))
#
# Here are the power curves for the last 3 sampling strategies.
# Because this takes several seconds to run, here we have commented out
# the R commands. To run this example, just remove the pound signs (#)
# from in front of the R commands.
#dev.new()
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 2, n.mean = 2,
# r = 2, rule="k.of.m", pi.type = "upper", conf.level = conf.level,
# xlab = "SD Units Above Background", main = "")
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 1, n.mean = 2,
# r = 2, rule="k.of.m", pi.type = "upper", conf.level = conf.level, add = TRUE,
# plot.col = "red", plot.lty = 2)
#plotPredIntNormSimultaneousTestPowerCurve(n = 25, k = 1, m = 1, n.mean = 3,
# r = 2, rule="k.of.m", pi.type = "upper", conf.level = conf.level, add = TRUE,
# plot.col = "blue", plot.lty = 3)
#legend(0, 1, c("1of2, Order 2", "1of1, Order 3", "1of1, Order 2"),
# col = c("black", "blue", "red"), lty = c(1, 3, 2), lwd = 3 * par("cex"),
# bty="n")
#title(main = paste("Power Curves for 3 Sampling Strategies Based on 25 Background",
# "Samples, SWFPR=10%, and 2 Future Sampling Periods", sep = "\n"))
#==========
# Clean up
#
rm(nc, nw, conf.level)
graphics.off()