2个均匀随机变量的混合

时间:2018-07-01 22:34:58

标签: r uniform mixture

我需要帮助来创建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时,它返回的散点实际上没有任何意义。

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我不知道函数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)
    

enter image description here