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

在R中计算多项分布真实分布与MLE/贝叶斯估计分布的总变差距离

嘿,我来帮你搞定这个多项分布下MLE和贝叶斯估计量的对比任务,包括样本生成、估计量计算和总变差距离的统计,具体步骤和R代码如下:

1. 明确问题与准备工作

你要完成的核心任务是:

  • 从真实多项分布生成400个独立样本,每个样本对应30次试验的10类别计数结果
  • 对每个样本计算10个概率参数的MLE和贝叶斯估计量
  • 分别统计两种估计量与真实分布之间的总变差距离(TVD)

注意:rmultinom的prob参数要求和为1,你给出的权重c(5,7,10,8,14,10,15,12,10,9)总和刚好是100,直接归一化就能得到真实概率向量。

2. 生成多项分布样本

用R的rmultinom生成样本,我们将结果转置为每行对应一个样本的格式,方便后续处理:

# 定义真实概率(归一化权重)
true_prob <- c(5,7,10,8,14,10,15,12,10,9)/100
# 设置随机种子保证结果可复现
set.seed(123)
# 生成400个样本,每个样本是30次试验的类别计数
samples <- rmultinom(n = 400, size = 30, prob = true_prob)
# 转置矩阵:400行(样本)×10列(类别计数)
samples <- t(samples)
3. 计算MLE和贝叶斯估计量

3.1 MLE估计量

多项分布的MLE非常直观:每个类别的计数除以总试验次数(30)即可得到概率估计:

# 批量计算所有样本的MLE:每行对应一个样本的10个概率估计
mle_estimates <- samples / 30

3.2 贝叶斯估计量(共轭Dirichlet先验)

通常用Dirichlet共轭先验来计算贝叶斯估计量,最常用的是均匀先验Dirichlet(1,1,...,1)(对应拉普拉斯平滑),此时估计量公式为:
$$\hat{p}_i = \frac{n_i + 1}{30 + 10}$$
其中$n_i$是第i类的计数,分母是总试验次数加上10个先验参数的总和。

你也可以根据需求调整先验参数(比如Dirichlet(0.5,...,0.5)的Jeffreys先验),这里以均匀先验为例:

# 批量计算所有样本的贝叶斯估计量
bayes_estimates <- (samples + 1) / (30 + 10)
4. 计算总变差距离(TVD)

总变差距离的定义是两个概率向量$P$和$Q$的L1距离的一半:
$$TVD(P, Q) = \frac{1}{2} \sum_{i=1}^{k} |P_i - Q_i|$$
其中k是类别数(这里k=10)。

我们可以写一个函数批量计算每个样本的TVD:

# 定义TVD计算函数
compute_tvd <- function(est_prob, true_prob) {
  0.5 * sum(abs(est_prob - true_prob))
}

# 计算每个样本的MLE与真实分布的TVD
mle_tvd <- apply(mle_estimates, 1, compute_tvd, true_prob = true_prob)
# 计算每个样本的贝叶斯估计量与真实分布的TVD
bayes_tvd <- apply(bayes_estimates, 1, compute_tvd, true_prob = true_prob)
5. 分析与可视化结果

你可以对TVD结果做统计分析,或者绘制箱线图直观对比两种估计量的表现:

# 查看TVD的描述性统计
summary(mle_tvd)
summary(bayes_tvd)

# 绘制箱线图对比两种估计量的TVD分布
boxplot(mle_tvd, bayes_tvd, 
        names = c("MLE TVD", "Bayes TVD"),
        ylab = "Total Variation Distance",
        main = "TVD Comparison: MLE vs Bayesian Estimator")

通过这些结果就能清晰看到哪种估计量更接近真实分布。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:30:12