我需要帮助来创建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时,它返回的散点实际上没有任何意义。
预先感谢您的帮助!
答案 0 :(得分:0)
我不知道函数distr::UnivarMixingDistribution
,但这很容易从头开始实现:
我们将种子固定为可重复性
# Set fixed seed
set.seed(2017);
指定采样点的数量
# Sample N points
N <- 1000;
指定两种均匀分布的混合因子和极限值
# 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));
我们现在对N
个点进行采样
# Sample
x <- unlist(mapply(function(x, y) runif(x * N, y$min, y$max), weights, range))
让我们绘制x
的分布
ggplot(data.frame(x = x), aes(x)) + geom_histogram(bins = 100)