Я намагаюся генерувати випадкові вибірки з користувальницького pdf за допомогою R. Мій pdf такий:
Я створив рівномірні зразки, а потім спробував перетворити його на свій власний розподіл. Я зробив це, знайшовши cdf мого розповсюдження ( ) і встановивши його на єдиний зразок ( u ) та вирішивши для x .
Щоб генерувати випадкову вибірку з наведеним вище розподілом, отримайте рівномірний зразок і вирішіть для x у 3
Я реалізував це в R
і не отримую очікуваного розповсюдження. Чи може хтось вказати на недолік у моєму розумінні?
nsamples <- 1000;
x <- runif(nsamples);
f <- function(x, u) {
return(3/2*(x-x^3/3) - u);
}
z <- c();
for (i in 1:nsamples) {
# find the root within (0,1)
r <- uniroot(f, c(0,1), tol = 0.0001, u = x[i])$root;
z <- c(z, r);
}
nsamples <- 1e6
це був хороший матч.