首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最大似然fminsearch

最大似然fminsearch
EN

Stack Overflow用户
提问于 2012-02-24 05:59:59
回答 2查看 1.6K关注 0票数 0

我使用Matlab-fminsearch为二项分布函数建立了负最大似然模型。我没有收到任何错误通知,但是我想要估计的参数,总是采用起始值。显然,这是一个错误。我知道我问的是一个非常笼统的问题。但有没有可能任何人都犯了同样的错误,并知道如何处理它呢?非常感谢,

@woodchips,非常感谢。一步一步地,我试着按照你的建议去做。首先,我实际上最大化了(-log(可能性)),这不是问题所在。我想我发现了问题所在,但如果我不打扰你的话,我还有一些问题要问。我在paramstart=p1中有一个要最大化的模型(参数)。这个模型是为(-log(似然(F)建立的,我的F是一个向量化函数,如F(t,Z,X,T,param,m2,m3,k,l)。我有一个像(tdata,kdata,ldata)这样的数据,X,T是网格,Z是这个网格上的函数,(m1,m2,m3)是给定的,我想看看F的值(tdata,Z,X,T,m1,m2,m3,kdata,ldata),我得到了一个很好的输出。但我认为fminsearch接受F(tdata,Z,X,T,p,m2,m3,kdata,ldata)就像一个常量,这就是为什么我总是把起始值作为估计参数。我会很高兴,如果你有任何建议来调整。

EN

回答 2

Stack Overflow用户

发布于 2012-02-24 06:14:14

您可以尝试调整一些选项。我会从算法开始。

当函数值实际上没有在你的起点附近改变时,这也是有问题的。也许切换到类似于原木的模式会有所帮助。

我总是使用fminuncfmincon。它们还允许提供Hessian (通常比“估计”值更好)或“典型值”,这样算法就不会在不可行的区域花费时间。

票数 2
EN

Stack Overflow用户

发布于 2012-02-24 17:56:07

实际上,你永远不应该最大化一个似然函数,而应该总是最大化该函数的对数,这几乎总是正确的。否则,浮点问题几乎总是会破坏问题。您的优化在同一点开始和停止是一个很好的指标,这就是问题所在。

您可能需要更深入地挖掘上面的内容,但即便如此,我建议所有使用优化工具的用户在将函数抛入优化器之前,都应该针对每个问题执行下一个测试。评估你的目标附近的几个点。它产生了显著不同的值吗?如果不是,那么看看为什么不是。你是在创建一个优化的非平滑目标,还是一个零目标?也就是说,零到提供的公差内?

如果它确实产生了不同的值,但仍然不收敛,那么请确保您知道如何正确地调用优化器。是啊,没错,好像从来没有人犯过这样的错误。这实际上是优化器失败的一个非常常见的原因。

如果它确实产生了不同的好值,并且您对优化器的调用是正确的,那么考虑优化器试图偏离的区域是否会产生垃圾结果。目标是生成复杂的结果还是虚构的结果?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9422041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档