boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Memory版 - 请教matlab non-linear optimization的问题 (转载)
相关主题
从爱人到陌路人 (转载)
一个地质系同学对这次地震的分析和相关问题回答 (转载)
请教matlab non-linear optimization的问题 (转载)
请教matlab non-linear optimization的问题
请教matlab non-linear optimization的问题 (转载)
A blackbox function f(x)
这个图形是什么function?
急问个优化的问题
请指点:-)深夜,急!
急问个优化的问题 (转载)
相关话题的讨论汇总
话题: iteration话题: function话题: dfunc话题: value话题: matlab
进入Memory版参与讨论
1 (共1页)
D******6
发帖数: 6211
1
【 以下文字转载自 Statistics 讨论区 】
发信人: Doha2006 (花猫), 信区: Statistics
标 题: 请教matlab non-linear optimization的问题
发信站: BBS 未名空间站 (Fri Jan 7 23:39:25 2011, 美东)
我需要用一个non-linear optimization function来estimate一个model,近似于logit
model,用maximum likelihood estimation。
如果用maxlik,其实这是一个min函数,就是名字叫max,从这个网站下载的,http://www.spatial-econometrics.com/
结果有点奇怪,不是指我的model参数奇怪,而是maxlik输出的结果如下:
CONVERGENCE CRITERIA MET: Change in Objective Function
iteration function value dfunc
0 2301.06004609 1000.00000000
iteration function value dfunc
1 1966.10277862 0.17036610
iteration function value dfunc
2 1965.50818039 0.00030252
iteration function value dfunc
3 1967.81330103 -0.00117141
1.如果用结果result.f查看,就给最后一个iteration的function value,可是明明是
iteration 2的function value才是最小的啊。不止这一个,我随便运行了很多maxlik
,它总是给最后一个iteration作为optimal,可是,有的时候很明显第一个iteration
的value是optimum啊。我糊涂了。是不是我解读错了输出结果?
2.我明白dfunc value接近0是极值,因为那时一阶导数吧。那么如果存在一个情况是前
面的iteration的function value很小,可是导数还很大,说明在往上走,那么即使后
来走到了一个极值,也该回头比比看看是不是最小吧,算法不会这么差吧,一点不回头?
如有解答,十分感谢!
p*****e
发帖数: 16417
2
汗,多哈是越来越专业了。

logit

【在 D******6 的大作中提到】
: 【 以下文字转载自 Statistics 讨论区 】
: 发信人: Doha2006 (花猫), 信区: Statistics
: 标 题: 请教matlab non-linear optimization的问题
: 发信站: BBS 未名空间站 (Fri Jan 7 23:39:25 2011, 美东)
: 我需要用一个non-linear optimization function来estimate一个model,近似于logit
: model,用maximum likelihood estimation。
: 如果用maxlik,其实这是一个min函数,就是名字叫max,从这个网站下载的,http://www.spatial-econometrics.com/
: 结果有点奇怪,不是指我的model参数奇怪,而是maxlik输出的结果如下:
: CONVERGENCE CRITERIA MET: Change in Objective Function
: iteration function value dfunc

D******6
发帖数: 6211
3
唔。。。我冲进来一看,空激动一场。
这个破matlab,很闹心。

【在 p*****e 的大作中提到】
: 汗,多哈是越来越专业了。
:
: logit

p*****e
发帖数: 16417
4
囧~
偶不是专家啊。
你这通篇,我就看懂了matlab

【在 D******6 的大作中提到】
: 唔。。。我冲进来一看,空激动一场。
: 这个破matlab,很闹心。

D******6
发帖数: 6211
5
那就行啊,我也是不久以前才知道这么个破软件。

【在 p*****e 的大作中提到】
: 囧~
: 偶不是专家啊。
: 你这通篇,我就看懂了matlab

p*****e
发帖数: 16417
6
嗯,你有没有放Math版问问?
那里专家可能比统计的多些。

【在 D******6 的大作中提到】
: 那就行啊,我也是不久以前才知道这么个破软件。
b*****l
发帖数: 9499
7
啊,我现在正在用 maximum likelihood 来做 parameter estimation。用得是 R 的
mle 和 nlm,都还可以,推荐一下。
对于你说的问题哈,我猜是算法导致的。程序可能设定了 tolerance,只要找到了最低
点的范围,并且最后的值到最低点间的距离小于预设的 tolerance,就作为最后结果了
。毕竟数值计算追求的是速度和精度的平衡,而且很多时候永远不可能绝对精确么。要
是我来写算法,估计也会这么做。
当然了哈,用最低点两边的值和一阶导数进一步做一个内插可能更 decent 一些,或者
至少求个 min 也好,毕竟效费比很高么,让人忍不住想这么挖掘一下。但是依然浪费
了一次计算时间啊:只要达到了需要的精度,哪怕再做轻微的计算就能极大提高精度,
那也是浪费啊。

logit

