Bayes估计

第1关:贝叶斯估计

编程要求
以单变量正态分布为例,设X(N)是取自正态分布N(3.4,2.1^2 )的样本集,假设其中的总体方差已知,均值为未知的随即参数,为待估计量,且已有先验分布N(u002 ),要求使用贝叶斯估计方法求出其估计量 u(N),使得最终的贝叶斯风险最小。

根据提示,在右侧编辑器补充代码,针对给定的注释提示进行对应操作。具体要求如下:

a. 给出服从正态分布N(3.4,2.12)的100个样本;

b. 根据提示,计算贝叶斯估计值。

测试输入:

3.6 0.4

预期输出:

贝叶斯估计值为:3.476283
与真实值的相对误差为:0.022436
load data X;     % 加载样本数据
u = 3.4;        % 总体分布密度的均值
sigma = 2.1;     % 总体分布密度的标准差
u0 = 3.6;       	% 未知参数分布的均值
sigma0 = 0.4;    	  % 位置参数分布的标准差
num = 100;      	 % 样本个数
Xmu = sum(X)/num;		% 样本均值

%%%%%%%%%% Begin %%%%%%%%%%

%% 计算贝叶斯估计值
u1 = num*sigma0^2*Xmu/(num*sigma0^2+sigma^2)+sigma^2*u0/(num*sigma0^2+sigma^2);
%% 输出贝叶斯估计值
fprintf('贝叶斯估计值为:%f\n', u1)
u2 = abs(u1-u)/u;
fprintf('与真实值的相对误差为:%f',u2);
%%%%%%%%%% End %%%%%%%%%%

版权声明:本文为qq_52331221原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。