Un representante de un departamento de ventas compra toallas a un proveedor para regalarlas en ferias comerciales. El representante de ventas desea implementar un plan de muestreo para que todo el lote de toallas sea aceptado o rechazado. El recuento para el análisis será el número de defectos. Cada toalla puede tener más de un defecto, como un hilo tirado o una variación de color. El representante de ventas y el proveedor acuerdan los siguientes requisitos:
  • El AQL para el plan de muestreo es 0,01. El alfa para el análisis es 0,05. La probabilidad de aceptar un lote con 1 defecto por cada 100 toallas es de al menos el 95%.
  • El RQL es 0.06. La beta del análisis es de 0,10. La probabilidad de rechazar un lote con 6 defectos por cada 100 toallas es de al menos el 90%.

El script aproxima los valores de Minitab Statistical Software para el muestreo de aceptación de atributos cuando el tipo de medición es el número de defectos y la unidad para los niveles de calidad es defectos por unidad.

El script de ejemplo R muestra las siguientes capacidades de la integración:
  • Lea los valores de las columnas en Minitab Statistical Software.
  • Envíe una tabla de valores al panel Salida de Minitab.
  • Mostrar advertencias y mensajes de error estándar de R en el panel Salida de Minitab.
Utilice los siguientes archivos para llevar a cabo los pasos de esta sección:
Archivo Descripción
acceptance_sampling.R Secuencia de R comandos que toma especificaciones de las columnas de una hoja de cálculo de Minitab y muestra una tabla de valores para la curva OC.

Todos los archivos a los que se hace referencia en esta guía están disponibles en este archivo .ZIP: r_guide_files.zip.

Prerrequisitos

  • El script se basa en los nombres de columna para proporcionar las especificaciones para el análisis: AQL, alpha, RQL, beta.

  • El R script del siguiente ejemplo requiere los siguientes R paquetes:
    mtbr
    El R paquete que integra Minitab y R. En el ejemplo, las funciones de este módulo envían los resultados de R a Minitab. Para obtener información sobre cómo instalar el paquete de R Minitab, vaya al Paso 2:Instale mtbr.

Pasos para ejecutar el ejemplo

  1. Asegúrese de haber instalado los módulos necesarios: mtbr.
  2. Guarde el archivo de script de R, acceptance_sampling.R, en su ubicación predeterminada para archivos de Minitab. Para obtener más información sobre dónde busca Minitab los R archivos de script, vaya a Carpetas predeterminadas para archivos R para Minitab.
  3. Abra el conjunto de datos de muestra R_Muestreo_de_aceptación.MWX.
  4. En la sección Línea de comandos de Minitab, ingrese RSCR "acceptance_sampling.R".
  5. Seleccione Corrida.

acceptance_sampling. R

# Load necessary library
#Original code by Valentina Tillman
library(mtbr)

# Define Parameters
AQL <- mtb_get_column("AQL")  # Acceptable Quality Level
alpha <- mtb_get_column("alpha")  # Producer's risk
RQL <- mtb_get_column("RQL")  # Rejectable Quality Level
beta <- mtb_get_column("beta")  # Consumer's risk

# ---- Validate inputs ----

# Validate AQL and RQL
if (is.null(AQL) || length(AQL) != 1 || is.na(AQL)) {
  warning("Define the AQL with a value in the first row of a column with the title AQL.")
}
if (is.null(RQL) || length(RQL) != 1 || is.na(RQL)) {
  warning("Define the RQL with a value in the first row of a column with the title RQL.")
}

# Validate alpha
if (is.null(alpha) || length(alpha) != 1 || is.na(alpha)) {
  alpha <- 0.05
  message("Missing or multiple values for alpha. The analysis uses 0.05. To specify alpha, enter a value in the first row of a column with the title alpha.")
}

# Validate beta
if (is.null(beta) || length(beta) != 1 || is.na(beta)) {
  beta <- 0.10
  message("Missing or multiple values for beta. The analysis uses 0.10. To specify beta, enter a value in the first row of a column with the title beta.")
}

#Simple comparison of AQL and RQL
if (AQL >= RQL) {
  stop("Specify an RQL that is greater than the AQL.")
}

# ---- Calculations ----
# Use algorithm to find n,c for the Poisson distribution
found <- FALSE
for (n in 10:5000) {
  lamA <- n*AQL
  lamR <- n*RQL
  for (c in 0:n) {
    p_accept_AQL <- ppois(c, lamA)
    p_accept_RQL <- ppois(c, lamR)
    if (p_accept_AQL >= 1 - alpha && p_accept_RQL <= beta) {
      found <- TRUE
      break
    }
  }
  if (found) break
}

if (found != TRUE) { 
  mtb_add_message ("No solution found. Results are for the largest values of n and c in the search.")
  }

# Generate OC curve values for number of defects per unit
p_vals <- seq(0.003, 0.117, by = 0.006)
lambda_vals <- p_vals * n
OC_vals <- ppois(c, lambda_vals)

# ---- Outputs ----
#Display analysis inputs
show_AQL <- sprintf("AQL: %s", sub("\\.?0+$", "", formatC(AQL, format = "f", digits = 6)))
mtb_add_message(show_AQL)
show_RQL <- sprintf("RQL: %s", sub("\\.?0+$", "", formatC(RQL, format = "f", digits = 6)))
mtb_add_message(show_RQL)
show_alpha <- sprintf("alpha: %s", sub("\\.?0+$", "", formatC(alpha, format = "f", digits = 6)))
mtb_add_message(show_alpha)
show_beta <- sprintf("beta: %s", sub("\\.?0+$", "", formatC(beta, format = "f", digits = 6)))
mtb_add_message(show_beta)

#Display calculated solutions
show_sample_size <- sprintf("Sample size: %d", n)
mtb_add_message(show_sample_size)
show_defects <- sprintf("Acceptance number: %d", c)
mtb_add_message(show_defects)

# OC Curve Table
oc_table <- data.frame("Lot_Defects_per_Unit" = p_vals, "Probability_of_Acceptance" = OC_vals)
head(oc_table, 10)

mytitle <- "OC Table" 
myheaders <- names(oc_table)
mtb_add_table(columns = oc_table, headers = myheaders, title = mytitle)

Resultados

R Script

Estos resultados provienen de software externo.
AQL: 0.01
RQL: 0.06
alpha: 0.05
beta: 0.1
Sample size: 112
Acceptance number: 3

OC Table

Lot_Defects_per_UnitProbability_of_Acceptance
0.0030.999593
0.0090.980517
0.0150.909779
0.0210.788694
0.0270.641855
0.0330.494988
0.0390.365054
0.0450.259456
0.0510.178812
0.0570.120085
0.0630.078892
0.0690.050862
0.0750.032260
0.0810.020172
0.0870.012457
0.0930.007607
0.0990.004600
0.1050.002757
0.1110.001639
0.1170.000968