K-S 통계량 계산하기
data1과 data2, 두 데이터셋으로부터 콜모고로프-스미르노프(Kolmogorov-Smirnov) 통계량을 계산하는 함수를 작성하세요. 여기서 data2는 비교 대상인 이론적 분포로부터 추출한 샘플로 구성됩니다. 즉, 이 방법은 해커 통계(hacker stats)를 활용하여 데이터셋과 이론적 분포 사이의 K-S 통계량을 계산하는 것으로, 두 경험적 데이터셋 간의 K-S 통계량을 구하는 것이 아님에 유의하세요. 공식 ECDF 값을 계산하기 위해 앞서 선택한 함수는 dcst.ecdf_formal()로 제공됩니다.
이 연습은 강의의 일부입니다
통계적 사고 사례 연구
연습 안내
dcst.ecdf()를 사용하여data1의 공식 ECDF에서 볼록 꼭짓점(convex corners) 값을 계산하고, 결과를 변수x와y에 저장하세요.dcst.ecdf_formal()을 사용하여data2로부터 결정된 이론적 CDF를 볼록 꼭짓점x에서 계산하고, 결과를 변수cdf에 저장하세요.- 공식 ECDF의 오목 꼭짓점(concave corners)과 이론적 CDF 사이의 거리를 계산하고, 결과를
D_top에 저장하세요. - 공식 ECDF의 볼록 꼭짓점과 이론적 CDF 사이의 거리를 계산하세요. 볼록 꼭짓점의
y값을 구하려면y에서1/len(data1)을 빼야 합니다. 결과를D_bottom에 저장하세요. D_top과D_bottom의 모든 항목 중 최댓값을 K-S 통계량으로 반환하세요. 이를 위해D_top과D_bottom을 튜플로 묶어np.max()에 전달할 수 있습니다.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
def ks_stat(data1, data2):
# Compute ECDF from data: x, y
# Compute corresponding values of the target CDF
cdf = ____
# Compute distances between concave corners and CDF
D_top = ____ - ____
# Compute distance between convex corners and CDF
D_bottom = ____ - ____ + ____/____
return np.max((D_top, D_bottom))