Обчислення статистики 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))