参数估计

【概念】

参数估计包括点估计和区间估计:
点估计——估计未知参数的值
区间估计——根据样本构造出适当的空间,使它以一定的概率包含未知参数

【参数估计与matlab实现】

下面主要阐述正态总体的参数估计:

clear;
clc;
mu=10;   %样本均值
sigm=2;  %样本方差
m=50;   %样本数
n=1000; %计算置信区间的真实覆盖率的模拟次数
x=normrnd(mu,sigm,m,1);   %正态样本
alpha=0.15;
[muhat,sigmahat,muci,sigmaci] = normfit(x,alpha);
 %给出点估计和区间估计,其中muhat为正态分布的均值的点估计值,
 %sigmahat为标准差的点估计值,muci是均值的区间估计,sigmaci是标准差的区间估计,置信水平为1-alpha。
[phat,pci] =mle(x);    % 求均值与标准差的最大似然估计

接下来计算置信区间的真实覆盖率(true coverage probability),维基上的解释是:the coverage probability of a confidence interval is the proportion of the time that the interval contains the true value of interest。也就是说例如我们算了1000个置信区间,看一下其中有多少个包含了真实的参数值。

【计算置信区间的真实覆盖率的函数代码】

function [muratio,sigmratio]=true_fugailv(mu,sigm,m,n,alpha)

% input:
%         mu is true mean of  the sample
%         sigm is true  standard deviation(标准差) of the sample
%         m is the number of the variable in sample
%         n denotes how many times computer confidence interval
%         1-alpha  denotes the confidence level,also denotes the nominal coverage probability

%output:
%    muratio denotes the true  coverage probability(真实覆盖率)  of  the confidence 
%    intervals(置信区间) for  mu
%    sigmratio denotes the true  coverage probability(真实覆盖率)  of  the confidence 
%    intervals for sigm
muratio=0;
sigmratio=0;
for i=1:n
    x=normrnd(mu,sigm,m,1);
    [Mu,Sigm,muci,sigmci]=normfit(x,alpha);
    if(muci(1)<=mu&&mu<=muci(2))
        muratio=muratio+1;
    end
    if(sigmci(1)<=sigm&&sigm<=sigmci(2))
       sigmratio=sigmratio+1;
    end
end
 muratio= muratio/n;
 sigmratio=sigmratio/n;

【调用true_fugailv函数,并画出true coverage probability与nominal coverage(置信水平)的关系图】

 n=1000; %计算置信区间的真实覆盖率的模拟次数
 for i=1:30
   [muratio(i),sigmaciratio(i)]=true_fugailv(mu,sigm,m,n,alpha);
    alpha=alpha-0.005;
 end
 plot(0.85:0.005:0.995,muratio,'r');
 xlabel('nominal coverage');
 ylabel('true coverage');

【关系图】
参数估计_第1张图片

你可能感兴趣的:(参数估计,正态样本,点估计,置信区间覆盖率,区间估计)