figsize(12.5, 5) # tau_samples, lambda_1_samples, lambda_2_samples은 # 해당 사후확률분포에서 얻은 표본 N개가 포함된다. N = tau_samples.shape[0] expected_texts_per_day = np.zeros(n_count_data) # 데이터 포인트 수 for day in range(0, n_count_data): # ix는’day’ 값 이전에 발생한 변환점에 해당하는 # 모든 tau 표본의 불(boolean) 인덱스다. ix = day < tau_samples # 각 사후확률분포의 표본은 tau 값에 해당한다. tau 값은 변환점 이전인지(lambda_1) # 이후인지(lambda_2)를 가리킨다. # lambda_1/2의 사후확률분포 표본을 취함으로써 우리는 모든 표본을 평균하여 그날의 # lambda 기댓값을 얻을 수 있다. # 설명한 바와 같이 문자 메시지 개수 확률변수는 푸아송분포를 따른다. # 그러므로 lambda(푸아송 모수)는 메시지 개수의 기댓값이다. expected_texts_per_day[day] = (lambda_1_samples[ix].sum() + lambda_2_samples[~ix].sum()) / N plt.plot(range(n_count_data), expected_texts_per_day, lw=4, color=”#E24A33”, label=“수신한 문자 메시지의 기댓값”) plt.xlim(0, n_count_data) plt.xlabel(“일”, fontsize=13) plt.ylabel(“문자 메시지의 개수”, fontsize=13) plt.title(“수신한 문자 메시지의 기댓값”) plt.ylim(0, 60) plt.bar(np.arange(len(count_data)), count_data, color=”#348ABD”, alpha=0.65, label=“관측된 문자 메시지의 개수(하루당)”) plt.legend(loc=“upper left”); print(expected_texts_per_day)