각 모델에 대해 우리는 사후확률 시뮬레이션이 특정 온도일 때 값이 1인 횟수의 비율을 계산하려고 한다. 즉, 반환된 모든 시뮬레이션의 평균, P(Defect = 1|t)을 계산한다. 이렇게 해서 우리의 데이터셋의 각 데이터 포인트에서 결함의 사후확률을 얻는다. 예를 들어 우리가 사용한 모델의 경우 코드는 다음과 같다.
posterior_probability = simulations.mean(axis=0) print(“관측 | 시뮬레이션된 결함배열 | 결함의 사후확률 | 실제결함”) for i in range(len(D)): print(“%s | %s| %.2f | %d“ % (str(i).zfill(2),str(simulations[:10,i])[:-1] + ”…]”.ljust(12), posterior_probability[i], D[i]))
결과
관측 | 시뮬레이션된 결함배열 | 결함의 사후확률 | 실제결함
00 | [0 0 1 0 0 1 0 0 0 1…] | 0.45 | 0
01 | [0 1 1 0 0 0 0 0 0 1…] | 0.22 | 1
02 | [1 0 0 0 0 0 0 0 0 0…] | 0.27 | 0
03 | [0 0 0 0 0 0 0 1 0 1…] | 0.33 | 0
04 | [0 0 0 0 0 0 0 0 0 0…] | 0.39 | 0
05 | [1 0 1 0 0 1 0 0 0 0…] | 0.14 | 0
06 | [0 0 1 0 0 0 1 0 0 0…] | 0.12 | 0
07 | [0 0 0 0 0 0 1 0 0 1…] | 0.22 | 0
08 | [1 1 0 0 1 1 0 0 1 0…] | 0.88 | 1
09 | [0 0 0 0 0 0 0 0 0 1…] | 0.65 | 1
10 | [0 0 0 0 0 1 0 0 0 0…] | 0.22 | 1
11 | [0 0 0 0 0 0 0 0 0 0…] | 0.04 | 0
12 | [0 0 0 0 0 1 0 0 0 0…] | 0.39 | 0
13 | [1 1 0 0 0 1 1 0 0 1…] | 0.95 | 1
14 | [0 0 0 0 1 0 0 1 0 0…] | 0.39 | 0
15 | [0 0 0 0 0 0 0 0 0 0…] | 0.08 | 0
16 | [0 0 0 0 0 0 0 0 1 0…] | 0.23 | 0
17 | [0 0 0 0 0 0 1 0 0 0…] | 0.02 | 0
18 | [0 0 0 0 0 0 0 1 0 0…] | 0.06 | 0
19 | [0 0 0 0 0 0 0 0 0 0…] | 0.03 | 0
20 | [0 0 0 0 0 0 0 1 1 0…] | 0.07 | 1
21 | [0 1 0 0 0 0 0 0 0 0…] | 0.06 | 0
22 | [1 0 1 1 0 1 1 1 0 0…] | 0.86 | 1