贝叶斯估计、极大似然估计

极大似然估计(Maximum Likelihood Estimation,MLE)和贝叶斯估计(Bayesian Estimation)是统计推断中两种最常用的参数估计方法。

对于参数估计方法,即对 参数\Theta的估计,通过得到  \Theta即可得到模型进而预测

 

### 贝叶斯估计极大似然估计的MATLAB实现 #### 极大似然估计 (Maximum Likelihood Estimation, MLE) 对于给定的一组数据样本 \(X\) 和假设的概率分布模型,MLE 的目标是找到使得观测到这些数据的可能性最大的参数 \(\theta\)[^1]。 ```matlab % 生成一组服从正态分布的数据作为示例 mu_true = 5; % 真实均值 sigma_true = 2; % 真实标准差 n_samples = 100; data = normrnd(mu_true, sigma_true, [1, n_samples]); % 计算最大似然估计下的均值和方差 mu_mle = mean(data); sigma_sq_mle = var(data); disp(['MLE estimated mu: ', num2str(mu_mle)]); disp(['MLE estimated sigma squared: ', num2str(sigma_sq_mle)]); ``` 这段代码展示了如何基于已知的真实分布来模拟一些随机数,并利用 `mean` 函数计算平均值以及 `var` 来求解方差,从而得到最大似然估计的结果。 #### 贝叶斯估计 (Bayesian Estimation) 贝叶斯估计不仅考虑了观察到的数据,还加入了先验信息的影响。这里采用共轭先验的方式简化推导过程,在本案例中选择了高斯-逆伽玛分布作为先验分布[^2]。 ```matlab alpha_prior = 3; beta_prior = 4; gamma_prior = 0.5; delta_prior = 1/9; % 更新后的超参数 N = length(data); sum_x = sum(data); sum_xx = sum(data.^2); alpha_posterior = alpha_prior + N / 2; beta_posterior = beta_prior + ... ((sum_xx - 2 * mean(data)*sum_x + N*gamma_prior^2)/(2*(delta_prior^-1+N)))/2; gamma_posterior = (gamma_prior*N+sum_x)/(N+delta_prior^-1); delta_posterior = delta_prior + N; % 抽样获得后验分布中的估计量 num_samples = 1e4; tau_samples = gamrand(alpha_posterior, 1./beta_posterior, [1, num_samples]); mu_samples = normrnd(gamma_posterior, sqrt(1./(tau_samples.*(delta_posterior)))),... % 显示结果 figure(); histogram(mu_samples,'Normalization','pdf'); title('Posterior distribution of the mean parameter') xlabel('\mu'); ylabel('Density'); fprintf('Mean estimate from Bayesian approach is %.4f\n', mean(mu_samples)); fprintf('Variance estimate from Bayesian approach is %.4f\n', mean(1 ./ tau_samples)); ``` 上述脚本实现了完整的贝叶斯估计流程,包括定义先验分布、更新至后验分布并从中抽取样本以获取最终估计值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值