楼主: jerry0501
12063 21

请问用R计算maximum likelihood estimator [推广有奖]

  • 0关注
  • 0粉丝

本科生

68%

还不是VIP/贵宾

-

威望
0
论坛币
575 个
通用积分
0.4350
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
584 点
帖子
30
精华
0
在线时间
158 小时
注册时间
2008-5-8
最后登录
2020-9-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一些关于用R计算MLE的问题:我知道的命令有optim,nlm,constrOptim,但是有很多困难。

1.有非线性的constraint怎么办,比如我的参数其中有6个是d11,d21,d22,d31,d32,d33,条件是:用这6个参数组成一个矩阵3*3的对称矩阵Q,要求Q是一个正定矩阵,如何在估计中加入这个非线性的constraint?
2.有什么比较科学的方法设定initial value么?
3.log likelihood function比较复杂,而且要进行simulation,那个命令是最节省时间的?

请高手不吝赐教,万分感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Likelihood estimator Maximum like Tima Likelihood Maximum estimator

回帖推荐

ltx5151 发表于10楼  查看完整内容

8# kakamama 请您看清楚,我没有说r做不了nonlinear programming,只是r在这些方面还不够完善。别的软件有的可以做,有的不可以。matlab这方面强很多,但是mathematica就稍微逊色一些。但是比较主流的软件都回整合这样的功能,只是其便利程度和效果不同而已。另外,您所谓的初值问题,本来就应该是人来调节的。函数包里面根据常用的初值,提供了一些默认的选择,但是总的来说,初值一般是我们自己可以选择的。 关于r的nonline ...

kakamama 发表于8楼  查看完整内容

R做不了nonlinear optimization么?别的软件能做么?别的软件能做初值问题么?

soccy 发表于5楼  查看完整内容

如果想自己动手编写MLE,不妨考虑一下ADMB: http://admb-project.org/

wngbaq 发表于4楼  查看完整内容

Nonlinear optimization的package 有一些package可以考虑试一下 比如 Rdonlp2, Rsolnp和 alabama 当然可能不一定能够直接用 楼主要加的约束似乎不常见 初值是一个永远的痛呀 每次都要费好多力气

ltx5151 发表于2楼  查看完整内容

lz不要只关注那些一步计算出来的函数嘛。我们需要的东西大部分不是那么容易算出来的,需要自己处理,R只是一个高级的工具,但不是万能钥匙。 对于quadratic的可行域,LZ可以用矩阵分解自己推导一下,一般来说可以通过特征值分解或者Cholesky分解将可行域化为比较好的形式(不如高维球),然后进行相应处理(比如Schwaz Inequality)。或者寻找Nonlinear optimization的package(不过R在这方面的功能还很不完善)。 loglikeli ...

本帖被以下文库推荐

沙发
ltx5151 发表于 2011-1-28 04:55:23 |只看作者 |坛友微信交流群
lz不要只关注那些一步计算出来的函数嘛。我们需要的东西大部分不是那么容易算出来的,需要自己处理,R只是一个高级的工具,但不是万能钥匙。

对于quadratic的可行域,LZ可以用矩阵分解自己推导一下,一般来说可以通过特征值分解或者Cholesky分解将可行域化为比较好的形式(不如高维球),然后进行相应处理(比如Schwaz Inequality)。或者寻找Nonlinear optimization的package(不过R在这方面的功能还很不完善)。

loglikelihood 可以自己编程用 gradient descent 或者 牛顿法做,十分方便,code也就5-10行。

使用道具

藤椅
jerry0501 发表于 2011-1-28 05:20:12 |只看作者 |坛友微信交流群
2# ltx5151

呵呵,谢谢,很有启发。
我一直懒得自己编,现在发现用现成的package总是被动的,一劳永逸的方法是提高能力能自己编出来。到处找package的时间还不如自己写code呢。
需要开始自己想办法了

使用道具

板凳
wngbaq 发表于 2011-1-28 09:42:05 |只看作者 |坛友微信交流群
Nonlinear optimization的package
有一些package可以考虑试一下
比如 Rdonlp2, Rsolnp和 alabama
当然可能不一定能够直接用
楼主要加的约束似乎不常见
初值是一个永远的痛呀
每次都要费好多力气
心慈行孝,何需努力看经;意恶损人,空读如来一藏.

使用道具

报纸
soccy 发表于 2011-1-28 21:03:08 |只看作者 |坛友微信交流群
如果想自己动手编写MLE,不妨考虑一下ADMB: http://admb-project.org/

使用道具

地板
zhouy1226 发表于 2011-2-12 14:49:28 |只看作者 |坛友微信交流群
学习下,多谢了

使用道具

7
tlyy1996 发表于 2011-2-25 19:51:21 |只看作者 |坛友微信交流群
这个问题是个普遍问题!讨论很有益!谢谢!希望继续深入!

使用道具

8
kakamama 发表于 2011-2-25 20:00:32 |只看作者 |坛友微信交流群
ltx5151 发表于 2011-1-28 04:55
lz不要只关注那些一步计算出来的函数嘛。我们需要的东西大部分不是那么容易算出来的,需要自己处理,R只是一个高级的工具,但不是万能钥匙。

对于quadratic的可行域,LZ可以用矩阵分解自己推导一下,一般来说可以通过特征值分解或者Cholesky分解将可行域化为比较好的形式(不如高维球),然后进行相应处理(比如Schwaz Inequality)。或者寻找Nonlinear optimization的package(不过R在这方面的功能还很不完善)。

loglikelihood 可以自己编程用 gradient descent 或者 牛顿法做,十分方便,code也就5-10行。
R做不了nonlinear optimization么?别的软件能做么?别的软件能做初值问题么?

使用道具

9
kakamama 发表于 2011-2-25 20:38:25 |只看作者 |坛友微信交流群
soccy 发表于 2011-1-28 21:03
如果想自己动手编写MLE,不妨考虑一下ADMB: http://admb-project.org/
ADMB跟R比孰优孰劣?

使用道具

10
ltx5151 发表于 2011-2-26 01:26:50 |只看作者 |坛友微信交流群
8# kakamama
请您看清楚,我没有说r做不了nonlinear programming,只是r在这些方面还不够完善。别的软件有的可以做,有的不可以。matlab这方面强很多,但是mathematica就稍微逊色一些。但是比较主流的软件都回整合这样的功能,只是其便利程度和效果不同而已。另外,您所谓的初值问题,本来就应该是人来调节的。函数包里面根据常用的初值,提供了一些默认的选择,但是总的来说,初值一般是我们自己可以选择的。

关于r的nonlinear programming,cran上面至少有五个这样的packages,侧重方向各有不同。另外,一些特殊的函数里,也使用的相应的算法,比如svm里的smo。但是整体来说,相对r本身的构建水平,在nonlinear prog这方面,r还是比较弱的(不是我个人评价,John Chambers 这么说)。r core team现在很关注的一个方向就是提高这方面的性能。比如,现在其中在试图建立interface,调用cvx。cvx原本是一个matlab下的package,做convex optimization的。而这个package又存在一个python下的版本,cvxopt。可行的一种方式就是通过使用r,通过c++作为glue,调用python的package。这些东西说来很简单,但是想做到user friendly,其实是有好多工作要做的。不过这也间接说明了matlab的这方面比r做的好吧。另外,cran 和 r-forge上都有很多在做这方面的project,kakamama同志有兴趣的话可以关注一下。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 14:14