Распределение Парето достаточно простое, чтобы учесть метод преобразования (он же Выборка обратного преобразования ).CDF распределения Парето:
$$ F (x) = \ int_ {x_ {min}} ^ xf (x ') \, dx' = 1- \ left (\ frac {x_ {min}} {x} \ right ^ k $$
, который можно аналитически преобразовать в
$$ F ^ {- 1} (y) = x_ {min} \ cdot (1-y) ^ {- 1 / k} $$
Таким образом, если вы преобразуете случайные числа, равномерно распределенные по $ (0,1) $, с помощью $ F ^ {- 1} $, вы получаете случайные числа, распределенные по Парето..
Редактировать: Извините, очевидно, латексный код здесь не поддерживается. Вот для вашего удобства код R:
k <- 5 # parameter k of the Pareto distribution
x.min <- 2 # cutoff point of Pareto distribution
N <- 500 # number of random points
x.random <- x.min*(1-runif(N))^(-1/k)
А вотпрактическая демонстрация того, что это работает:
h <- hist(x.random, freq=FALSE, plot=TRUE)
x <- seq(x.min, h$breaks[length(h$breaks)], by=0.01)
lines(x, k*x.min^k/x^(k+1), col="red")
график для k = 5 и x.min = 2