В математике и физике, выборка по уровням это разновидность выборки методом случайных блужданий, основывающаяся на том факте что для выборки функции с заданным распределением достаточно производить равномерноую выборку из области под графиком плотности вероятности.
Реализация Для получения выборки случайной величины с функцией плотности введём дополнительную переменную и выполним следующие шаги: имея выбранное значение x мы выбираем y равномерно случайно в интервале ; имея y мы выбираем x случайно равномерно из множества . Результат x получается отбрасыванием значений y.
Пример Для получения выборки из нормального распределения выберем начальное значение x — пусть это будет 0. После каждой выборки x выберем y случайно равномерно из ; после каждой выборки y выберем x случайно равномерно из , где .
Реализация на языке Macsyma: slice(x) := block([y, alpha], y:random(exp(-x^2 / 2.0) / sqrt(2.0 * dfloat(%pi))), alpha:sqrt(-2.0 * ln(y * sqrt(2.0 * dfloat(%pi)))), x:signum(random()) * random(alpha) );
См. также Метод Монте-Карло Цепь Маркова
Ссылки Radford M. Neal, «Slice Sampling». The Annals of Statistics, 31(3):705-767, 2003.
Категория:Метод Монте-Карло