Как сделать выборку из сложного или составного дистрибутива в Haskell?

Я пытаюсь сгенерировать случайные массы для гипотетических планет в Haskell.Я хочу получить эти массы путем выборки бимодального распределения (в идеале суперпозиции двух нормальных распределений: одного, соответствующего малым планетам, и другого, соответствующего газовым гигантам). Я просмотрел пакет статистики, который предоставляет функцию quantile, которая может превратить равномерно распределенный Doubleв Doubleна ряд дистрибутивов. Но, похоже, нет никакой поддержки для составления дистрибутивов.

Этот конкретный случай можно было бы обойти, выбрав тот или иной дистрибутив для выборки заранее, но я хотел бы сделать это с одним дистрибутивом, тем более что позже мне может понадобиться настроить общий дистрибутив. Со временем я мог бы заменить нормальное распределение реальными данными обзоров неба.

Я подумываю реализовать отказную выборкусамостоятельно, которая довольно просто может обрабатывать произвольные распределения, но кажется довольно неэффективной, и определенно было бы не очень хорошей идеей реализовать ее, если решение уже существует. как библиотека.

Существует ли библиотека Haskell, поддерживающая выборку из составных или явно указанных дистрибутивов? Или существующая реализация выборки отклонения в Haskell? В качестве альтернативы, существует ли явная формула для обратной CDF суммы двух нормальных распределений?

6
задан interfect 31 May 2012 в 03:53
поделиться