Смесь 2-х равномерных случайных величин

Мне нужна помощь в создании смеси, которая составляет 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 ответ

Решение

Я не знаю функцию 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)
    

Другие вопросы по тегам