## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(ProcessCapabilityR)

## ----classical-centered-------------------------------------------------------
# All classical capability indices
cat("Cp  =", cp(LSL = 57, USL = 63, sigma = 1), "\n")
cat("Cpk =", cpk(LSL = 57, USL = 63, mu = 60, sigma = 1), "\n")
cat("Cpu =", cpu(USL = 63, mu = 60, sigma = 1), "\n")
cat("Cpl =", cpl(LSL = 57, mu = 60, sigma = 1), "\n")
cat("Z   =", z_level(LSL = 57, USL = 63, mu = 60, sigma = 1), "\n")

## ----taguchi-centered---------------------------------------------------------
# Taguchi indices with target = process mean
cat("Cpm  =", cpm(LSL = 57, USL = 63, mu = 60, sigma = 1, target = 60), "\n")
cat("Cpmk =", cpmk(LSL = 57, USL = 63, mu = 60, sigma = 1, target = 60), "\n")

## ----off-center---------------------------------------------------------------
cat("Cp  =", cp(LSL = 57, USL = 63, sigma = 1), "\n")
cat("Cpk =", cpk(LSL = 57, USL = 63, mu = 61, sigma = 1), "\n")
cat("Cpu =", cpu(USL = 63, mu = 61, sigma = 1), "\n")
cat("Cpl =", cpl(LSL = 57, mu = 61, sigma = 1), "\n")

## ----taguchi-off--------------------------------------------------------------
cat("Cpm  =", cpm(LSL = 57, USL = 63, mu = 60, sigma = 1, target = 59), "\n")
cat("Cpmk =", cpmk(LSL = 57, USL = 63, mu = 60, sigma = 1, target = 59), "\n")

## ----performance--------------------------------------------------------------
cat("Pp  =", pp(LSL = 57, USL = 63, s = 1.5), "\n")
cat("Ppk =", ppk(LSL = 57, USL = 63, xbar = 60, s = 1.5), "\n")
cat("Ppu =", ppu(USL = 63, xbar = 60, s = 1.5), "\n")
cat("Ppl =", ppl(LSL = 57, xbar = 60, s = 1.5), "\n")

## ----cpy-normal---------------------------------------------------------------
d_norm <- pci_dist_normal(mean = 60, sd = 1)

cat("Cpy (spec = desirable) =",
    cpy(d_norm, LSL = 57, USL = 63, LDL = 57, UDL = 63), "\n")

## ----cpy-wider----------------------------------------------------------------
cat("Cpy (wider spec) =",
    cpy(d_norm, LSL = 56, USL = 64, LDL = 57, UDL = 63), "\n")

## ----cpy-weibull--------------------------------------------------------------
d_weibull <- pci_dist(
  pdf    = function(x, shape, scale) dweibull(x, shape = shape, scale = scale),
  cdf    = function(x, shape, scale) pweibull(x, shape = shape, scale = scale),
  params = list(shape = 2, scale = 10),
  support = c(0, 50)
)

cat("Cpy (Weibull, p0=0.95) =",
    cpy(d_weibull, LSL = 2, USL = 20, p0 = 0.95), "\n")
cat("Cpy (Weibull, p0=0.90) =",
    cpy(d_weibull, LSL = 2, USL = 20, p0 = 0.90), "\n")

## ----cpy-gamma----------------------------------------------------------------
d_gamma <- pci_dist(
  pdf    = function(x, shape, rate) dgamma(x, shape = shape, rate = rate),
  cdf    = function(x, shape, rate) pgamma(x, shape = shape, rate = rate),
  params = list(shape = 5, rate = 0.5),
  support = c(0, 60)
)

cat("Cpy (Gamma, p0=0.95) =",
    cpy(d_gamma, LSL = 2, USL = 25, p0 = 0.95), "\n")

## ----ci-example---------------------------------------------------------------
set.seed(42)
d <- pci_dist_normal(mean = 60, sd = 1)

ci_pct <- pci_ci("Cp", dist = d, n = 30, LSL = 57, USL = 63,
                 alpha = 0.05, B = 500, method = "percentile")
print(ci_pct)

## ----ci-bca-------------------------------------------------------------------
set.seed(42)
ci_bca <- pci_ci("Cp", dist = d, n = 30, LSL = 57, USL = 63,
                 alpha = 0.05, B = 500, method = "bca")
print(ci_bca)

## ----grid-sigma, eval = FALSE-------------------------------------------------
# d <- pci_dist_normal(mean = 60, sd = 1)
# grid_sigma <- pci_grid("Cp",
#                        dist = d,
#                        LSL = 57, USL = 63,
#                        sigma_vals = seq(0.5, 2.0, by = 0.1),
#                        mu = 60,
#                        alpha_vals = c(0.10, 0.05, 0.03, 0.01),
#                        n = 30, B = 500)
# head(grid_sigma)

## ----grid-sigma-plot, eval = FALSE--------------------------------------------
# plot(grid_sigma, x_axis = "sigma")

## ----grid-cpy, eval = FALSE---------------------------------------------------
# d <- pci_dist_normal(mean = 60, sd = 1)
# grid_cpy <- pci_grid("Cpy",
#                      dist = d,
#                      LSL = 57, USL = 63,
#                      p0_vals = c(0.90, 0.95, 0.99),
#                      alpha_vals = c(0.10, 0.05, 0.03, 0.01),
#                      n = 30, B = 500)
# head(grid_cpy)

## ----grid-cpy-plot, eval = FALSE----------------------------------------------
# plot(grid_cpy, x_axis = "p0")

