v***o 发帖数: 51 | 1 搞了大半个月,给导师数落无效率了好几次了。结果刚刚发现是效用函数没从本来的
cara换成crra。因为除了一个结果其他都合理,就怎么也没想到是这问题。然后就试着
改epsilon去规避inada condition的边界点,回theory去break formula。。。简直死
去活来。
各位搞计算的都是如何避免这种无用功的(当然这也是学习过程,不过成本太高)。有
个合作者或者导师精力充沛会有帮助。不过可能大多数还要靠自己形成好的习惯吧。还
请大家抛砖引玉。 |
k*m 发帖数: 6 | 2 我觉得一是注释
二是尽量把程序写的通用点,把有可能需要在未来调整的参数集中在某些地方
【在 v***o 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 搞了大半个月,给导师数落无效率了好几次了。结果刚刚发现是效用函数没从本来的 : cara换成crra。因为除了一个结果其他都合理,就怎么也没想到是这问题。然后就试着 : 改epsilon去规避inada condition的边界点,回theory去break formula。。。简直死 : 去活来。 : 各位搞计算的都是如何避免这种无用功的(当然这也是学习过程,不过成本太高)。有 : 个合作者或者导师精力充沛会有帮助。不过可能大多数还要靠自己形成好的习惯吧。还 : 请大家抛砖引玉。
|
l******n 发帖数: 213 | 3 我也没写过太多code,也就是玩玩aiyagari这套和用用NPSOL。
一个是写code要格式正确。至于改了后头忘了前头的问题,还是要足够理解code,而且
经验不够。写code是很痛苦,要找到你的长处,有人擅长写,有人不擅长写。 |
I****M 发帖数: 143 | 4 我也有过很多这样费时费力的经历, 觉得有几条可能有用.
1。遵守syntex: 该predefine就predefine, 该分号就分号, 该对齐的loop就对齐. 如
果lz也用Matlab(2008以上版本),会发现一个没有违反任何syntex的code,最后的.m
file右上角会有一个绿色的小方块;没有syntex错误,但是有改进余地的,出现桔红色
方块;有明显错误的会有红色方块。这是排除基本错误的第一步,有时还能提高循环的
效率。
2。尽量减少使用的变量数目,但是提高变量名的信息度,这对于经济学问题尤其有用
。太多变量不好管理,占据内存,降低速度。
3。非常同意楼上强调的通用性。比如两个变量有关系,尽量写成函数关系。在定义关
系时,考虑到这个变量可能取extreme value,可能变成vector, 甚至是matrix,所以
要允许general的函数形式和运算符号。
4。用有解析解的一阶条件作为benchmark,去检验数值解。大多数用数值方法求解的
问题自然是没有解析解的,但是在一些特定的functional form,比如消费问题中的
CRRA, log-Normal |
v***o 发帖数: 51 | 5 谢谢楼上几位的真知灼见。MITBBS不正常,刚看到。
楼上讲的2/3也是我觉得头痛的问题,要有个很好的前瞻性。矛盾就是更多时候是没前
瞻性,因为有了问题也基本解决了。如何留有冗余又不失效率很没头绪。
另外个手头上的实际问题:如何解决用truncated distribution近似正常distribution
时两边tail过大?比如一个value function是个预期值,以mean为state variable,当
这变量取靠近两头的grid时,value function回overvalued or undervalued。还请高
人点拨啦。 |
I****M 发帖数: 143 | 6 另外个手头上的实际问题:如何解决用truncated distribution近似正常distribution
时两边tail过大?比如一个value function是个预期值,以mean为state variable,当
这变量取靠近两头的grid时,value function回overvalued or undervalued。
I faced similar problems. If the underlying stochastic process is stationary
, I usually use Tauchen Method for approximation; If it is a unit root
process, linear extrapolating the two ends of the state variables should
help. |