dsge模型参数估计 matlab,DSGE求解和模型参数估计的一些认识
DSGE求解和模型参数估计的一些认识
其实DSGE最难的地方不在于模型的optimality condition的推导,也不在于寻找Saddle-path。最难的还是在于参数估计,最大似然或者是贝叶斯估计。我下面一条一条地写出来一些认识,希望和大家交流。DSGE是宏观经济学的顶峰难度,不适合数学和经济学基础没有打好的同学,更加不适合自学。这个行业里面一直以来都是老师带学生的传统,基本没有自学成才的例子,至少我没听说过。所以要提醒大家,有导师的,要依靠导师,没有导师的要多跟别人交流学习。
1 . 动态规划是现代宏观的一部分数学基础,但是不是你们想象中那么重要。不要以为学高级宏观就是一直在弄Dynamic programming,这个技术虽然不简单,但也怎么也算不上现代宏观或者DSGE的核心技术。完全没有必要画大把的时间在这个上面,DSGE不依靠它而存在。就目前的DSGE研究来看,用dynamic programming的地方就是对Euler equation分析求解用得比较多,其他地方基本都不用。更别说Dynamic programming的数值模拟了,除了上课的时候用,真实研究里面基本不用。
2 . DSGE不是非要线性化才能搞,关键看你的目的是什么,如果你就是做模拟和impulse response,你没有必要自己动手去对数线性化,Dynare可以帮你做。但是要知道一点,我们对付“线性动力系统”的知识远远比“非线性动力系统”认识要深和宽泛。非线性动力系统对付起来很麻烦,占用大量的计算时间,并且准确性低,对初始条件非常敏感。非线性微分方程组里面一个重要话题就是混沌理论,用在气象学上面的一个著名例子就是“蝴蝶效应”。如果你学过研究生级别的微分方程课程,就应该知道非线性微分方程一般我们都要做泰勒级数一次展开,其实DSGE的线性化本质思想也是来自于那里。
3 . 和所有动力一样,一个线性系统必须要stable solution,我们才能预测和模拟。linear rational expectation模型求解之后找到一个stochastic difference equation system被叫做policy and transition function。这个系统是描述整个DSGE模型动态性的一个终极解释,所有endogenous variables都会沿着一个saddle-path(鞍部线) 移动。在微积分上面我们知道有一种saddle point,通过Hessian matrix的行列式检验之后可以发现,既不是最大值,也不是最小值,如图:
这个红色的点,就是saddle point。但微积分教材没有说一个关键的问题: 这个saddle point是一个equilibrium。这是一个基本的物理学认识,如果这个曲面绝对光滑,无摩擦力,那么你放一个球在红色点的地方,它会静止在那个地方不动,因为这里是力量均衡点,重力和支撑力刚好相反方向G=F,一个垂直向上,一个垂直向下。经济学的均衡思想最开始就是从物理上面学过来,因为市场供给和需求就是两种力量,如果相等了就是均衡了。
还有,看下面这个图,钟摆。钟摆有两个equilibrium,这个图只画了一个,这个垂直向下的equilibrium叫做global equilibrium。另外一个均衡点是,钟摆垂直向上,这个时候钟摆同样会静止不动,这个equilibrium就是saddle point equilibrium。它对初始条件非常敏感,已经敏感到了初始条件必须是垂直向上(刚好就是equilibrium),才能保持均衡。
我上面之所讲这么多,就是要告诉你一点,DSGE的解实际上就是一个动态saddle point,所以我们叫做saddle path。它往往存在于高纬度,所以我们一般不画图来解释。saddle path有时候对初始条件敏感,有时候不太敏感,这都要看情况,这里和李雅普诺夫的稳定性描述有点相似,但是saddle path并没有一个准确的basin of attraction的数学描述。
4 . DSGE的求解方法很多,Blachard-Kahn是行业标准,检查单位元之外的特征值数量是否与nonpredetermined variables的数量是否相等,其实这是个基本的差分方程常识,我在之前的帖子解释了很多次了。BK方法的弱点在于出现了Singularity就没法解了,所以我们有其他方法Sims’,Klein’s之类的,用泛用性很高的Schur decompostion或者QZ decomposition就解决问题了。可以说,这是DSGE里面一个特别简单的版块,除了一些技术性知识之外,没有什么对智力有挑战的地方。
5 . Dynare是作为一个行业标准而出现的,每年的Dynare年会都立足于推广DSGE和Dynare在现代宏观经济学上的使用。你可以认为Dynare是个黑盒子,但它实际上还偏不是黑盒子。因为大部分执行程序都是用Matlab编写的,如果你能看懂,那些”xxx.m”程序都是可以打开来学习的。当然你不想把DSGE做为研究方向的话, 只学习Dynare的应用就已经够难了,更别说看懂内部构造了。所以对于大多数同学来说,Dynare仍然是保持着一种黑盒子的状态,包括对我来说一样。
6 . 同时因为state-space 模型是一种泛用性极高的线性系统,里面的transition equation刚好就是DSGE模型的解(transition function),这个极其巧妙的特点是当年Sargent发现的,同时意识到了一点,只要能写成state-space 模型,就能推导出maximum likelihood的函数形式。所以我们能用Kalman filter来数值模拟出maximum likelihood。
7 . 最大似然估计很容出现identification的问题,简单来说就是不同的两套参数,在同一种structural model的情况下回产生同一种probability distribution。这样就导致似然函数的顶端是平的。下面这个图是用Dynare做的ML估计,一个简单的新凯恩斯模型。看Sigma的log-likelihood function,顶端是平的,这就一个identification问题。所以必须要用prior来加权重,所以采用Bayesian有绝对优势。
8 . 关于Bayesian estimation,要说的就太多了
喜欢 (6)or分享 (0)
dsge模型参数估计 matlab,DSGE求解和模型参数估计的一些认识相关推荐
- boid模型的Matlab程序,基于Boid模型以及吸引—排斥模型的沙丁鱼集群运动行为模拟...
刘培 宫子涵 [摘 要]本文首先为了分析了沙丁鱼集群的运动模式,引入了 Boid 模型.通过个体间的距离划分出了排斥区域.一致区域和吸引区域.当相邻个体处于排斥区域则保持足够的距离,尽量避免碰撞,当处 ...
- 如何用Matlab建立信用风险模型,基于Matlab计算的KMV模型在商业银行信用风险管理中的实践应用.pdf...
科技论坛 2014.6 基于Matlab计算的KMV模型在商业银行信用风险管理中的 应用 李 园 (天津大学管理与经济学部,天津,300072) 摘要:社会经济的不断发展,金融行业也处于不断发展之中, ...
- matlab如何求解sbm模型,非期望产出的SBM模型代码问题
clc,clear all; load('OUTPUT.mat') output = OUTPUT load('INPUT.mat') input = INPUT load('UNOUTPUT.mat ...
- Matlab常用求解数学规划模型代码
Matlab求解线性规划问题--linprog函数: 引用博客链接侵删 [x,fval,exitflag,output,lambda] = linprog(c,A,b,Aeq,beq,LB,UB,X0 ...
- 云模型的matlab实现,基于云模型效能评估的Matlab实现
摘 要: 对基于云模型的系统效能评估方法及过程进行了简要的描述,用Matlab代码实现了部分算法,代码经测试均可正确运行.对云模型的研究和应用有一定的推广价值和研究意义. 关键词: Matlab:云 ...
- 电力电子变压器matlab模型,用Matlab建PET控制模型研究电力电子变压器并联运行仿真...
描述 电力电子变压器并联运行有利于进一步提高电力系统的供电可靠性和供电容量,具有重要的研究价值.为了实现并联运行电力电子变压器之间负荷的稳定合理分配,并具有良好的动态响应特性,基于有功和无功调差特性方 ...
- matlab空间杜宾模型命令,matlab 空间杜宾模型
你怎么还没解决?实在看不下去了. PURPOSE: computes spatial durbin model estimates (I-rho*W)y = a + X*B1 + W*X*B2 + e ...
- 一次递减代码matlab,DEA算法学习系列之三:一次性求解CCR模型所有DMU参数——效率、规模效益、有效性特征、调整值的matlab代码...
<DEA算法学习系列之三:一次性求解CCR模型所有DMU参数--效率.规模效益.有效性特征.调整值的matlab代码>由会员分享,可在线阅读,更多相关<DEA算法学习系列之三:一次性 ...
- 机器学习笔记(二十)——求解最大熵模型
一.问题的引出 最大熵模型的学习过程就是求解最大熵模型的过程.最大熵模型的学习可以形式化为约束最优化问题. 对于给定的训练数据集T={(x1,y1),(x2,y2),-,(xn,yn)}T=\ ...
最新文章
- 软件测试--利用正交表设计测试用例
- 为什么要使用Go语言?Go语言的优势在哪里?
- linux统计文件的个数
- H.265的NALU
- mysql insert 返回0
- Linux基础系列(四)系统用户和组管理
- 问题排查:单表3000笔数据查询竟然要2秒?
- WCF添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。...
- 网页拉起QQ进行交谈
- 程序员离职原因的最佳回答_程序员面试被问离职原因,如实回答不适应996,面试官答复尴尬了...
- 主成分分析(PCA)原理详解_转载
- python实现根据经纬度画地图热力图
- js版俄罗斯方块(二)
- php中的print r与echo,php中echo(),print(),print_r()的区别
- 算法设计与分析(第2版)屈婉玲 刘田 张立昂 王捍贫编著 第一章课后习题答案
- Micropython加速物联网开发4 - SPI驱动5110LCD屏
- 如何制作你自己的电脑游戏
- 在银河麒麟V10操作系统上成功安装lnmp详细步骤
- couldn't recognize data in image file问题的解决方案
- 5个月的精华:Spring/SpringBoot扩展点手册:手册在手,编码无忧:全网独一份 - 第451篇
热门文章
- Professional VSTO 2005: Visual Studio 2005 Tools for Office
- Biome-BGC模型原理与应用
- # js 打印预览和局部刷新
- Dinky实践系列之FlinkCDC整库实时入仓入湖
- 穿汉服写书法行拜师礼 两岸学子感受书院文化
- 1849公共部门人力资源管理 (2)
- 干货讲解丨在线教育行业如何搭建产品QA文档/用户培训手册
- python删除文件某行_python 文件操作删除某行的实例
- Python对excel单元格着色
- 火山引擎荣获中国信通院“2021边缘计算融合创新奖”