Вычисление статистики Колмогорова–Смирнова
Напишите функцию для вычисления статистики Колмогорова–Смирнова по двум наборам данных — data1 и data2, где data2 содержит выборки из теоретического распределения, с которым вы сравниваете свои данные. Обратите внимание: здесь мы используем хакерскую статистику для вычисления статистики К–С для набора данных и теоретического распределения, а не для двух эмпирических наборов данных. Для удобства функция вычисления значений формальной эмпирической функции распределения уже доступна как dcst.ecdf_formal().
Это упражнение является частью курса
Примеры применения статистического мышления
Инструкции к упражнению
- Вычислите значения выпуклых угловых точек формальной эмпирической функции распределения для
data1с помощьюdcst.ecdf(). Сохраните результаты в переменныхxиy. - Используйте
dcst.ecdf_formal(), чтобы вычислить значения теоретической функции распределения, определённой поdata2, в выпуклых угловых точкахx. Сохраните результат в переменнойcdf. - Вычислите расстояния между вогнутыми угловыми точками формальной эмпирической функции распределения и теоретической функцией распределения. Сохраните результат в
D_top. - Вычислите расстояния между выпуклыми угловыми точками формальной эмпирической функции распределения и теоретической функцией распределения. Обратите внимание: чтобы получить значение
yв выпуклой угловой точке, необходимо вычесть1/len(data1)изy. Сохраните результат вD_bottom. - Верните статистику К–С как максимум всех элементов
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))