【在 D******6 的大作中提到】
: 那就行啊,我也是不久以前才知道这么个破软件。
a*********7
发帖数: 30080
8
嗯,对于多哈的问题(2),我想这个程序不记录上一次结果、不回头做对比,一个原
因可能是:有的funciton参数可能相当多(比如说参数可以是每个点的weight,而一个
dataset可以有数以万计甚至百万计的点
),不光对比费时间,记忆这些参数也可能很费空间。
所以象河马说的,只要差得不多,就无所谓了。
我不了解这个程序,纯属猜测。

【在 b*****l 的大作中提到】
: 啊,我现在正在用 maximum likelihood 来做 parameter estimation。用得是 R 的
: mle 和 nlm,都还可以,推荐一下。
: 对于你说的问题哈,我猜是算法导致的。程序可能设定了 tolerance,只要找到了最低
: 点的范围,并且最后的值到最低点间的距离小于预设的 tolerance,就作为最后结果了
: 。毕竟数值计算追求的是速度和精度的平衡,而且很多时候永远不可能绝对精确么。要
: 是我来写算法,估计也会这么做。
: 当然了哈,用最低点两边的值和一阶导数进一步做一个内插可能更 decent 一些,或者
: 至少求个 min 也好,毕竟效费比很高么,让人忍不住想这么挖掘一下。但是依然浪费
: 了一次计算时间啊:只要达到了需要的精度,哪怕再做轻微的计算就能极大提高精度,
: 那也是浪费啊。

D******6
发帖数: 6211
9
对呀,这个说得对头。但是,我现在就是在用Matlab,不是R,不想来回转换了。觉得
如果R能做,Matlab也应该能做啊。以前放弃R也是因为R的help不清楚,又是免费的,
恐怕不可靠,就用Matlab了,没有想到Matlab也这样不清楚。
是,你说得这些都有道理,只是既然maxlik这么常用的function,他们怎么能编成这样
含糊。。。

【在 b*****l 的大作中提到】
: 啊,我现在正在用 maximum likelihood 来做 parameter estimation。用得是 R 的
: mle 和 nlm,都还可以,推荐一下。
: 对于你说的问题哈,我猜是算法导致的。程序可能设定了 tolerance,只要找到了最低
: 点的范围,并且最后的值到最低点间的距离小于预设的 tolerance,就作为最后结果了
: 。毕竟数值计算追求的是速度和精度的平衡,而且很多时候永远不可能绝对精确么。要
: 是我来写算法,估计也会这么做。
: 当然了哈,用最低点两边的值和一阶导数进一步做一个内插可能更 decent 一些,或者
: 至少求个 min 也好,毕竟效费比很高么,让人忍不住想这么挖掘一下。但是依然浪费
: 了一次计算时间啊:只要达到了需要的精度,哪怕再做轻微的计算就能极大提高精度,
: 那也是浪费啊。

a*********7
发帖数: 30080
10
呃,这个你有点冤枉Matlab。你用的那个是第三方编写的程序,也是免费的。。。

【在 D******6 的大作中提到】
: 对呀,这个说得对头。但是,我现在就是在用Matlab,不是R,不想来回转换了。觉得
: 如果R能做,Matlab也应该能做啊。以前放弃R也是因为R的help不清楚,又是免费的,
: 恐怕不可靠,就用Matlab了,没有想到Matlab也这样不清楚。
: 是,你说得这些都有道理,只是既然maxlik这么常用的function,他们怎么能编成这样
: 含糊。。。

D******6
发帖数: 6211
11
哦,也是免费的?太过分了。。。的确,我问了几个人了,人家都不用。那个教授很过
分,为啥推荐一个大家都不用的函数让我用?

【在 a*********7 的大作中提到】
: 呃,这个你有点冤枉Matlab。你用的那个是第三方编写的程序,也是免费的。。。
a*********7
发帖数: 30080
12
嗯,大家都可以编matlab function,让大家分享。
官方类似的也有,你看这个合不合用:
http://www.mathworks.com/help/toolbox/stats/mle.html

【在 D******6 的大作中提到】
: 哦,也是免费的?太过分了。。。的确,我问了几个人了,人家都不用。那个教授很过
: 分,为啥推荐一个大家都不用的函数让我用?

D******6
发帖数: 6211
13
奥,谢谢~~
我的model有点特异,这么标准的mle 函数能不能用不好说,我也找到了几个别的
optimization function,fminsearch什么的,看来只好换函数了。
不过那个旧函数,别说,如果要是算法够好,其实输入输出比较简单明了,所以我也以
为是个好函数。

【在 a*********7 的大作中提到】
: 嗯,大家都可以编matlab function,让大家分享。
: 官方类似的也有,你看这个合不合用:
: http://www.mathworks.com/help/toolbox/stats/mle.html

1 (共1页)
进入Memory版参与讨论
相关主题
急问个优化的问题 (转载)
optimization using matlab function fmincon
MCMC算法的Posterior Std. 一定是减少的么?
res log pseudo-likelihood function
请问Linux底下有没有最简易的show 2D x-y curve的工具
怎么拟合这样的曲线
Newton's method最后收敛速度很慢,求解释
这种分段曲线怎么拟合?
判断一个国家是否过了鼎盛时期的标志
发现这两天国内最常用的词是 拐点
相关话题的讨论汇总
话题: iteration话题: function话题: dfunc话题: value话题: matlab