Plots for a Sampling Design Based on a Tolerance Interval for a Normal Distribution
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")
x.var |
character string indicating what variable to use for the x-axis. Possible values
are |
y.var |
character string indicating what variable to use for the y-axis. Possible values
are |
range.x.var |
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 |
n |
positive integer greater than 1 indicating the sample size upon
which the tolerance interval is based. The default value is |
half.width |
positive scalar indicating the half-width of the prediction interval.
The default value depends on the value of |
sigma.hat |
numeric scalar specifying the value of the estimated standard deviation.
The default value is |
coverage |
numeric scalar between 0 and 1 indicating the desired coverage of the
tolerance interval. The default value is |
conf.level |
numeric scalar between 0 and 1 indicating the confidence level of the
tolerance interval. The default value is |
cov.type |
character string specifying the coverage type for the tolerance interval. The
possible values are |
round.up |
for the case when |
n.max |
for the case when |
tol |
for the case when |
maxiter |
for the case when |
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 |
main, xlab, ylab, type, ... |
additional graphical parameters (see |
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.var |
x-coordinates of points that have been or would have been plotted. |
y.var |
y-coordinates of points that have been or would have been plotted. |
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.
Steven P. Millard (EnvStats@ProbStatInfo.com)
See the help file for tolIntNorm
.
# 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 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 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 sigma.hat <- summary.stats["Background", "SD"] sigma.hat #[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()
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.