plotTolIntNormDesign.Rd
Create plots involving sample size, half-width, estimated standard deviation, coverage, and confidence level for a tolerance interval for a normal distribution.
plotTolIntNormDesign(x.var = "n", y.var = "half.width", range.x.var = NULL,
n = 25, half.width = ifelse(x.var == "sigma.hat", 3 * max.x, 3 * sigma.hat),
sigma.hat = 1, coverage = 0.95, conf.level = 0.95, cov.type = "content",
round.up = FALSE, n.max = 5000, tol = 1e-07, maxiter = 1000, plot.it = TRUE,
add = FALSE, n.points = 100, plot.col = 1, 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), "half.width"
(half-width),
"sigma.hat"
(estimated standard deviation), "coverage"
(the coverage),
and "conf.level"
(the confidence level).
character string indicating what variable to use for the y-axis. Possible values
are "half.width"
(the half-width; the default), 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="half.width"
the default value is
c(2.5 * sigma.hat, 4 * sigma.hat)
.
When x.var="sigma.hat"
, the default value is c(0.1, 2)
.
When x.var="coverage"
or x.var="conf.level"
, the default value is
c(0.5, 0.99)
.
positive integer greater than 1 indicating the sample size upon
which the tolerance interval is based. The default value is n=25
.
Missing (NA
), undefined (NaN
), and infinite (Inf
, -Inf
)
values are not allowed.
positive scalar indicating the half-width of the prediction interval.
The default value depends on the value of x.var
. When
x.var="sigma.hat"
the default value is 3 times the second value of
range.x.var
. When x.var
is not equal to "sigma.hat"
the
default value is half.width=4*sigma.hat
. This argument is ignored
if either x.var="half.width"
or y.var="half.width"
.
numeric scalar specifying the value of the estimated standard deviation.
The default value is sigma.hat=1
. This argument is ignored if
x.var="sigma.hat"
.
numeric scalar between 0 and 1 indicating the desired coverage of the
tolerance interval. The default value is coverage=0.95
.
numeric scalar between 0 and 1 indicating the confidence level of the
tolerance interval. The default value is conf.level=0.95
.
character string specifying the coverage type for the tolerance interval. The
possible values are "content"
(\(\beta\)-content; the default), and
"expectation"
(\(\beta\)-expectation).
for the case when y.var="n"
, 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=TRUE
.
for the case when y.var="n"
, positive integer greater than 1 specifying
the maximum possible sample size. The default value is n.max=5000
.
for the case when y.var="n"
, numeric scalar indicating the tolerance
to use in the uniroot
search algorithm. The default value is
tol=1e-7
.
for the case when y.var="n"
, positive integer indicating the maximum
number of iterations to use in the uniroot
search algorithm.
The default value is maxiter=1000
.
a logical scalar indicating whether to create a plot or add to the existing plot
(see explanation of the argument add
below) on the current graphics device.
If plot.it=FALSE
, no plot is produced, but a list of (x,y) values is returned
(see the section 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=100
.
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 tolIntNorm
, tolIntNormK
,
tolIntNormHalfWidth
, and tolIntNormN
for information
on how to compute a tolerance interval for a normal distribution, how the
half-width is computed when other quantities are fixed, and how the sample size
is computed when other quantities are fixed.
plotTolIntNormDesign
invisibly returns a list with components:
x-coordinates of points that have been or would have been plotted.
y-coordinates of points that have been or would have been plotted.
See the help file for tolIntNorm
.
See the help file for tolIntNorm
.
In the course of designing a sampling program, an environmental scientist may wish
to determine the relationship between sample size, confidence level, and half-width
if one of the objectives of the sampling program is to produce tolerance intervals.
The functions tolIntNormHalfWidth
, tolIntNormN
, and
plotTolIntNormDesign
can be used to investigate these relationships for the
case of normally-distributed observations.
tolIntNorm
, tolIntNormK
,
tolIntNormN
, plotTolIntNormDesign
,
Normal
.
# Look at the relationship between half-width and sample size for a
# 95% beta-content tolerance interval, assuming an estimated standard
# deviation of 1 and a confidence level of 95%:
dev.new()
plotTolIntNormDesign()
#==========
# Plot half-width vs. coverage for various levels of confidence:
dev.new()
plotTolIntNormDesign(x.var = "coverage", y.var = "half.width",
ylim = c(0, 3.5), main="")
plotTolIntNormDesign(x.var = "coverage", y.var = "half.width",
conf.level = 0.9, add = TRUE, plot.col = "red")
plotTolIntNormDesign(x.var = "coverage", y.var = "half.width",
conf.level = 0.8, add = TRUE, plot.col = "blue")
legend("topleft", c("95%", "90%", "80%"), lty = 1, lwd = 3 * par("cex"),
col = c("black", "red", "blue"), bty = "n")
title(main = paste("Half-Width vs. Coverage for Tolerance Interval",
"with Sigma Hat=1 and Various Confidence Levels", sep = "\n"))
#==========
# Example 17-3 of USEPA (2009, p. 17-17) shows how to construct a
# beta-content upper tolerance limit with 95% coverage and 95%
# confidence using chrysene data and assuming a lognormal distribution.
# The data for this example are stored in EPA.09.Ex.17.3.chrysene.df,
# which contains chrysene concentration data (ppb) found in water
# samples obtained from two background wells (Wells 1 and 2) and
# three compliance wells (Wells 3, 4, and 5). The tolerance limit
# is based on the data from the background wells.
# Here we will first take the log of the data and then estimate the
# standard deviation based on the two background wells. We will use this
# estimate of standard deviation to plot the half-widths of
# future tolerance intervals on the log-scale for various sample sizes.
head(EPA.09.Ex.17.3.chrysene.df)
#> Month Well Well.type Chrysene.ppb
#> 1 1 Well.1 Background 19.7
#> 2 2 Well.1 Background 39.2
#> 3 3 Well.1 Background 7.8
#> 4 4 Well.1 Background 12.8
#> 5 1 Well.2 Background 10.2
#> 6 2 Well.2 Background 7.2
# Month Well Well.type Chrysene.ppb
#1 1 Well.1 Background 19.7
#2 2 Well.1 Background 39.2
#3 3 Well.1 Background 7.8
#4 4 Well.1 Background 12.8
#5 1 Well.2 Background 10.2
#6 2 Well.2 Background 7.2
longToWide(EPA.09.Ex.17.3.chrysene.df, "Chrysene.ppb", "Month", "Well")
#> Well.1 Well.2 Well.3 Well.4 Well.5
#> 1 19.7 10.2 68.0 26.8 47.0
#> 2 39.2 7.2 48.9 17.7 30.5
#> 3 7.8 16.1 30.1 31.9 15.0
#> 4 12.8 5.7 38.1 22.2 23.4
# Well.1 Well.2 Well.3 Well.4 Well.5
#1 19.7 10.2 68.0 26.8 47.0
#2 39.2 7.2 48.9 17.7 30.5
#3 7.8 16.1 30.1 31.9 15.0
#4 12.8 5.7 38.1 22.2 23.4
summary.stats <- summaryStats(log(Chrysene.ppb) ~ Well.type,
data = EPA.09.Ex.17.3.chrysene.df)
summary.stats
#> N Mean SD Median Min Max
#> Background 8 2.5086 0.6279 2.4359 1.7405 3.6687
#> Compliance 12 3.4173 0.4361 3.4111 2.7081 4.2195
# N Mean SD Median Min Max
#Background 8 2.5086 0.6279 2.4359 1.7405 3.6687
#Compliance 12 3.4173 0.4361 3.4111 2.7081 4.2195
sigma.hat <- summary.stats["Background", "SD"]
sigma.hat
#> [1] 0.6279
#[1] 0.6279
dev.new()
plotTolIntNormDesign(x.var = "n", y.var = "half.width",
range.x.var = c(5, 40), sigma.hat = sigma.hat, cex.main = 1)
#==========
# Clean up
#---------
rm(summary.stats, sigma.hat)
graphics.off()