第9章 数学建模函数——9.2 参数估计函数

简介: 第9章 数学建模函数——9.2 参数估计函数

9.2  参数估计函数


参数估计的内容包括点估计和区间估计。MATLAB统计工具箱提供了很多与参数估计相关的函数,例如计算待估参数及其置信区间、估计服从不同分布的函数的参数。


9.2.1  常见分布的参数估计


MATLAB统计工具箱提供了多种具体函数的参数估计函数,如表9-1所示。


例如,利用normfit函数可以对正态分布总体进行参数估计。

● [muhat,sigmahat,muci,sigmaci]=normfit(x):对于给定的正态分布的数据x,返回参数μ的估计值muhatσ的估计值sigmahatμ95%置信区间muciσ95%置信区间sigmaci

● [muhat,sigmahat,muci,sigmaci]=normfit(x,alpha):进行参数估计并计算100(1-alpha)%置信区间。

9-1  常见分布的参数估计函数及其调用格式

分布

调用格式

贝塔分布

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, pl)

正态对数似然函数

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-4:观测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%置信区间。根据题意在命令行窗口中依次输入:

clear all
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
mucil = [muhat - tinv(1 - a / 2, n - 1) * sigmahat / sqrt(n), muhat + tinv(1 - a / 2, n - 1) * sigmahat / sqrt(n)]
sigmacil = [((n - 1).* sigmahat.^2 / chi2inv(1 -a / 2, n - 1)).^ 0.5, ((n - 1).*sigmahat.^2 / chi2inv(a / 2, n - 1)).^0.5]

运行结果如下:

muhat =
  57.390000000000001
p1 =
  57.390000000000001
sigmahat =
   1.966535826750873
sigmahat1 =
   1.966535826750873
p2 =
   1.916742027503963
muci =
  56.469632902339683
  58.310367097660318
ci =
  56.469632902339683   1.495531606349597
  58.310367097660318   2.872266449964584
sigmaci =
   1.495531606349597
   2.872266449964584
mucil =
  56.469632902339683  58.310367097660318
sigmacil =
   1.495531606349597   2.872266449964584



9.2.2  点估计


点估计是用单个数值作为参数的估计,目前使用较多的方法是最大似然法和矩法。


1.最大似然法


最大似然法是在待估参数的可能取值范围内,挑选使似然函数值最大的那个参数值为最大似然估计量。由于最大似然法得到的估计量通常不仅仅能满足无偏性、有效性等基本条件,还能保证其为充分统计量,所以,在点估计和区间估计中,一般推荐使用最大似然法。

MATLAB用函数mle进行最大似然估计,其调用格式如下。

● phat=mle('dist',data):使用data矢量中的样本数据,返回dist指定的分布的最大似然估计。


9-5:观测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

假设行驶里程服从正态分布,请用最大似然法估计总体的均值和方差。根据题意,编写最大似然估计求解程序,在命令行窗口中依次输入:

clear all
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

运行结果如下:

muhatmle =
  57.390000000000001
sigma2hatmle =
   3.673900000000002


2.矩法


待估参数经常作为总体原点矩或原点矩的函数,此时可以用该总体样本的原点矩或样本原点矩的函数值作为待估参数的估计,这种方法称为矩法。

例如,样本均值总是总体均值的矩估计量,样本方差总是总体方差的矩估计量,样本标准差总是总体标准差的矩估计量。

MATLAB计算矩的函数为moment(X,order)


9-6:观测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

试估计总体的均值和方差。根据题意,在命令行窗口中依次输入:

clear all
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)
var(x, 1)

运行结果如下:

muhat =
  57.390000000000001
sigma2hat =
   3.673900000000002
ans =
   3.673900000000002


9.2.3  区间估计


求参数的区间估计,首先要求出该参数的点估计,然后构造一个含有该参数的随机变量,并根据一定的置信水平求该估计值的范围。

MATLAB中用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-7:观测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%置信区间。根据题意,在命令行窗口中依次输入:

clear all
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, pci] = mle('norm', x, 0.05)

运行结果如下:

p =
  28.695000000000000   0.958371013751981
pci =
  28.234816451169841   0.747765803174798
  29.155183548830159   1.436133224982292

相关文章
第9章 数学建模函数——9.1 曲线拟合函数
第9章 数学建模函数——9.1 曲线拟合函数
|
存储
matlab求解方程和多元函数方程组
matlab求解方程和多元函数方程组
527 0
非线性优化 | 非线性问题matlab+yalmip求解案例
非线性优化 | 非线性问题matlab+yalmip求解案例
Matlab非线性拟合函数——nlinfit
Matlab非线性拟合函数——nlinfit
373 0
Matlab非线性拟合函数——nlinfit
|
6月前
|
算法
数学建模函数插值与拟合
数学建模函数插值与拟合
57 0
|
11月前
|
算法
数学建模——曲线拟合
数学建模——曲线拟合
171 1
|
11月前
|
数据挖掘 知识图谱
Matlab参数估计与假设检验(举例解释)
Matlab参数估计与假设检验(举例解释)
122 0
|
11月前
数学建模——微分方程介绍
数学建模——微分方程介绍
138 0
|
存储 机器学习/深度学习 数据可视化
【MATLAB 数学建模】 插值方法 数据拟合
【MATLAB 数学建模】 插值方法 数据拟合
266 0
|
机器学习/深度学习 移动开发 算法
【数学建模】 非线性规划+二次规划(下)
【数学建模】 非线性规划+二次规划(下)
136 0