순열 표본 시각화
순열 표본이 어떻게 동작하는지 감을 잡기 위해, 이번 연습에서는 순열 표본을 생성해 그래프로 살펴보겠습니다.
이번에도 Sheffield 기상 관측소 데이터를 사용하되, 6월(건기)과 11월(우기)의 월 강수량을 비교해 보겠습니다. 두 분포가 다를 것으로 예상되므로, 두 분포가 동일하게 분포한다고 가정했을 때 ECDF가 어떻게 보일지 확인하려고 순열 표본을 만들어 보겠습니다.
데이터는 NumPy 배열 rain_june와 rain_november에 저장되어 있습니다.
참고로, permutation_sample()의 함수 시그니처는 permutation_sample(data_1, data_2)이며 반환값은 permuted_data = np.random.permutation(np.concatenate((data_1, data_2)))에서 permuted_data[:len(data_1)], permuted_data[len(data_1):]입니다.
이 연습은 강의의 일부입니다
Python으로 하는 통계적 사고 (2부)
연습 안내
for루프를 작성해 순열 표본 50개를 생성하고, 각 표본의 ECDF를 계산해 그래프로 그리세요.permutation_sample()함수를 사용해rain_june와rain_november에서 한 쌍의 순열 표본을 생성하세요.- 각 순열 표본에 대해
ecdf()함수를 사용해 ECDF의x와y값을 생성하세요. - 첫 번째 순열 표본의 ECDF(
x_1,y_1)를 점으로 그리세요. 두 번째 순열 표본(x_2,y_2)도 동일하게 그리세요.
- 실제 데이터
rain_june와rain_november의 ECDF용x와y값을 생성하고, 각각color='red',color='blue'키워드 인수로 ECDF를 그리세요. - 축 레이블을 지정하고, 여백을 2%로 설정한 뒤 그래프를 표시하세요. 이 부분은 이미 준비되어 있으니, 그대로 답변 제출만 하시면 그래프를 볼 수 있어요!
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
for _ in ____:
# Generate permutation samples
perm_sample_1, perm_sample_2 = ____
# Compute ECDFs
x_1, y_1 = ____
x_2, y_2 = ____
# Plot ECDFs of permutation sample
_ = plt.plot(____, ____, marker='.', linestyle='none',
color='red', alpha=0.02)
_ = plt.plot(____, ____, marker='.', linestyle='none',
color='blue', alpha=0.02)
# Create and plot ECDFs from original data
x_1, y_1 = ____
x_2, y_2 = ____
_ = plt.plot(x_1, y_1, marker='.', linestyle='none', color='red')
_ = plt.plot(x_2, y_2, marker='.', linestyle='none', color='blue')
# Label axes, set margin, and show plot
plt.margins(0.02)
_ = plt.xlabel('monthly rainfall (mm)')
_ = plt.ylabel('ECDF')
plt.show()