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

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

抜取検査

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

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

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

本記事のテーマ

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

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

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

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

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

記事の信頼性

記事を書いている私は、QC検定1級合格しましたが、与えられた条件にあわせるだけの抜取検査ではなく、自分で考えて設計できる検査ができるよう、さらにパワーアップしています。

●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検定でも重要なポイントです。

まとめ

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

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

error: Content is protected !!