QCプラネッツ 品質のプロフェッショナルを育成するサイト

OC曲線(二項分布、ポアソン分布)を描こう

抜取検査

OC曲線(二項分布、ポアソン分布)を描こう

「OC曲線を作り方がわからない」、「二項分布、ポアソン分布のOC曲線が描けない」など困っていませんか?

こういう疑問に答えます。

本記事のテーマ

OC曲線(二項分布、ポアソン分布)を描こう

抜取検査はすべてOC曲線をベースに考える

抜取検査の理論はすべてOC曲線で考えるため、OC曲線がすぐ描ける環境が必須です。

本記事ではExcel VBAを使ってOC曲線を描き、抜取検査の理論を追究できる準備をします。

  • ➀OC曲線を描こう
  • ②OC曲線の特徴

●You tube動画でも解説しています。

➀OC曲線を描こう

二項分布のOC曲線をExcelで描く

下図のように,Excelファイル(.xlsm)を用意し、
①シート”二項”に
②データ間隔[%]と③(n,c)の値を入れてください。
④VBAで④のように自動計算します。

ロット合格率L(p)=\(\sum_{r=0}^{c} {}_nC_r p^r (1-p)^{n-r}\)
Excelではx=pとして計算します。

OC曲線

VBAプログラム例

1. Sub oc1()
2.
3. Dim nn(1 To 100) As Variant, cc(1 To 10000) As Variant
4. Dim tt(1 To 10000) As Double, ta(1 To 10000) As Double
5. Dim SH As String, ab As Double
6. Dim ncol As Long, nrow As Long
7.
8. SH = “二項” ‘計算シート
9. ncol = Worksheets(SH).Cells(1, Columns.Count).End(xlToLeft).Column – 5
10. ‘最大列数
11.
12. ab = Worksheets(SH).Cells(2, 1) ‘間隔%から計算行数を計算
13.
14. nrow = Int(100 / ab) + 1 ‘間隔%から計算行数を計算
15.
16. ‘初期化
17. Range(Worksheets(SH).Cells(3, 6), Worksheets(SH).Cells(10000, 100)).ClearContents
18. Range(Worksheets(SH).Cells(6, 5), Worksheets(SH).Cells(10000, 100)).ClearContents
19.
20. Worksheets(SH).Cells(6, 5) = 0.001 ‘x=0の近い数を代入
21.
22. For i1 = 1 To ncol
23. Worksheets(SH).Cells(5, 5 + i1) = _
24. ( & Worksheets(SH).Cells(1, 5 + i1) & “,” & Worksheets(SH).Cells(2, 5 + i1) & “)”
25. nn(i1) = Worksheets(SH).Cells(1, 5 + i1) ‘N
26. cc(i1) = Worksheets(SH).Cells(2, 5 + i1) ‘c
27. Next i1
28.
29. For i1 = 1 To nrow ‘計算行数を算出
30. If i1 > 1 Then
31. ta(i1) = ta(i1 – 1) + ab
32. tt(i1) = ta(i1) / 100
33. Worksheets(SH).Cells(i1 + 5, 5) = ta(i1)
34. End If
35. Next i1
36.
37. For i1 = 1 To nrow
38. For j1 = 1 To ncol
39. For k1 = 0 To cc(j1)
40. Worksheets(SH).Cells(i1 + 5, 5 + j1) = Worksheets(SH).Cells(i1 + 5, 5 + j1) + _
41. WorksheetFunction.Combin(nn(j1), k1) * tt(i1) ^ k1 * (1 – tt(i1)) ^ (nn(j1) – k1)
42. ‘二項分布の式からOC曲線を作る
43. Next k1
44. Next j1
45. Next i1
46.
47. End Sub

ポアソン分布のOC曲線をExcelで描く

下図のように,Excelファイル(.xlsm)を用意し、
①シート”二項”に
②データ間隔[%]と③(n,c)の値を入れてください。
④VBAで④のように自動計算します。

ロット合格率L(p)=\(\sum_{r=0}^{c} exp(-np) \frac{(np)^r}{r!}\)
Excelではx=pとして計算します。ポアソン分布はnpを代入する点に注意します。

OC曲線

VBAプログラム例

