ПочатиПочніть безкоштовно

Обчислення статистики K–S

Напишіть функцію для обчислення статистики Колмогорова — Смірнова за двома наборами даних, data1 і data2, де data2 складається зі зразків з теоретичного розподілу, з яким ви порівнюєте свої дані. Зверніть увагу, що це означає використання «hacker stats» для обчислення статистики K–S для набору даних і теоретичного розподілу, а не статистики K–S для двох емпіричних наборів даних. Зручно, що функція, яку ви щойно вибрали для обчислення значень формальної ECDF, має назву dcst.ecdf_formal().

Ця вправа є частиною курсу

Кейс-стаді зі статистичного мислення

Переглянути курс

Інструкції до вправи

  • Обчисліть значення опуклих кутів формальної ECDF для data1 за допомогою dcst.ecdf(). Збережіть результати у змінних x і y.
  • Використайте dcst.ecdf_formal(), щоб обчислити значення теоретичної CDF, визначеної за data2, у точках опуклих кутів x. Результат збережіть у змінній cdf.
  • Обчисліть відстані між вгнутими кутами формальної ECDF і теоретичною CDF. Збережіть результат як D_top.
  • Обчисліть відстань між опуклими кутами формальної ECDF і теоретичною CDF. Зверніть увагу, що потрібно відняти 1/len(data1) від y, щоб отримати значення y в опуклому куті. Збережіть результат у D_bottom.
  • Поверніть статистику K–S як максимум серед усіх елементів у D_top та D_bottom. Щоб це зробити, ви можете передати 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))
Редагувати та запускати код