vignettes/iqcc-positioning.Rmd
iqcc-positioning.RmdIQCC implements Improved Quality Control Charts: control charts with exact, corrected, or standardized limits for situations where classical Shewhart-type approximations may be poorly calibrated.
The package is not intended to replace general-purpose statistical process control packages. Instead, it is useful when the monitoring statistic is bounded, discrete, skewed, non-normal, or based on small samples. In those settings, the usual three-sigma limits can produce a false alarm probability that is meaningfully different from the nominal value.
A practical way to position IQCC is:
IQCC is a specialized package for exact and corrected control-chart limits, especially for small samples, rare defects, asymmetric statistics, and selected multivariate monitoring problems.
Use a general SPC package when the goal is a broad control-chart workflow. Use IQCC when the main concern is whether the classical limits are statistically well calibrated for the distribution and sample size at hand.
| Monitoring problem | Classical difficulty | IQCC direction |
|---|---|---|
| Range-based dispersion monitoring | Normal approximations can inflate the actual false alarm risk, especially for small subgroups. | Use exact range-chart limits based on the relative range distribution. |
| Standard deviation monitoring | The distribution of the sample standard deviation is asymmetric for small samples. | Use exact limits derived from the chi-square distribution of the sample variance. |
| Nonconforming proportion in high-quality processes | The binomial distribution is discrete, bounded, and strongly skewed when the nonconforming proportion is very small. | Use Cornish-Fisher corrected limits or the double-sampling np chart. |
| Multivariate process mean monitoring | Hotelling T² requires phase-specific calibration. | Use the implemented Phase I and Phase II Hotelling T² functions. |
| Multivariate process variability | A single normal approximation for generalized variance may be poorly calibrated. | Candidate future extensions include generalized variance and auxiliary trace charts. |
The current package includes several families of functions:
cchart.R() for range charts, including exact
Tukey-based limits.cchart.S() for standard deviation charts, including
exact chi-square-based limits.cchart.p() for nonconforming proportion charts,
including Cornish-Fisher corrected limits.cchart.u() for nonconformities per unit.T2.1(), T2.2(),
cchart.T2.1(), and cchart.T2.2() for Hotelling
T² monitoring.alpha.risk() for studying the actual false alarm risk
of classical range charts.dsnp_prob_accept(), dsnp_arl(),
dsnp_ass(), dsnp_limits(), and
cchart.DSnp() for double-sampling np charts.The example below uses the package’s binomial data and constructs a p chart with Cornish-Fisher corrected limits. It is intentionally short; the purpose is to show where IQCC fits into the usual control-chart workflow.
The double-sampling np chart uses two sampling stages to monitor the
nonconforming proportion in high-quality processes.
dsnp_limits() searches for feasible fractional control
limits, and cchart.DSnp() builds and plots the chart.
library(IQCC)
# Find limits for a given in-control proportion
lim <- dsnp_limits(p0 = 0.005, n1 = 34, n2 = 162, alpha = 0.0027,
p1 = 0.0075)
lim$best[, c("wl", "ucl1", "ucl2", "arl0", "arl1", "ass0")]
# Build the chart from observed data
x1 <- c(0, 0, 1, 0, 0, 1, 0, 0, 0, 2, 0, 0, 1, 0, 0)
x2 <- c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA)
chart <- cchart.DSnp(x1, n1 = 34, n2 = 162, p0 = 0.005,
x2 = x2, limits = lim)
chart$performanceFuture extensions should follow three principles.
First, numerical calculations should be separated from plotting functions. A limit, probability, average run length, or false alarm risk shown in a chart should be reproducible by a small numerical function.
Second, new methods should be validated against published tables or examples when possible. This is particularly important for charts based on exact or corrected distributional calculations.
Third, IQCC should remain complementary to the broader R SPC ecosystem. Its strongest role is to provide statistically calibrated alternatives for cases where classical approximations are simple but inaccurate.
The main planned extensions are:
These items are tracked in the GitHub issue roadmap and should be implemented in small, reviewable pull requests.