- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用mle函数估计随机数分布的参数
用mle()函数估计随机数分布的参数
$Matlab入门课程, 数学计算
Jul 202011
MLE(maximum likelihood estimation,最大似然估计),的基本原理是通过选择参数使似然函数最大化。此处,我们只讲随机数分布估计。 假设随机分布的PDF为 f(x,theta), 其中x为随机数,theta是分布的参数。我们有x1,x2,…,xn共n个取样观察值,似然函数
L(theta)=f(x1,theta)*f(x2,theta)*…*f(xn,theta)
然后选择能让L()最大的theta取值。注意,这个不叫做”极大似然估计”,因为theta可能是有上限或下限,而能够让L()最大的theta值可能恰好是上限或下限,此时的theta就不是极大值点。
下面我们用随机生成的数据实地讲述mle()函数的用法。
语法一:mle(观察值, ‘distribution’, ‘分布名称’), 下面两个命令,第一个是生成100万个服从标准正太分布的随机数,第二句是用mle()函数估计这些随机数服从的正太分布的参数值。
》 testdata=randn(1e6,1);
》 [paramhat,paramint]=mle(testdata,distribution,norm)
paramhat =
-0.000218972940353 0.999431366252859
paramint =
-0.002177825773582 0.998048679206182
0.001739879892876 1.000818918426322
可以获得两个结果,paramhat和paramint,paramhat中有两个数值,第一个是正态分布均值(mu)的点估计,后一个是正态分布的标准差(sigma)。paramint中第1,2两列分布对应mu和sigma的区间估计。从结果来看,mu和sigma的区间估计都很窄,而且很接近我们生成随机数时使用的参数值。
这个语法支持的分布类型列表如下(Matlab2011A):
‘beta’ Beta ‘bernoulli’ Bernoulli ‘binomial’ Binomial ‘birnbaumsaunders’ Birnbaum-Saunders ‘discrete uniform’ or ‘unid’ Discrete uniform ‘exponential’ Exponential ‘extreme value’ or ‘ev’ Extreme value ‘gamma’ Gamma ‘generalized extreme value’ ‘gev’ Generalized extreme value ‘generalized pareto’ or ‘gp’ Generalized Pareto ‘geometric’ Geometric ‘inversegaussian’ Inverse Gaussian ‘logistic’ Logistic ‘loglogistic’ Log-logistic ‘lognormal’ Lognormal ‘nakagami’ Nakagami ‘negative binomial’ or ‘nbin’ Negative binomial ‘normal’ Normal ‘poisson’ Poisson ‘rayleigh’ Rayleigh ‘rician’ Rician ‘tlocationscale’ t location-scale ‘uniform’ Uniform ‘weibull’ or ‘wbl’ Weibull
语法二:mle(观察值, ‘pdf’, 自定义分布pdf, ‘start’, 猜测的分布参数值), pdf是分布的概率密度函数,格式是f(X,theta), 前面是X,后面跟参数值。
也支持cdf等等,详见帮助。这个语法适合不在上述列表内的随机分布。我们先看一个手工指定正态分布PDF函数的例子。下面的代码:第一句生产10万个标准正态分布随机数,第二句自定义一个正态分布PDF函数,第三句用MLE()
》 testdata=randn(1e5,1);
》 mynormpdf=@(x,mu,sigma)(1/sqrt(2*pi*sigma*sigma)*exp(-(x-mu).^2/2/sigma/sigma));
》 [paramhat,paramint]=mle(testdata,pdf,mynormpdf,start,[.1,.5])
paramhat =
0.002066365428022 1.002194631105154
文档评论(0)