Day28_0.1基础学习MATLAB学习小技巧总结(28)——参数估计函数
利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
参考书目:
1、《MATLAB基础教程 (第三版) (薛山)》
2、《MATLAB R2020a完全自学一本通》
3、《MATLAB官方帮助文档》
声明:文章内的代码和内容可以引用复制,只要标注出处即可
在本章中的代码,会以资源的形式发在我的博客里供大家免费下载学习。
参数估计函数
1.常见分布的参数估计
MATLAB统计工具箱提供了很多具体函数的参数估计函数,如下表:
例:
观测20辆某型号汽车消耗10L汽油的行驶里程,具体数据如下所示:
59.6 | 55.2 | 56.6 | 55.8 | 60.2 | 57.4 | 59.8 | 56.0 | 55.8 | 57.4 |
56.8 | 54.4 | 59.0 | 57.0 | 56.0 | 60.0 | 58.2 | 59.6 | 59.2 | 53.8 |
假设行驶里程服从正态分布,用normfit函数求解平均行驶里程的95%置信区间。
x1 = [59.6 55.2 56.6 55.8 60.2 57.4 59.8 56.0 55.8 57.4];
x2 = [56.8 54.4 59.0 57.0 56.0 60.0 58.2 59.6 59.2 53.8];
x = [x1,x2]';
a = 0.05;
[muhat,sigmahat,muci,sigmaci]=normfit(x,a);
[p,ci] = mle('norm',x,a);
n = numel(x);
format long
muhat
p1 = p(1)
sigmahat
sigmahat1 = var(x).^0.5
p2 = p(2)
muci
ci
sigmaci
muci1=[muhat-tinv(1-a/2,n-1)*sigmahat/sqrt(n),muhat+tinv(1-a/2,n-1)*sigmahat/sqrt(n)]
sigmaci1=[(n-1).*sigmahat.^2/chi2inv(1-a/2,n-1).^0.5,((n-1).*sigmahat.^2/chi2inv(a/2,n-1)).^0.5]
2.点估计
点估计使用单个数值作为参数的估计,目前使用较多的方法是最大似然法和矩法。
2.1 最大似然法
最大似然法是在待估参数的可能取值范围内,挑选使似然函数值最大的那个参数值为最大似然估计
量。由于最大似然法得到的估计量通常不仅仅能满足无偏性、有效性等基本条件,还能保证其为充分统计量,所以,在点估计和区间估计中,一般推荐使用最大似然法.
MATLAB用函数mle进行最大似然估计,其调用格式如下:
phat=mle('dist',data):使用data矢量中的样本数据,返回dist指定分布的最大似然估计。
例:
观测20辆某型号汽车消耗10L汽油的行驶里程,具体数据如下所示:
59.6 | 55.2 | 56.6 | 55.8 | 60.2 | 57.4 | 59.8 | 56.0 | 55.8 | 57.4 |
56.8 | 54.4 | 59.0 | 57.0 | 56.0 | 60.0 | 58.2 | 59.6 | 59.2 | 53.8 |
假设行驶里程服从正态分布,用最大似然法估计总体的均值和方差
x1=[59.6 55.2 56.6 55.8 60.2 57.4 59.8 56.0 55.8 57.4];
x2=[56.8 54.4 59.0 57.0 56.0 60.0 58.2 59.6 59.2 53.8];
x=[x1 x2]';
p=mle('norm',x);
muhatmle=p(1)
sigma2hatmle=p(2)^2
2.2 矩法
待估参数经常作为总体原点矩或原点矩的函数,此时可以用该总体样本的原点矩或样本原点矩的函数 值作为待估参数的估计,这种方法称为矩法。
样本均值总是总体均值的矩估计量,样本方差总是总体方差的矩估计量,样本标准差总是总体 标准差的矩估计量。
MATLAB计算矩的函数为moment(X,order)。
例:观测20辆某型号汽车消耗10L汽油的行驶里程,具体数据如下所示:
59.6 | 55.2 | 56.6 | 55.8 | 60.2 | 57.4 | 59.8 | 56.0 | 55.8 | 57.4 |
56.8 | 54.4 | 59.0 | 57.0 | 56.0 | 60.0 | 58.2 | 59.6 | 59.2 | 53.8 |
x1 = [59.6 55.2 56.6 55.8 60.2 57.4 59.8 56.0 55.8 57.4];
x2 = [56.8 54.4 59.0 57.0 56.0 60.0 58.2 59.6 59.2 53.8];
x=[x1 x2]';
muhat=mean(x)
sigma2hat=moment(x,2)
3. 区间估计
求参数的区间估计,首先要求出该参数的点估计,然后构造一个含有该参数的随机变量,并根据一定 的置信水平求该估计值的范围。
调用格式:
[phat,pci]=mle('dist',data):返回最大似然估计值和95%置信区间。
[phat,pci]=mle('dist',data,alpha):返回指定分布的最大似然估计值和100(1- alpha)%置信区间。
[phat,pci]=mle('dist',data,alpha,p1):该形式仅用于二项分布,其中p1为实验次数。
例:观测20辆某型号汽车消耗10L汽油的行驶里程,具体数据如下所示:
59.6 | 55.2 | 56.6 | 55.8 | 60.2 | 57.4 | 59.8 | 56.0 | 55.8 | 57.4 |
56.8 | 54.4 | 59.0 | 57.0 | 56.0 | 60.0 | 58.2 | 59.6 | 59.2 | 53.8 |
假设行驶里程服从正态分布,求平均行驶里程的95%置信区间。
x1 = [59.6 55.2 56.6 55.8 60.2 57.4 59.8 56.0 55.8 57.4];
x2 = [56.8 54.4 59.0 57.0 56.0 60.0 58.2 59.6 59.2 53.8];
x=[x1 x2]';
[p,pci] = mle('norm',x,0.55)