Um representante de um departamento de vendas compra toalhas de um fornecedor para distribuir em feiras. O representante de vendas deseja implementar um plano de amostragem para que todo o lote de toalhas seja aceito ou rejeitado. A contagem para a análise será o número de defeitos. Cada toalha pode ter mais de um defeito, como uma linha puxada ou uma variação de cor. O representante de vendas e o fornecedor concordam com os seguintes requisitos:
  • O NQA para o plano amostral é de 0,01. O alfa para a análise é 0,05. A probabilidade de aceitar um lote com 1 defeito por 100 toalhas é de pelo menos 95%.
  • O NQR é 0,06. O beta para a análise é 0,10. A probabilidade de rejeitar um lote com 6 defeitos por 100 toalhas é de pelo menos 90%.

O script aproxima os valores do Minitab Statistical Software para amostragem de aceitação de atributos quando o tipo de medição é o número de defeitos e a unidade para níveis de qualidade é defeitos por unidade.

O script de exemplo R demonstra os seguintes recursos da integração:
  • Leia os valores das colunas no Minitab Statistical Software.
  • Envie uma tabela de valores para o painel Saída do Minitab.
  • Exiba avisos e mensagens do erro padrão R no painel Saída do Minitab.
Use o seguinte arquivo para executar as etapas nesta seção:
Arquivo Descrição
acceptance_sampling.R Um R script que obtém especificações de colunas em uma planilha do Minitab e exibe uma tabela de valores para a curva OC.

Todos os arquivos mencionados neste guia estão disponíveis neste arquivo .ZIP : r_guide_files.zip.

Pré-requisitos

  • O script depende dos nomes das colunas para fornecer as especificações para a análise: AQL, alpha, RQL, beta.

  • O script R no exemplo abaixo requer os seguintes pacotes R:
    mtbr
    O pacote R que integra o Minitab e o R. No exemplo, as funções deste módulo enviam resultados do R para o Minitab. Para obter informações sobre como instalar o pacote do R Minitab, vá para a Etapa 2: Instale o mtbr.

Etapas para executar o exemplo

  1. Instale os módulos necessários: mtbr.
  2. Salve o arquivo de script do R, acceptance_sampling.R, no local do arquivo padrão do Minitab. Para obter mais informações sobre onde o Minitab procura os arquivos de script do R, acesse Pastas padrão de arquivos R para o Minitab.
  3. Abra o conjunto de dados de amostra R_Amostragem_de_aceitação.MWX.
  4. No painel Linha de comando do Minitab, digite RSCR "acceptance_sampling.R".
  5. Selecione Ensaio.

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

Esses resultados são 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