single
Тест Колмогорова–Смирнова (KS)
Свайпніть щоб показати меню
Тест Колмогорова–Смирнова (KS) — непараметричний статистичний метод для перевірки, чи належать дві вибірки до одного розподілу.
У виявленні дрейфу ознак тест KS використовується для порівняння розподілів неперервної ознаки з двох наборів даних:
- Референтний набір даних (історичні або базові дані);
- Поточний набір даних (нові або нещодавні дані).
Тест KS працює шляхом вимірювання максимальної відстані між емпіричними функціями розподілу (ECDF) двох вибірок. Велика відстань свідчить про зміну базових розподілів, що може вказувати на дрейф.
Як працює тест KS
- Для кожного значення у об'єднаному наборі даних обчислюється частка зразків у кожній групі, які менші або дорівнюють цьому значенню;
- Знаходиться найбільша різниця між цими частками — це і є статистика KS;
- Статистика KS порівнюється з критичним значенням або використовується для обчислення p-значення, щоб визначити, чи є різниця статистично значущою.
Якщо статистика KS велика, а p-значення мале, це є свідченням зміни розподілу ознаки.
12345678910111213import numpy as np from scipy.stats import ks_2samp # Generate synthetic data for two periods np.random.seed(42) reference = np.random.normal(loc=0.0, scale=1.0, size=1000) current = np.random.normal(loc=0.5, scale=1.0, size=1000) # Apply the Kolmogorov–Smirnov test ks_stat, p_value = ks_2samp(reference, current) print("KS Statistic:", ks_stat) print("P-value:", p_value)
Тест KS добре підходить для виявлення дрейфу у неперервних ознаках, оскільки не робить припущень щодо базових розподілів. Проте він не підходить для категоріальних або дискретних ознак, а його чутливість може залежати від розміру вибірки. Крім того, тест є найефективнішим, коли дві вибірки незалежні та не містять збігів (дубльованих значень).
Під час використання KS-тесту для виявлення дрейфу результати інтерпретуються шляхом аналізу p-значення та статистики KS. Невелике p-значення (зазвичай менше 0,05) вказує на те, що нульову гіпотезу — про те, що обидві вибірки походять з одного розподілу — можна відхилити. Це свідчить про статистично значущий дрейф у розподілі ознаки. Чим більша статистика KS, тим більша різниця між двома розподілами. У практичному моніторингу ознаки з низькими p-значеннями позначаються для подальшого аналізу або дій.
Проведіть, щоб почати кодувати
Вам надано два числових вибірки ознак, що представляють розподіли даних у різні моменти часу:
sample_ref (референсний) та sample_new (поточний).
Ваше завдання — виконати тест Колмогорова–Смирнова (KS), щоб перевірити, чи суттєво відрізняється новий розподіл даних від референсного.
Кроки:
- Імпортувати необхідну функцію з
scipy.stats. - Обчислити KS-статистику та p-значення для двох вибірок.
- Порівняти p-значення з
alpha = 0.05. - Якщо
p_value < alpha, встановитиdrift_detected = True; інакше —False. - Вивести KS-статистику, p-значення та статус дрейфу.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат