从 Weibull(0,1) 和均匀 (0,1) 的混合物生成随机变量

  • 本文关键字:变量 混合物 随机 Weibull r
  • 更新时间 :
  • 英文 :


我将如何创建一个R代码算法来采样截断的Weibull(0,1(Uniform(2,4(的混合分布。给我带来困难的主要部分是截断的威布尔分布。通常,Weibull 分布是在正实线上定义的,因此我无法使用 R 提供的内置函数。混合物分布如下:

f(x( = 0.3 × 威布尔(0,1( + 0.7 ×U(2,4(

注意:截断的 Weibull 分布如下:

f(x; k, λ( = c(k/λ([(x/λ(

^(k−1(]exp{−(x/λ(^k}, x ∈ (0, 1(

哪里

c=1/{1 − exp(−1/(λ^k((}

统一数字由 runif(100,2,4) 生成。鉴于截断的 Weibull 已以某种方式生成,您可以按如下方式混合它们:

u <- runif(100,2,4)
w <- ... # truncated weibull, see below
s <- runif(100)            # s <- rbinom(n,2,0.3)
x <- ifelse(s<0.3, w, u)   # x <- ifelse(s==1,w,u)

对于截断的威布尔,请参阅谷歌搜索找到的 https://www.jstatsoft.org/article/view/v016c02/v16c02.pdf 的第6页。或者,我只会生成威布尔随机数(使用 rweibull (,然后截断。注意:您确定 weibull 的形状参数为零吗?

最新更新