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
但这很容易从头开始实现:
我们修复种子以提高可重复性
# 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)
我需要帮助创建 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
但这很容易从头开始实现:
我们修复种子以提高可重复性
# 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)