2个均匀随机变量的混合

Mixture of 2 uniform random variables

我需要帮助创建 1/3 Unif (0,7) 和 2/3 Unif(9,10) 的混合物 我用了

library(distr)

X <- UnivarMixingDistribution(Unif(0,7),Unif(9,10),mixCoeff = c((1/3),(2/3)))

但我不确定它是否好,因为在绘制 X 时,它 returns 一个没有任何意义的散点。

在此先感谢您的帮助!

我不知道函数 distr::UnivarMixingDistribution 但这很容易从头开始实现:

  1. 我们修复种子以提高可重复性

    # Set fixed seed
    set.seed(2017);
    
  2. 指定采样点数

    # Sample N points
    N <- 1000;
    
  3. 指定两个均匀分布的混合因子和限制

    # Weights and limits of both uniform distibutions
    weights <- c(1/3, 2/3);
    range <- list(list(min = 0, max = 7), list(min = 9, max = 10));
    
  4. 我们现在采样 N

    # Sample
    x <- unlist(mapply(function(x, y) runif(x * N, y$min, y$max), weights, range))
    
  5. 让我们绘制 x

    的分布
    ggplot(data.frame(x = x), aes(x)) + geom_histogram(bins = 100)