From 592c2c8f779d791e939c66847898a2bcfb770ae9 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Mon, 22 Jul 2013 19:25:53 +0200 Subject: [PATCH 1/2] Add unit test for shock_decomposition --- .../example1_calib_shock_decomp.mod | 71 ++++++++++++++++++ .../example1_calib_shock_decomp_data.mat | Bin 0 -> 7703 bytes 2 files changed, 71 insertions(+) create mode 100644 tests/shock_decomp_calibrated_model/example1_calib_shock_decomp.mod create mode 100644 tests/shock_decomp_calibrated_model/example1_calib_shock_decomp_data.mat diff --git a/tests/shock_decomp_calibrated_model/example1_calib_shock_decomp.mod b/tests/shock_decomp_calibrated_model/example1_calib_shock_decomp.mod new file mode 100644 index 000000000..a4e372c6a --- /dev/null +++ b/tests/shock_decomp_calibrated_model/example1_calib_shock_decomp.mod @@ -0,0 +1,71 @@ +/* + * Example 1 from F. Collard (2001): "Stochastic simulations with DYNARE: + * A practical guide" (see "guide.pdf" in the documentation directory). + */ + +/* + * Copyright (C) 2001-2010 Dynare Team + * + * This file is part of Dynare. + * + * Dynare is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dynare is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dynare. If not, see . + */ + + +var y, c, k, a, h, b; +varexo e, u; + +parameters beta, rho, alpha, delta, theta, psi, tau; + +alpha = 0.36; +rho = 0.95; +tau = 0.025; +beta = 0.99; +delta = 0.025; +psi = 0; +theta = 2.95; + +phi = 0.1; + +model; +c*theta*h^(1+psi)=(1-alpha)*y; +k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1))) + *(exp(b(+1))*alpha*y(+1)+(1-delta)*k)); +y = exp(a)*(k(-1)^alpha)*(h^(1-alpha)); +k = exp(b)*(y-c)+(1-delta)*k(-1); +a = rho*a(-1)+tau*b(-1) + e; +b = tau*a(-1)+rho*b(-1) + u; +end; + +initval; +y = 1.08068253095672; +c = 0.80359242014163; +h = 0.29175631001732; +k = 11.08360443260358; +a = 0; +b = 0; +e = 0; +u = 0; +end; + +shocks; +var e; stderr 0.009; +var u; stderr 0.009; +var e, u = phi*0.009*0.009; +end; + +stoch_simul(periods=500, order=1, irf=0); +varobs y c; +shock_decomposition(parameter_set=calibration,datafile=example1_calib_shock_decomp_data) y c k; +shock_decomposition(parameter_set=calibration,datafile=example1_calib_shock_decomp_data,shocks=(y)) y c k; diff --git a/tests/shock_decomp_calibrated_model/example1_calib_shock_decomp_data.mat b/tests/shock_decomp_calibrated_model/example1_calib_shock_decomp_data.mat new file mode 100644 index 0000000000000000000000000000000000000000..a5ecea5bb361b8c8960ce320b79fabfe2f478a0e GIT binary patch literal 7703 zcma)=RaYAfpdc&AM~k~QI7N%K5FCQLySrO)Ed&n~C%BYCkYdF(#hu{p?he7Zch8=E z-+7w9Fry@{sVFW%{gs20T1i}!-P+F4ij7*;(agiz#obAOS{0-tr~HkVjT+=`W#(aJ zN$uh+K&|BBOfB!}NX^Yn%>@+TIn>Rk$?9h+= zse04>gPJkoi5wgZP&tm&Vfw-sbxrvqNJ5_xL39j#1T7JRM55$`6(Ny3yeK8np&9lo zHp6wy7y0-JN_c;Z3|R9W^S!;wwK;2_T|Co2dRbdJ2M^q}bOsZe5LT`qK)=X+`IH8)piT?IZ8pO(=}x&E4q=BLy`LptBb z#F`~no%3U}Iu~eO)a0i=2Zg;q&P8U59G9<#`GT<_&44fI#2?gN4MmE+hk_Rl^6ZJ= z?gK^{7yJrRQK!7MHR~B3c?3|ct<j-e(_vjHZg2>|~d8x}jiR+nNAu}NM zn&cvybRd5nNwK|%%I111ch9Y#EC0a-Crfu8D8{c$H<3JY_>8dFalfrw<+^-Gbc)}x zl|*vUt>jCc>O{kCehtgxhyVdL0X~dUrosKL`O^2~4i_@BRQ9RZ*a{CIP^-?C6h3hM z zE%WqI%Xd;sCaF98;w$Xub}gp}z@}<;(45*_Wvk4OSf^HV5x|6zS0ByEW@B&%!fv{aowhnzSx_lK;YXp}ox zS{Py27b-bzzfkM4!Fi=tlBu_~jY_*{La(V?iS_hCF9Fe;MpT%_hO+0%a~7^rCgmp9 zAHk`!-n4&ZP}9jZ6OZ1%f8N_W5waw0g0?;x;Qcf0>k-;(L81- z&#&|uL2&76xxUXld3_YT8j9YQF?}SSK|C}l7*FVU{%3e$3(+@^Hn>kZM@^T#q~g}Q z@(v0hV(}}4qa%iy+GLKVsp&sjtv;9da&`!~e$y`ZO7}M*l~eSkMFDR1FTst$O@*hi z(aqFrO6W+y_e(smfgn|X1uYp{0{$~2SKoR^veBNqQs@;3?n~stR6T!|o|7(tYhVO- zofQntc$^-Vi2P4F<~d8WlFl`~&wgijLP-9inz`Tz-&}&czLsozakkE|#4?{cJ&o!s zr1G)Ut3sX^%pg~I7=wd)4ySVaeyaYK*hjW*6BWQL_-a6<+tnX8#mWOh^2k;N)s+N< zyiw}SLF!!V!uA4u^jnq7bqLo_aBf72e@i_8mIFoB1kHIjuB z-wo(hX9#YQ#u|D2sdKbgrxV#{dX5!WNQru#<3w{I*+cowf*+8RlsMx__unU9<8(*a zD;bMov4~lNt(EY|rx#0Vy)V5ivRtzIR&INt@2C{6G3~d>B&pz9LS{^2vyJVwIHQc? z51--lM%ku09^H8=Or*=JNHe)h@lf+U5hRL5Xi;P4%jGX$z9p5mes)L*ION^!WZUE7 zse>S$>JP8sV3P3NkFK}M8^=3Cn2Yangc=?G%lE3V&Mk<2<25GkplR}P-Q!{lS@|I| zl3iknY8T};r-HBQnp;;tX+BUcn!2!l-lO8b(W;4t)zc+Rj-RKSI)dD`jw-Jcdx(5w zKeJxV+rwbTX{J&LO33XEF>Nx60hRJTKf8IN;cbcPY=l(jqEp31B1#$aeJ7KhD3DWK zw`HG2Jkt_^cnIW$2Sy5GO=1LHx~~0A+?B~bZ65r=hXP9u2B`eL5weN2l{Cf_M^1Fu zTQOxKY4FL>NB<*)uNe|l%AZqvW0)wVh`}!;H;sUy)4^UUXnUNbG5%LGRr)`w(Z&K? zir@54QJGV=*#^)x8vlWq{(F7wH^>0i1sl$pDBX@D>#aiaRiL|tPCf&SH1GT4ej>CL za51S8*UVeOOruYu&nLG~Mp^b0jHL-uIEJEJ5Of2j+uA|DE}9%SZc2G^DV<&Y%gu+( zyPca6-xo1vNgX?`e$47ztriK88R)TLQK%Sg4s8mQGmujZbgAe!QMcsuiae{Ib+EI2 z0<6LtE5ZLfY{vJ8B|<5H8zIW z&UVp%*&OL|y&6QVxFANOB=9bY944Cf`)`m(k@^Onl4oBqw>u;JZ-Vc$=9joihd*Ao zkKPIErVCx>BwvS!k|Cn-f)|Eo;5S<><)eVdj(1tM#7mk4-Zg$~&g}lzj8d_OncFwq zk2fABGY*HHHo8qlBdUSv!<&2xc!QVP#Qw!Z(lAb$fM!}89@DI?n^Gthd z@J6-RW}5l?owOt0ek)I7^&q)Vv3bfsnw{fB+7mSF$t8IbKq{>5VmjW#1@`1BO3UPn z6Pb-g@{OhRJO884M&7O`TU}v%2L(lb;EN@YXXhs*$xY}8O7`Emy@YHR(uk6CA&;e*lq1GVJ)KH0^M>} zG2W?N{*gTZcAAvm&NfZ97zPcApHd0SaJ246(FEea^Y~#6-Kn5GiQa2mk&kheo0+2O zx|Bz+p2drFL#2y0@4slYk1yZG`5c?oI5u(38vYDVeL7#D^T_+r5rL0GMcjfML#!n! z0cj;!>*62meoyI|NgplKuO}@@`x8I1Y904EkGGKp;jZTlZHgVv$IaQXu}KnA4q260yI$W_=|__ zVY(Mr$P)PSU%(Jn`SVu^CA!Z@+qyvYWvO!!)zia$0yKzduH+o0UO!+?Zz>-wA*A;Rb&x2zdN{~>%- z$YS-pMtjJoztQ5Ip>6Uo6>Muzwr?kd3^3eU(My?oj`va%5jn+7duiqstwm3`yAqWKQIU(fJsfrFi! zyRp&E0@4Pp@?c*0CvBmn%EcbKbCkghJXQ--9%1RL56YPU{8|Sq`ZN6Os}Gy3M%42K3lp9K(DmYb5D=<^g8ccy#~1rz zGJpSwmZkd+(bK{-d3`@In=_(@6H4%Q%fkCJ(`sv9(0pCop=|HH*Qitqs|gj54Ve~V z77g3hqz2!C<0J7kNjW=w(<*sa+laVCcXBOF8w5VJVRzlcR!#ExK^i2G)E0tjlvmZ=b3WVLfYu{vziuB|j?-V-b z=6Tu@&Ae~yf5nu%s?k%b?(53Mv2eg*`l$AH^2YCV(LDkOwH1Vx+AM_WGo!Loez8t< zeQ$6h3erWYKU?YF<0@h*eVpuyaFy-rV5JE|f7HAW8CB=z{RM!53Xj$Ox8f%r)p1vt~kEJRun!m2}HTf|1p0Z^zecA*5Q@i@w? z^X~NXC9e0`RXqUd>+?$Q(Gb9m!`jVyB%+UP2F-@V`#w=~`vp362S#x6Zc^#EK_ahe z(ZW8|3-KoLtUiAVm=+uw_%yms#~8dyVubNlv7y~Tv3a2XF=>Y-{u&h*(wt!H3Bf5W z6(`sU8oJP8>i&p^x}UP%YnZirCbw|T3FcOa#S zL;*%a>_}FgCntKc<*D3fuU#E9yjCwhr3=zKGIS$7`7;_iC;GCy*`fg-=N!BpgYrX* z3K!-)nZwuKlM31dr>cQ-i;73&W(YrgSBuHQvwzQlDR0YL>1`zhr| z<)bv;my^FJo%zE5AfGN>iQB(OiSDws+P;1nSvyreE9b6QLe6KnsoE-DPUq%7cz*3a zOnw*1Ze;Y(S`KW()_)2ti|zKGVC@tRq zRJ?$jzO6uxWmL|pNtV6rK0g7xeZl^5Ze=UM?$aGFEu@0T#|?v0jS$rto^Us}i^CBNl~N>U5yXlI>-`+zSKI*`$D@LSS* z`u+;bE&k=9j0Qqq#721)!idP6!v6Wi;@jv(Ta#4PW|_!<^~i04+5xB+0B1nEd00;& z5Bfb+fzwaSR5P~pn6GPHs4duI)>YN_tjQE9O9Qal(4fpjt$2BH%?3Rf2U_8gZ1OP| z9;gsu=W@T|vF2LRY&rqwnv%lX5vf)+6ngaD@hiqQBee9PSo81{DKY)O%L`U)BWKHs z(?^!$Bn4dV#UbL*C$%7b;QKiHQZ_#-@FKE9epr}PQS>j~QG*RyQ4^G7wx~c}aSvZoq_y2=&cgJmf~hf<9ho<#NF%emVJ@r_ z=MbE@<`u=x#FIuKLT&sqn1|aUN+Nojw>7yS|HwFdWm2wS#6IMa#Ejgbk4oiEQSHul z+|xiZukRtfkxu5sE}d$^J9!nf_0*hO8ughx!i&A!%cP(tpGJLjBwG6Ca%Huc4tJhG zyZjy@FfyyWR0kKU>UW^o9AHXT{fxVHU5-xFCOTF^z*khW+8BH%7wuoE7ZB1%l=mr^ zJ(#?vQRKg|q2dA-MhBNHc?+psx7F5RUV$%d{MHllnp1o20 z<_eEYvE4$pyc`RMK0bI@3~GgA!}`3=eCXC$@{^{M{g+rMb{^3YZe|38J|DZ!@1C-Y+~Atjwtr)KOeV?d zZ&=78Uu(n%BO^RojCzS}+^gc3gf;ml_Syf|$2S(5{k8iyF_0HXvx(z;%Cp7-x&{GIWK_?aDxB|2syR*m5Ev5+pEtRXpt zg!`_D4S9?YgUVA_lUo67qddy4NreeX>%>=HWZ}gwWk7Yo&mPkDL2Ee@;sb1_{NCXb z_wgm`{=S5tl;S=J?x=DWKTr_LuE@s)>k)~ajt1B7uK2t2veoS<81&kT!50qMOI^;w z1|vOD2|KXJVt#&Avn`EL}) zs1cUky6&#q3KPB{pkIfNWL$#{m9k!dAD{%0&W8^gxX&HaJ9{i2c(O^tU1k~fM&zG$ z#PcM&pI2-uISN!)ih1^6%lhSLSB1`(Xr)?KZpVzSHw@83s zc2vZ_RjtO-n_W7HFwr-ks6Qx@&6Hs;fOb67fOosx$Ow9*A@BL#!CpWQ5 z!4KoLZNu2NO=b%0U~ZPx^v~?-SshL^aFlyp&AB+GZASKwIYeH{3WqIXzH)H?QtPnW zuWrNbBrEQTqVvRU|AwgACPU>bby(ZA(fF)I=Jooh^5HF?$!)4gezn8pU+iP@hr{?1d~Lt0Rr3EGkz8!K6p#BQO{?^N-NL5A-#h#1n!}Gu?(1-P zuv0FZ2ho=fZv36tW?PgH!UdcQq%*1rkkSqklHxqOv9S9cuf(8yi4BrC$*M-*PH+&C4j;$qR|281Bq3=W%UplMk? zXY=%WF16UP1v{^R%epx92%2+nN{kyg+n_TG1k6M-8Q4Fg>rG40D?n>>NnjQm|<9 zsyINgDRVpfF1Hj9jgDgEx@WgK!9F<4 z@&OWZS$GVejpK?sp^_6S8j+Cx4s9Oi1>;11qkQ?tIUt7SKb01)8>*`$5NrRM%jWsA}?XaD_okAd@HB2JNQZNi)Im&XPiS9aJ8( zbzS+Z3z6hnLV7d;p7y&4gflv5Qw>V>M2)E{q(}&`tm-I z7}d(4Vo#Sq_#F1y>pwSeR*&D%+*3`ulVzEfO&6dyq-7v%mN-!r)ERwDpf>j9!964V z+6$Z-_eJlR7wd@sF?1iNlnI0eVw;3E_N}HPLIS@A9RDCj--$|`(95MHHXcgk_EYqT zO-V7d6q!(qCZ9@_qkOWTpK6T(M(v;p%3yxyKVVMaFhmp--Xtk>D`3l z{>kQOMBX(F*3;xGPb;CXZQ{umRwo?zbs{z(;gGcV`;FTS^<~gD;6YA6FHh9ej;}g1 zTw;fz^NkuY#pSRSY?UXy<)&S|Fg4`m*auqiyK*=1f$5sG#{CR{nsdnTuo)h`^g)i; zMn)J1!=aXwLsJ8QXI*e=pCG7o9X&F$qC;t26E$RJDh7*$0*(Fu8;g&7ME{!3ruI40<%uA1@p5~qA`)JZ08w1g8)YR+`xyNf|GFUOb7(;I zxWyO#DU|?vdV!&AC#L*y{3Y0|IY++w}PY2~} z^rU>Nw*y~j5!X2&~8ra(r)ZXjCCr?`Zb91mm0u%`YvqUeXp=JoJ(>o z-H}w(MCSa(T{o?hiQ@9*4$h6;^P=sz@MlxWVsc24KYP7st@y>nIEFU@sd7fb$nS3l zTDrpO4ujop3mqOZ1|)Btaw5Nm|I3>w$ekcug>6?dD;BwSwmnC)Zj^IDgsC7HYmKPo zCkvu-K0)e%&-m_NWUgM)7FWeLmito(QzHqBZ(Bbq?BaJcj!_vaoWe%Ax%4-9!)L-`=)8WVJ3JM&PYz8iFQ|{?${|d zI6y?xZ+Ti&`;u#hDriFn8_@1Hm_+d9?la4>rJC_jq|V%G)C565Hg>ylKzmgDHA_z5 zW^}+GD39$Qy`IPv*s0Vm6%GwZ0zwqy>*M+|(ly&EMEXTl`&g(CT(|cjv9{6I)m6!# z)bL-oHW8y=H;-_i2Sm_fpj*?TZ%XQVc=@xy1>Loc2nt?xf zM#!hBtr#(YNJ5WJ8ZlX$_94ZZ9B~ln0Xf>s7alWyI$mY>1^xx!&G@gMW%YvAWX0B> zC|E!_`v|?&#@d;jC01;YSTHF8!v^nT@ z+lIyQ>F=aBy)qYxZk0ueICvYPqfUqS^S8GBYEWX4(}(mK`Q$byW+T( Date: Mon, 22 Jul 2013 19:29:55 +0200 Subject: [PATCH 2/2] Set options_.smoother=1 if run on calibrated model. Otherwise, the error in dynare_estimation_init is triggered as no estimated_params block is present and the smoother option is nowhere set. --- matlab/evaluate_smoother.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/matlab/evaluate_smoother.m b/matlab/evaluate_smoother.m index 32f58a280..a9968a0f8 100644 --- a/matlab/evaluate_smoother.m +++ b/matlab/evaluate_smoother.m @@ -46,6 +46,10 @@ global options_ M_ bayestopt_ oo_ estim_params_ % estim_params_ may be emty persistent dataset_ +if ischar(parameters) && strcmp(parameters,'calibration') + options_.smoother=1; +end + if isempty(dataset_) || isempty(bayestopt_) [dataset_,xparam1, M_, options_, oo_, estim_params_,bayestopt_] = dynare_estimation_init(var_list, M_.fname, [], M_, options_, oo_, estim_params_, bayestopt_); end