The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Getting Started with gpci

The gpci package provides a distribution-agnostic framework for calculating Process Capability Indices (PCIs), performing bootstrap confidence interval estimation, and running bootstrap cross-validation coverage diagnostics.

This vignette demonstrates standard normal-theory capability analysis.

Setup

First, load the package and ggplot2:

library(gpci)
library(ggplot2)

Simulating Process Data

We simulate a quality characteristic \(X \sim N(10, 1.2^2)\) from a stable process. We set specification limits: * Lower Specification Limit (LSL) = 7 * Upper Specification Limit (USL) = 13 * Target (\(T\)) = 10

set.seed(123)
process_data <- rnorm(100, mean = 9.8, sd = 1.1)

Capability Analysis

We construct a standard normal distribution object and fit it to the data using Maximum Likelihood Estimation (MLE):

# Create standard normal distribution template
dist_norm <- dist_normal()

# Compute capability indices (moment-based and quantile-based)
fit <- capability(
  data = process_data,
  distribution = dist_norm,
  USL = 13,
  LSL = 7,
  target = 10,
  indices = c("Cp", "Cpk", "Cpl", "Cpu", "Cpm", "Cpmk", "Spmk", "Cpc"),
  fit = TRUE,
  fit_method = "mle",
  mode = "moments"
)

# Print results
print(fit)
#> --- Process Capability Analysis (Class: gpcifit) ---
#> Distribution:  normal 
#> Parameters:    mean = 9.8994, sd = 0.9982 
#> Spec Limits:  LSL = 7 , USL = 13 , Target = 10 
#> Mode:          moments 
#> Expected Nonconforming (p_hat):  0.2785 %
#> 
#> Point Estimates of Capability Indices:
#>     Cp    Cpk    Cpl    Cpu    Cpm   Cpmk   Spmk    Cpc 
#> 1.0018 0.9682 0.9682 1.0354 0.9968 0.9634 0.9918 0.9694

Bootstrap Confidence Intervals

Next, we compute bootstrap confidence intervals at multiple significance levels (\(\alpha = 0.10, 0.05, 0.01\)) using the percentile bootstrap:

# Calculate CIs
ci <- boot_ci(
  fit = fit,
  B = 30, # Optimized B for fast vignette generation
  alpha = c(0.10, 0.05, 0.01),
  method = "percentile",
  type = "parametric"
)

# View CI table
print(ci)
#> --- Bootstrap Confidence Intervals ---
#> Bootstrap Type:    parametric 
#> CI Method:         percentile 
#> Replicates (B):    30 
#> 
#>    index estimate     method       type alpha conf_level  lower  upper  width
#> 1     Cp   1.0018 percentile parametric  0.10        90% 0.9113 1.1444 0.2331
#> 2     Cp   1.0018 percentile parametric  0.05        95% 0.9024 1.1452 0.2428
#> 3     Cp   1.0018 percentile parametric  0.01        99% 0.9024 1.1452 0.2428
#> 4    Cpk   0.9682 percentile parametric  0.10        90% 0.8792 1.0990 0.2198
#> 5    Cpk   0.9682 percentile parametric  0.05        95% 0.8689 1.1298 0.2609
#> 6    Cpk   0.9682 percentile parametric  0.01        99% 0.8689 1.1298 0.2609
#> 7    Cpl   0.9682 percentile parametric  0.10        90% 0.8792 1.0990 0.2198
#> 8    Cpl   0.9682 percentile parametric  0.05        95% 0.8689 1.1298 0.2609
#> 9    Cpl   0.9682 percentile parametric  0.01        99% 0.8689 1.1298 0.2609
#> 10   Cpu   1.0354 percentile parametric  0.10        90% 0.9138 1.2011 0.2874
#> 11   Cpu   1.0354 percentile parametric  0.05        95% 0.9042 1.2081 0.3039
#> 12   Cpu   1.0354 percentile parametric  0.01        99% 0.9042 1.2081 0.3039
#> 13   Cpm   0.9968 percentile parametric  0.10        90% 0.9092 1.1312 0.2221
#> 14   Cpm   0.9968 percentile parametric  0.05        95% 0.8979 1.1440 0.2461
#> 15   Cpm   0.9968 percentile parametric  0.01        99% 0.8979 1.1440 0.2461
#> 16  Cpmk   0.9634 percentile parametric  0.10        90% 0.8697 1.0865 0.2168
#> 17  Cpmk   0.9634 percentile parametric  0.05        95% 0.8645 1.1285 0.2640
#> 18  Cpmk   0.9634 percentile parametric  0.01        99% 0.8645 1.1285 0.2640
#> 19  Spmk   0.9918 percentile parametric  0.10        90% 0.9057 1.1189 0.2132
#> 20  Spmk   0.9918 percentile parametric  0.05        95% 0.8934 1.1428 0.2494
#> 21  Spmk   0.9918 percentile parametric  0.01        99% 0.8934 1.1428 0.2494
#> 22   Cpc   0.9694 percentile parametric  0.10        90% 0.4246 3.9652 3.5406
#> 23   Cpc   0.9694 percentile parametric  0.05        95% 0.3821 4.5053 4.1232
#> 24   Cpc   0.9694 percentile parametric  0.01        99% 0.3821 4.5053 4.1232

Plotting Results

The package provides S3 plot methods for visualizing the process capability:

1. Process Density and Specification Limits

plot(fit, type = "density")

2. Empirical CDF vs Fitted CDF

plot(fit, type = "cdf")

3. Quantile-Quantile (Q-Q) Plot

plot(fit, type = "qq")

4. Process Run Chart

plot(fit, type = "run")

5. Bootstrap Sampling Distributions and Confidence Intervals

We can also visualize the bootstrap results:

plot(ci, type = "boot")

6. Forest Plot of CIs

plot(ci, type = "forest")

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.