Выборка по уровням

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Реализация[править | править исходный текст]

Для получения выборки случайной величины X с функцией плотности f(x) введём дополнительную переменную Y и выполним следующие шаги: имея выбранное значение x мы выбираем y равномерно случайно в интервале [0, f(x)]; имея y мы выбираем x случайно равномерно и множества f^{-1}[0, y]. Результат x is получается отбрасыванием значений y.

Пример[править | править исходный текст]

Для получения выборки из нормального распределения N(0,1) выберем начальное значение x -- пусть это будет 0. После каждой выборки x выберем y случайно равномерно из [0, e^{-x^2/2}/\sqrt{2\pi}]; после каждой выборки y выберем x случайно равномерно из [-\alpha, \alpha], где \alpha = \sqrt{-2\log(y\sqrt{2\pi})}.

Реализация на языке 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.