Я моделирую данные, используя метод отклонения , где функция плотности X
задается как f(x)= C * e^(x) for all x in [0,1]
. Я определил g(x) = 1
и C
как максимум f(x)
, который равен 1/(e-1)
.
Я использовал следующий код для моделирования данных:
rejection <- function(f, C, g, rg, n) {
naccepts <- 0
result.sample <- rep(NA, n)
while (naccepts < n) {
y <- rg(1)
u <- runif(1)
if ( u <= f(y) / (C*g(y)) ) {
naccepts <- naccepts + 1
result.sample[naccepts] = y
}
}
result.sample
}
f <- function(x) ifelse(x>=0 & x<=1, (exp(x)), 0)
g <- function(x) 1
rg <- runif
C <- 1/(exp(1) -1)
result <- rejection(f, C, g,rg, 1000)
Тогда Я использую histogram
для сравнения смоделированных данных с curve
оригинала pdf
как
hist(result,freq = FALSE)
curve(f, 0, 1, add=TRUE)
Но полученный график довольно устарел! Сюжет здесь , поэтому я ищу любую помощь, чтобы уточнить, что не так в моей работе.