시작하기무료로 시작하기

K-S 통계량 계산하기

data1data2, 두 데이터셋으로부터 콜모고로프-스미르노프(Kolmogorov-Smirnov) 통계량을 계산하는 함수를 작성하세요. 여기서 data2는 비교 대상인 이론적 분포로부터 추출한 샘플로 구성됩니다. 즉, 이 방법은 해커 통계(hacker stats)를 활용하여 데이터셋과 이론적 분포 사이의 K-S 통계량을 계산하는 것으로, 두 경험적 데이터셋 간의 K-S 통계량을 구하는 것이 아님에 유의하세요. 공식 ECDF 값을 계산하기 위해 앞서 선택한 함수는 dcst.ecdf_formal()로 제공됩니다.

이 연습은 강의의 일부입니다

통계적 사고 사례 연구

강의 보기

연습 안내

  • dcst.ecdf()를 사용하여 data1의 공식 ECDF에서 볼록 꼭짓점(convex corners) 값을 계산하고, 결과를 변수 xy에 저장하세요.
  • dcst.ecdf_formal()을 사용하여 data2로부터 결정된 이론적 CDF를 볼록 꼭짓점 x에서 계산하고, 결과를 변수 cdf에 저장하세요.
  • 공식 ECDF의 오목 꼭짓점(concave corners)과 이론적 CDF 사이의 거리를 계산하고, 결과를 D_top에 저장하세요.
  • 공식 ECDF의 볼록 꼭짓점과 이론적 CDF 사이의 거리를 계산하세요. 볼록 꼭짓점의 y 값을 구하려면 y에서 1/len(data1)을 빼야 합니다. 결과를 D_bottom에 저장하세요.
  • D_topD_bottom의 모든 항목 중 최댓값을 K-S 통계량으로 반환하세요. 이를 위해 D_topD_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))
코드 편집 및 실행