全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6418 6
2013-05-07
这几天正在使用maximum likelihood方法估计discrete choice模型。很多情况下,计算likelihood的程序需要根据被解释变量y的取值来计算likelihood `lnf'。达成这个目的常见的方法是使用if条件语句。例如:
复制代码
当数据量较大(例如,超过10万)时,这样计算likelihood耗费的时间太长,从而影响这个maximum likelihood估计的速度。这时,只要对算法稍加改进,就能大幅度提高运算速度!

这个改进其实很简单。原理就是用in语句代替if语句。大家一看下面的例子就会明白了。

剧透一下:试验结果表明,当数据包含20万观测值时,使用in条件比默认的使用if条件来计算likelihood可以使运算速度减少(相对于默认算法)40%至50%!
复制代码
执行的结果是:
复制代码
复制代码
复制代码
复制代码
二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-19 17:04:36
为什么sort之后,变慢了呢
二维码

扫码加我 拉你入群

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

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

2014-4-22 21:09:52
kerrydu 发表于 2014-4-19 17:04
为什么sort之后,变慢了呢
把你的程序和运行结果贴出来。你在你机器上运行我贴出来的那个程序了吗?结果如何?
二维码

扫码加我 拉你入群

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

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

2014-4-22 21:34:34
我在我的新电脑上重新运行了一下上面的程序,效果还是很明显的。
复制代码
二维码

扫码加我 拉你入群

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

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

2014-4-22 22:02:29
夏目贵志 发表于 2014-4-22 21:34
我在我的新电脑上重新运行了一下上面的程序,效果还是很明显的。
我也试过了,确实是这样。但实质上第3与第1没区别,不知道为什么加了个sort反而慢了这么多,难以理解
二维码

扫码加我 拉你入群

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

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

2014-4-22 23:14:12
kerrydu 发表于 2014-4-22 22:02
我也试过了,确实是这样。但实质上第3与第1没区别,不知道为什么加了个sort反而慢了这么多,难以理解
不好意思,我一开始没看明白你的问题。现在明白了。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群