Сравнение наборов данных с нестандартными распределениями вероятностей в Python

У меня есть несколько больших наборов данных, которые я использовал для создания нестандартных распределений вероятностей (с использованием numpy.histogram для объединения данных и функции scipy.interpolate interp1d для интерполяции полученных кривых). Я также создал функцию, которая может создавать образцы из этих пользовательских PDF-файлов с помощью пакета scipy.stats.

Моя цель - увидеть, как изменение размера моих выборок влияет на степень соответствия как дистрибутивов, из которых они получены, так и других PDF-файлов, и определить, насколько большой образец необходим, чтобы полностью определить, было ли оно получено из одного или другого. моих пользовательских PDF-файлов.

Для этого я понял, что мне нужно использовать какой-то непараметрический статистический анализ, то есть видеть, был ли набор данных взят из предоставленного распределения вероятностей. Проведя небольшое исследование, кажется, что тест Андерсона-Дарлинга идеально подходит для этого, однако его реализация на python (scipy.stats.anderson) кажется пригодной только для предустановленных распределений вероятностей, таких как нормальное, экспоненциальное и т. Д.

Итак, мой вопрос: с учетом множества нестандартных PDF-файлов (или CDF, если необходимо, или данных, которые я использовал для их создания), как лучше всего определить, насколько хорошо набор образцов данных соответствует каждой модели в Python? Если это тест Андерсона-Дарлинга, есть ли способ определить пользовательский PDF-файл для тестирования?

Спасибо. Любая помощь очень ценится.


person SeaWalk    schedule 26.05.2015    source источник


Ответы (1)


(1) «Откуда это из распределения X?» - это вообще вопрос, на который можно ответить априори, если вообще можно ответить; статистический тест для него скажет вам только «У меня большая выборка / не большая выборка», что может быть правдой, но не слишком полезно. Если вы пытаетесь классифицировать новые данные в том или ином дистрибутиве, мой совет - рассматривать это как проблему классификации и использовать созданный вами PDF-файл для вычисления p (class | data) = p (data | class) p (class) / p (данные), где ключевая часть p (данные | класс) - ваша гистограмма. Может быть, ты расскажешь подробнее о своей проблемной области.

(2) Вы можете применить тест Колмогорова-Смирнова, но это действительно бессмысленно, как упоминалось выше.

person Robert Dodier    schedule 26.05.2015
comment
Большое спасибо за ответ. Моя проблема в том, что на самом деле у меня никогда не будет данных, подходящих для моих моделей, это умозрительный подход к определению, сколько данных мне нужно собрать, чтобы различать мои отдельные модели. В части (1) вашего ответа формула, которую вы даете, выглядит как своего рода подгонка байесовской модели, это правильно? - person SeaWalk; 04.06.2015