Un représentant d’un service des ventes achète des serviettes d’un vendeur pour les donner lors de salons professionnels. Le commercial souhaite mettre en place un plan d’échantillonnage afin que l’ensemble du lot de serviettes soit accepté ou rejeté. Le nombre de défauts pris en compte pour l’analyse est le nombre de défauts. Chaque serviette peut présenter plus d’un défaut, comme un fil tiré ou une variation de couleur. Le commercial et le vendeur conviennent des exigences suivantes :
  • Le NQA du plan d’échantillonnage est de 0,01. L’alpha de l’analyse est de 0,05. La probabilité d’accepter un lot avec 1 défaut pour 100 serviettes est d’au moins 95 %.
  • Le NQR est de 0,06. Le bêta de l’analyse est de 0,10. La probabilité de rejeter un lot avec 6 défauts pour 100 serviettes est d’au moins 90 %.

Le script se rapproche des valeurs de Minitab Statistical Software pour l’échantillonnage d’acceptation des attributs lorsque le type de mesure est le nombre de défauts et l’unité des niveaux de qualité est le nombre de défauts par unité.

L’exemple R de script illustre les fonctionnalités suivantes de l’intégration :
  • Lire les valeurs des colonnes dans Minitab Statistical Software.
  • Envoyez une table de valeurs dans le volet Sortie de Minitab.
  • Affichez les avertissements et les messages de l’erreur standard R dans le volet Sortie Minitab.
Utilisez les fichiers suivants pour effectuer les étapes de cette section :
Fichier Description
acceptance_sampling.R Un script R qui extrait les spécifications des colonnes d’une feuille de calcul Minitab et affiche une table de valeurs pour la courbe OC.

Tous les fichiers référencés dans ce guide sont disponibles dans ce fichier .ZIP : r_guide_files.zip.

Conditions préalables

  • Le script s’appuie sur les noms de colonnes pour donner les spécifications de l’analyse : AQL, alpha, RQL, beta.

  • Le script R dans l'exemple ci-dessous exige les packages R suivants :
    mtbr
    Package R qui intègre Minitab et R. Dans l'exemple, les fonctions de ce module envoient les résultats R à Minitab. Pour plus d’informations sur l’installation du package R de Minitab, passez à l’étape 2 : Installez mtbr.

Étapes d’exécution de l’exemple

  1. Vérifiez que vous avez installé les modules exigés : mtbr.
  2. Enregistrez le fichier de script R, acceptance_sampling.R, à votre emplacement de fichier par défaut Minitab. Pour plus d’informations sur l'emplacement où Minitab R recherche des fichiers de script, allez dans Dossiers par défaut pour les fichiers R pour Minitab.
  3. Ouvrez l'ensemble de données échantillons R_Plan_de_contrôle.MWX.
  4. Dans le panneau Minitab Ligne de commande, saisissez RSCR "acceptance_sampling.R".
  5. Sélectionnez Essai.

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)

Résultats

R Script

Ces résultats proviennent de logiciels externes.
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