matlab mle pci为nan,用mle函数估计随机数分布的参数.doc

\o "用mle()函数估计随机数分布的参数"用mle()函数估计随机数分布的参数

\o "View all posts in $Matlab入门课程"$Matlab入门课程, \o "View all posts in 数学计算"数学计算

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值