germiona wrote:FireFox wrote:germiona wrote:
Ваша просьба не совсем понятна.
Вы ищете просто ликбез по теории вероятности и sampling-у из произвольных распределений, или что-то более серьезное?
Мне нужны формулв которые будут генерировать числа не основываясь на нормал дистриьбюшн.
Ок.
В таких случаях обычно советуют не имена профессоров, а книжки.
Значит-ца так:
Для начала стоит посмотреть как осуществляется sampling в стандартных случаях:
1) sample вычисляется быстро и элементарно (в одну строчку кода), если Вы можете посчитать inverse cdf (функцию обратную к cumulative distribution function) и Ваше распределение одномерно:
Code: Select all
sample = inverse_cdf(Math.random())
Для сложных многомерных распределений, с нехорошими cdf и pdf, можно применять модели основанные на стационарности Марковских цепей.
2)
Acception-rejection method вообще и
Metropolis-Hastings algorithm в частности.
Эти методы позволяют Вам делать sample из
произвольных многомерных распределений. Все, что Вам нужно --- уметь посчитать pdf (probability density function) Вашего распределения.
3)
Gibbs sampling. Все что Вам нужно знать это conditional probabilities Вашего распределения. Т.е. если у Вас есть страшное распределение с тремя параметрами a,b и c
p(a,b,c),
но вдруг оказалось, что вот эти распределения выглядят очень просто:
p(a|b,c),
p(b|a,c)
p(c|a,b)
(такое часто получается в Байесовском анализе, когда Вы вводите conjugate priors.)
то Gibbs sampling найдет Вам sample из исходного p(a,b,c) и причем довольно быстро.
Конкретно sampling-ом я не интересовался.
Книжек по sampling-у не знаю.
Сам могу порекомендовать вот эту:
http://lib.mexmat.ru/books/10303
Конкретно про Levy Distribution, если Вы имеете ввиду тот же Levy Distribution, что и
Wikipedia,
то это распределение лишь inverse gamma.
Sampling из inverse gamma --- проблема решенная.