例9-15 对某型号的20辆汽车记录其5L汽油的行驶里程(公里),观测数据如下:
29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7 28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9
试估计总体的均值和方差。
求解程序: %矩法估计
x1=[29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7]; x2=[28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9]; x=[x1 x2]'; muhat=mean(x)
sigma2hat=moment(x,2)%样本二阶中心矩 var(x,1) 运行结果: muhat = 28.6950 sigma2hat =0.9185 ans=0.9185 ⒉ 最大似然法
最大似然法是在待估参数的可能取值范围内进行挑选,使似然函数值(即样本取固定观察值邻域内的概率)最大的那个参数值即为最大似然估计量。由于最大似然估计法得到的估计量通常不仅仅满足无偏性、有效性等基本条件,还能保证其为充分统计量,所以,在点估计和区间估计中,一般推荐使用最大似然法。
用函数mle进行最大似然估计。该函数的常见调用格式为:
phat=mle('dist',data)
使用data矢量中的样本数据,返回dist 指定的分布的最大似然估计(MLE)。 例9-16 对某型号的20辆汽车记录其5L汽油的行驶里程(公里),观测数据如下:
29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7 28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9
设行驶里程服从正态分布,试用最大似然估计法估计总体的均值和方差。
求解程序: %最大似然估计
x1=[29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7]; x2=[28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9]; x=[x1 x2]';
p=mle('norm',x); muhatmle=p(1)
sigma2hatmle=p(2)^2
- 17 -
运行结果:
muhatmle =28.6950 sigma2hatmle =0.9185 9.5.2 区间估计
求参数的区间估计,首先要求出该参数的点估计,然后构造一个含有该参数的随机变量,并根据一定的置信水平求该估计值的范围。
用mle函数进行最大似然估计时,还有如下几种调用格式:
●[phat,pci]=mle('dist',data):返回最大似然估计和95%置信区间。 ●[phat,pci]=mle('dist',data,alpha):返回指定分布的最大似然估计值和100(1- alpha)%置信区间。
●[phat,pci]= mle('dist',data,alpha,p1):该形式仅用于二项分布,其中p1为实验次数。
例9-17 对某型号的20辆汽车记录其5L汽油的行驶里程(公里),观测数据如下:
29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7 28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9
设行驶里程服从正态分布,求平均行驶里程的95%置信区间。
求解程序:
%总体均值的区间估计
x1=[29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7]; x2=[28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9]; x=[x1 x2]';
[p,ci]=mle('norm',x,0.05) 运行结果: p =
28.6950 0.9584 ci =
28.2348 0.7478 29.1552 1.4361
即平均行驶里程的95%置信区间为(28.2348,291552)。 9.5.3 常见分布的参数估计
通过指定分布类型,使用mle函数可以求得服从多种分布的总体的参数估计量。但MATLAB统计工具箱还提供了具体函数的参数估计函数,如表9-4所示。
例如,用normfit函数对正态分布总体进行参数估计。 ●[muhat,sigmahat,muci,sigmaci]=normfit(x):对于给定的正态分布的数据x,
- 18 -
返回参数?的估计值muhat、?的估计值sigmahat、?的95%置信区间muci和?的95%置信区间sigmaci。
●[muhat,sigmahat,muci,sigmaci]=normfit(x, alpha):进行参数估计并计算100(1- alpha)%置信区间。
表9-4 常见分布的参数估计函数及其调用格式
分 布 贝塔分布 贝塔对数似然函数 二项分布 调 用 格 式 phat=betafit(x) [phat,pci]=betafit(x,alpha) logL=betalike(params,data) [logL,info]=betalike(params,data) phat=binofit(x,n) [phat,pci]=binofit(x,n) [phat,pci]=binofit(x,n,alpha) muhat=expfit(x) [muhat,muci]=expfit(x) [muhat,muci]=expfit(x,alpha) phat=gamfit(x) [phat,pci]=gamfit(x) [phat,pci]=gamfit(x,alpha) logL=gamlike(params,data) [logL,info]=gamlike(params,data) phat= mle('dist',data) [phat,pci]= mle('dist',data) [phat,pci]=mle('dist',data,alpha) [phat,pci]= mle('dist',data,alpha,p1) L=normlike(params,data) [muhat,sigmahat,muci,sigmaci]=normfit(x) [muhat,sigmahat,muci,sigmaci]=normfit(x, alpha) lambdahat=poissfit(x) [lambdahat,lambdaci]=poissfit(x) [lambdahat,lambdaci]=poissfit(x, alpha) [ahat,bhat]=unifit(x) [ahat,bhat,aci,bci]=unifit(x) [ahat,bhat,aci,bci]=unifit(x, alpha) phat=weibfit(x) [phat,pci]=weibfit(x) [phat,pci]=weibfit(x, alpha) logL=weiblike(params,data) [logL,info]=weiblike(params,data) 指数分布 伽马分布 伽马似然函数 最大似然估计 正态对数似然函数 正态分布 泊松分布 均匀分布 威布尔分布 威布尔对数似然函数 例9-18 用normfit函数求解例9-17。
- 19 -
解:由T?X??S/n~t(n?1)可得?的100(1??)%置信区间:
X?t1??2(n?1)s/n
由??2(n?1)S2?2~?2(n?1)可得?2的100(1??)%置信区间: ??22(n?1)s??(n?1)s,??2(n?1)?2(n?1)? ??1???2?2?下面的程序是为了比较mle函数和normfit函数的功能。
程序:
%用normfit函数求区间估计
x1=[29.8 27.6 28.3 27.9 30.1 28.7 29.9 28.0 27.9 28.7]; x2=[28.4 27.2 29.5 28.5 28.0 30.0 29.1 29.8 29.6 26.9]; 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]
运行结果:
muhat=28.69500000000000 p1=28.69500000000000
sigmahat=0.98326791337544 sigmahat1=0.98326791337544
- 20 -

