営業部門の担当者が、展示会で配るためにベンダーからタオルを購入します。営業担当者は、タオルのロット全体が受け入れられるか拒否されるように、サンプリング計画を実装したいと考えています。解析のカウントは、欠陥の数になります。各タオルには、糸の引っ張りや色の変化など、複数の欠陥がある場合があります。営業担当者と仕入先は、以下の要件について合意します。
  • サンプリング計画の AQL は 0.01 です。分析のアルファは 0.05 です。タオル100枚あたり1つの欠陥があるロットを受け入れる確率は、少なくとも95%です。
  • RQL は 0.06 です。分析のベータは 0.10 です。タオル100枚あたり6つの欠陥があるロットを拒否する確率は、少なくとも90%です。

このスクリプトは、測定タイプが欠陥の数で、品質レベルの単位が単位あたりの欠陥数である場合に、計数抜取検査計画用 Minitab Statistical Software の値を近似します。

スクリプト R 例は、統合の次の機能を示しています。
  • Minitab Statistical Softwareの列から値を読み取ります。
  • 値の表をMinitabの[出力]ペインに送信します。
  • R標準誤差からの警告とメッセージをMinitab出力ペインに表示します。
このセクションの手順を実行するには、次のファイルを使用します。
ファイル 説明
acceptance_sampling.R Minitabワークシートの列から仕様を取得し、OC曲線の値の表を表示する R スクリプト。

このガイドで参照されるすべてのファイルは、次の.ZIPファイルで入手可能です:r_guide_files.zip.

必要条件

  • スクリプトは、列名に依存して分析の仕様を指定します。 AQL, alpha, RQL, beta.

  • 以下のRスクリプトの例では、以下のRパッケージが必要です:
    mtbr
    MinitabとRを統合するRパッケージ。この例では、このモジュールの関数からR結果がMinitabに送信されます。Minitabの R パッケージのインストール方法については、 手順2を参照してください。 mtbrをインストールします

例を実行する手順

  1. 次の必要なモジュールがインストールされていることを確認します:mtbr.
  2. Rスクリプトファイル、acceptance_sampling.RをMinitabのデフォルトのファイル位置に保存します。 Minitabが Rスクリプトファイルを探す場所の詳細については、MinitabのRファイルのデフォルトのフォルダを参照してください。
  3. R_抜取検査.MWXサンプルデータを開きます。
  4. Minitabのコマンドプロンプトペインに、「RSCR "acceptance_sampling.R"」と入力します。
  5. 実行 を選択します。

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 Script

これらの結果は外部ソフトウェアからのものです。
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