我有一个随机变量$ X $的pdf $ f(x)= 4x ^ 3 $,其中我需要模拟分布中的绘图。
我的解决方案是从pdf中找到cdf(第一期):
> pdf <- function(x){4*x^3}
> cdf <- integrate(pdf,lower=0,upper=x)
Error in integrate(pdf, lower = 0, upper = x) : object 'x' not found
一旦我获得了cdf $ U $,我将设置$ X = F ^ -1(U)$。我注意到pdf遵循Beta分发版,其中$ \ alpha = 4 $和$ \ beta = 1 $。
最好通过inverse beta function
找到$ F ^ -1 $?有没有一种快速的方法可以找到R中β函数的倒数?
答案 0 :(得分:0)
由于您已将pdf
标识为测试版,因此只需使用rbeta
进行抽样。
s1 <- rbeta(5000,4,1)
如果分布是非标准的并且您无法通过分析解决,则可以使用拒绝采样。让我们假装我们不知道你的pdf是beta版,我们不知道如何整合/反转。
pdf <- function(x) 4*x^3 # on [0,1]
首先,我们从提案分配中提取
p <- runif(50000)
计算我们的pdf
下的密度值dp <- pdf(p)
按比例随机接受/拒绝
s2 <- p[runif(50000) < dp/max(dp)]
您应该使用直方图或最好是qqplot找到可比较的s1
和s2
的分布。