mvtol.region {tolerance} | R Documentation |
Multivariate Normal Tolerance Regions
Description
Determines the appropriate tolerance factor for computing multivariate normal tolerance regions based on Monte Carlo methods or other approximations.
Usage
mvtol.region(x, alpha = 0.05, P = 0.99, B = 1000, M = 1000,
method = c("KM", "AM", "GM", "HM", "MHM", "V11",
"HM.V11", "MC"))
Arguments
x |
An |
alpha |
The level chosen such that |
P |
The proportion of the population to be covered by this tolerance region. A vector of |
B |
The number of iterations used for the Monte Carlo algorithms (i.e., when |
M |
The number of iterations used for the inner loop of the Monte Carlo algorithm specified through |
method |
The method for estimating the tolerance factors. |
Details
All of the methods are outlined in the references that we provided. In practice, we recommend using the Krishnamoorthy-Mondal approach. A basic sketch of how the Krishnamoorthy-Mondal algorithm works is as follows:
(1) Generate independent chi-square random variables and Wishart random matrices.
(2) Compute the eigenvalues of the randomly generated Wishart matrices.
(3) Iterate the above steps to generate a set of B
sample values such that the 100(1-alpha)
-th percentile is an approximate tolerance factor.
Value
mvtol.region
returns a matrix where the rows pertain to each confidence level 1-alpha
specified and the columns
pertain to each proportion level P
specified.
References
Krishnamoorthy, K. and Mathew, T. (1999), Comparison of Approximation Methods for Computing Tolerance Factors for a Multivariate Normal Population, Technometrics, 41, 234–249.
Krishnamoorthy, K. and Mondal, S. (2006), Improved Tolerance Factors for Multivariate Normal Distributions, Communications in Statistics - Simulation and Computation, 35, 461–478.
Examples
## 90%/90% bivariate normal tolerance region.
set.seed(100)
x1 <- rnorm(100, 0, 0.2)
x2 <- rnorm(100, 0, 0.5)
x <- cbind(x1, x2)
out1 <- mvtol.region(x = x, alpha = 0.10, P = 0.90, B = 1000,
method = "KM")
out1
plottol(out1, x)
## 90%/90% trivariate normal tolerance region.
set.seed(100)
x1 <- rnorm(100, 0, 0.2)
x2 <- rnorm(100, 0, 0.5)
x3 <- rnorm(100, 5, 1)
x <- cbind(x1, x2, x3)
mvtol.region(x = x, alpha = c(0.10, 0.05, 0.01),
P = c(0.90, 0.95, 0.99), B = 1000, method = "KM")
out2 <- mvtol.region(x = x, alpha = 0.10, P = 0.90, B = 1000,
method = "KM")
out2
plottol(out2, x)