You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中生成指定权重的指数、正态混合分布样本?

R 混合分布抽样与密度计算实现

你提到的dexp()和dnorm()是分布概率密度计算函数,如果目标是生成随机样本,需要使用对应分布的随机数生成函数rexp()和rnorm(),两种场景的实现方法如下:

1. 生成混合分布随机样本

实现逻辑是先按权重给每个样本分配所属分布,再分别生成对应分布的数值:

# 设定总样本量
n <- 10000
# 按2:1的权重生成分组标签:1对应指数分布,2对应正态分布
group <- sample(c(1, 2), size = n, replace = TRUE, prob = c(2/3, 1/3))
# 初始化存储结果的向量
mixed_sample <- numeric(n)
# 生成速率为1的指数分布样本
mixed_sample[group == 1] <- rexp(sum(group == 1), rate = 1)
# 生成均值为0、标准差为1的正态分布样本
mixed_sample[group == 2] <- rnorm(sum(group == 2), mean = 0, sd = 1)

你可以通过table(group)/n验证分组比例,输出结果会接近2/3和1/3的预期权重。

2. 计算混合分布的概率密度(使用dexp和dnorm)

如果需要计算混合分布的密度值,直接按权重叠加两个分布的密度即可:

# 计算单个点x=0.5的混合密度
x <- 0.5
mixed_density <- 2/3 * dexp(x, rate = 1) + 1/3 * dnorm(x, mean = 0, sd = 1)

# 批量计算序列x_vec的混合密度
x_vec <- seq(-3, 5, length.out = 100)
mixed_density_vec <- 2/3 * dexp(x_vec, rate = 1) + 1/3 * dnorm(x_vec, mean = 0, sd = 1)

内容的提问来源于stack exchange,提问作者Kristina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:27:00