У меня есть заданная функция (назовем ее f (x)), и я использовал метод Монте-Карло, чтобы нормализовать ее. Я вычислил функцию плотности вероятности и после ее интегрирования получил кумулятивную функцию распределения.
f = function(x) ...
plot(f,xlim = c(0, 5), ylim = c(0, 1),main="f(x)")
mc.integral = function(f, n.iter = 1000, interval){
x = runif(n.iter, interval[1], interval[2])
y = f(x)
mean(y)*(interval[2] - interval[1])
}
MC = mc.integral(f, interval = c(0, 8))
print(MC)
densityFunction <- function(x){
return ((f(x)/MC))
}
distributionFunction <- function(x){
return (integrate(densityFunction,0,x)$value)
}
vd <- Vectorize(distributionFunction)
plot(vd,xlim = c(0, 8), ylim = c(0, 1),ylab = "y",main="E(f(x))")
Теперь моя следующая задача - использовать метод обратного преобразования / метод обратного кумулятивного распределения для генерации выборок и тестирования их с помощью теста Колмогорова-Смирнова, но я не знаю, как мне это сделать в R.
Не могли бы вы мне помочь?