模拟从 $X$ 分布(以 R 为单位)的平局

  • 本文关键字:为单位 平局 分布 模拟 r
  • 更新时间 :
  • 英文 :


我有一个随机变量 $X$ 的 pdf $f(x)=4x^3$ 我需要在其中模拟分布中的抽奖。

我的解决方案包括从pdf(第1期)中查找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 遵循 $\alpha=4$ 和 $\beta=1$ 的 Beta 发行版。

最好通过inverse beta function找到$F^-1$吗?有没有一种快速的方法可以在 R 中找到 beta 函数的逆函数?

既然您已经将pdf标识为测试版,只需使用 rbeta 进行采样即可。

s1 <- rbeta(5000,4,1)

如果分布是非标准的,并且您无法通过分析求解,则可以使用拒绝抽样。让我们假装我们不知道您的pdf是测试版,也不知道如何集成/反转。

pdf <- function(x) 4*x^3 # on [0,1]

首先,我们从提案分布中抽取

p <- runif(50000)

在我们的pdf下计算密度值

dp <- pdf(p)

并按比例随机接受/拒绝

s2 <- p[runif(50000) < dp/max(dp)]

您应该使用直方图或最好使用 qqplot 找到s1s2的分布具有可比性。

最新更新