Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从威布尔(0,1)和均匀(0,1)的混合生成随机变量_R - Fatal编程技术网

R 从威布尔(0,1)和均匀(0,1)的混合生成随机变量

R 从威布尔(0,1)和均匀(0,1)的混合生成随机变量,r,R,我如何创建一个R代码算法来对截断威布尔(0,1)和均匀(2,4)的混合分布进行采样。给我带来困难的主要部分是截断威布尔分布。通常,威布尔分布是在正实线上定义的,因此我不能使用R提供的内置函数。混合物分布如下: u <- runif(100,2,4) w <- ... # truncated weibull, see below s <- runif(100) # s <- rbinom(n,2,0.3) x <- ifelse(s<0.3

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

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)
f(x)=0.3×威布尔(0,1)+0.7×U(2,4)

注:截断威布尔分布如下:

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)
f(x;k,λ)=c(k/λ)[(x/λ)^(k−1) ]exp{−(x/λ)^k},x∈ (0,1)

在哪里

c=1/{1− 经验(−1/(λ^k))}


统一编号由
runif(100,2,4)
生成。考虑到截断威布尔函数是以某种方式生成的,您可以按如下方式混合它们:

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)

u统一数字由
runif(100,2,4)
生成。考虑到截断威布尔函数是以某种方式生成的,您可以按如下方式混合它们:

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)
u