Каковы наилучшие методы для подбора «режима» данных, взятых из непрерывного распределения?
Поскольку этот режим технически не определен (верно?) Для непрерывного распространения, я действительно спрашиваю: «Как вы находите наиболее распространенное значение»?
Если вы предполагаете, что родительский дистрибутив является гауссовским, вы можете скопировать данные и найти, скажем, режим - это местоположение бина с наибольшим количеством. Тем не менее, как вы определяете размер корзины? Доступны ли надежные реализации? (т. е. устойчив к выбросам). Я использую python
/ scipy
/ numpy
, но я, вероятно, могу перевести R
без особых затруднений.
distributions
fitting
mode
keflavich
источник
источник
Ответы:
В R применяется метод, который не основан на параметрическом моделировании базового распределения и использует оценщик ядра по умолчанию для плотности до 10000 гамма-распределенных переменных:
возвращает 0,199, что является значением x, которое, по оценкам, имеет наибольшую плотность (оценки плотности сохраняются как "z $ y").
источник
Предположим, вы создали гистограмму размером бина b, а самый большой бин имеет k записей из общей выборки размера n. Тогда средний PDF в этой корзине можно оценить как b * k / n.
Проблема заключается в том, что другая ячейка, в которой меньше элементов, может иметь высокую плотность пятна. Вы можете знать об этом, только если у вас есть разумное предположение о скорости изменения PDF. Если вы это сделаете, то вы можете оценить вероятность того, что второй по величине контейнер фактически содержит режим.
Основная проблема заключается в следующем. Образец обеспечивает хорошее знание CDF по теореме Колмогорова-Смирнова и, таким образом, хорошую оценку медианы и других квантилей. Но знание приближения к функции в L1 не дает приблизительного знания ее производной. Таким образом, ни один образец не дает хорошего знания PDF без дополнительных предположений.
источник
Вот некоторые общие эскизы решений, которые также работают для многомерных распределений:
Обучите f-GAN с обратной дивергенцией KL, не давая случайного ввода в генератор (т.е. заставьте его быть детерминированным).
Тренируйте f-GAN с обратной дивергенцией KL, перемещайте входное распределение к генератору в направлении дельта-функции Дирака в процессе обучения и добавляйте штраф к градиенту к функции потерь генератора.
Обучите (дифференцируемую) порождающую модель, которая может оценить приблизительное значение pdf в любой точке (я полагаю, что, например, VAE, модель на основе потока или модель авторегрессии подойдут). Затем используйте некоторый тип оптимизации (можно использовать некоторую разновидность градиентного подъема, если логический вывод модели дифференцируем), чтобы найти максимум этого приближения.
источник