1. Sub oc2()
2.
3. Dim nn(1 To 100) As Variant, cc(1 To 10000) As Variant
4. Dim tt(1 To 10000) As Double, ta(1 To 10000) As Double
5. Dim SH As String, ab As Double
6. Dim ncol As Long, nrow As Long
7.
8. SH = “ポアソン”
9. ncol = Worksheets(SH).Cells(1, Columns.Count).End(xlToLeft).Column – 5
10. ‘最大列数
11.
12. ab = Worksheets(SH).Cells(2, 1) ‘間隔%から計算行数を計算
13.
14. nrow = Int(100 / ab) + 1 ‘間隔%から計算行数を計算
15.
16. ‘初期化
17. Range(Worksheets(SH).Cells(3, 6), Worksheets(SH).Cells(10000, 100)).ClearContents
18. Range(Worksheets(SH).Cells(6, 5), Worksheets(SH).Cells(10000, 100)).ClearContents
19.
20. Worksheets(SH).Cells(6, 5) = 0 ‘x=0を代入
21.
22. For i1 = 1 To ncol
23. Worksheets(SH).Cells(5, 5 + i1) = _
24. ( & Worksheets(SH).Cells(1, 5 + i1) & “,” & Worksheets(SH).Cells(2, 5 + i1) & “)”
25. nn(i1) = Worksheets(SH).Cells(1, 5 + i1) ‘N
26. cc(i1) = Worksheets(SH).Cells(2, 5 + i1) ‘c
27. Next i1
28.
29. For i1 = 1 To nrow ‘計算行数を算出
30. If i1 > 1 Then
31. ta(i1) = ta(i1 – 1) + ab
32. tt(i1) = ta(i1) / 100
33. Worksheets(SH).Cells(i1 + 5, 5) = ta(i1)
34. End If
35. Next i1
36.
37. Dim ramda As Double, fact As Double
38.
39. For i1 = 1 To nrow
40. For j1 = 1 To ncol
41. ‘λ=Nx/100で導出
42. ramda = _
43. Worksheets(SH).Cells(1, 5 + j1) * Worksheets(SH).Cells(i1 + 5, 5) / 100
44. fact = 1
45. For k1 = 0 To cc(j1)
46. If k1 > 1 Then
47. fact = fact * k1 ‘階乗!を計算
48. End If
49. Worksheets(SH).Cells(i1 + 5, 5 + j1) = _
50. Worksheets(SH).Cells(i1 + 5, 5 + j1) + Exp(-ramda) * ramda ^ k1 / fact
51. ‘ポアソン分布からOC曲線を導出
52. Next k1
53. Next j1
54. Next i1
55.
56. End Sub

OC曲線の特徴を理解する

次の変数を変えたらOC曲線はどう変化しますか?

(1)cを変える
(2)nを変える

グラフを描いて理解する

上記のExcelシートで解析しましょう。,

二項分布で次の値を入れます。
(n,c)=(100,10),(100,30),(300,30)

OC曲線

いろいろな値で試してください。

数式で理解する

グラフの変化を見て、なぜそうなるのか?を考えます。

(1)cを変える
(2)nを変える

●二項分布
L(p)=\(\sum_{r=0}^{c} {}_nC_r p^r (1-p)^{n-r}\)
●ポアソン分布
L(p)=\(\sum_{r=0}^{c} exp(-np) \frac{(np)^r}{r!}\)

(1)cを変えるは、\(\sum_{r=0}^{c}\)のcを変えるで、
Cが増えると加算が増えます。L(p)は増加します。

ここから、

(2)nを変えるは、\((1-p)^{n-r}\)のnを変えるで、
nが増えると\((1-p)^{n-r}\)と\(exp(-np) (np)^r\)は下がります。L(p)は低下します。

数式でもL(P)の変化が追えるようになりましょう。

QC検定®でも重要なポイントです。

抜取検査の演習問題【QC検定®2級対策】
QC検定®2級で必ず出題される抜取検査の演習問題とその解法を解説します。サンプリング、OC曲線、調整型抜取表の見方を5以内に解けるための流れとテクニックについて解説します。QC検定®級合格したい方は必見です。さっと解けるか?チェックしてください。

●商標使用について、
①QC検定®と品質管理検定®は、一般財団法人日本規格協会の登録商標です。
➁このコンテンツは、一般財団法人日本規格協会の承認や推奨、その他の検討を受けたものではありません。
➂QCプラネッツは、QC検定®と品質管理検定®の商標使用許可を受けています。

まとめ

OC曲線を自分で作りましょう。抜取検査の理論をマスターするために必要です。

  • ➀OC曲線を描こう
  • ②OC曲線の特徴


Warning: count(): Parameter must be an array or an object that implements Countable in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 119

    Warning: Invalid argument supplied for foreach() in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 122
error: Content is protected !!