# Inquiry regarding DSGE forecasting

I have a question regarding a DSGE forecasting, while the model works in its irfs I’m looking to see its predictive capabilities, once the irfs are plotted how can I see the predictive values of the variable? Here’s my code, I know dynare does not work with values only deviations from the steady state, nonetheless the equations are in logs, so dores that mean that the irfs can be explained in percentage?

var pi ${\pi}$ (long_name='inflation')
y_gap ${\tilde y}$ (long_name='output gap')
y_nat ${y^{nat}}$ (long_name='natural output')      //(in contrast to the textbook defined in deviation from steady state)
y ${y}$ (long_name='output')

ktot ${ktot}$ (long_name='Total Capital')
kgov ${kgov}$ (long_name='Government Capital')
kpriv ${kpriv}$ (long_name='Private Capital')
xtot ${itot}$ (long_name='Total Investment')
xgov ${itot}$ (long_name='Government Investment')
xpriv ${itot}$ (long_name='Private Investment')
gov ${gov}$ (long_name='Government Expenditure')
r_cap ${r_cap}$ (long_name='Capital Returns')

r_real ${r^r}$ (long_name='//real interest rate')
i ${i}$ (long_name='nominal interrst rate')
n ${n}$ (long_name='hours worked')
m_real ${m-p}$ (long_name='real money stock')
m_growth_ann ${\Delta m}$ (long_name='money growth annualized')
@#if money_growth_rule==0
nu ${\nu}$ (long_name='AR(1) monetary policy shock process')
@#else
money_growth  ${\Delta m_q}$ (long_name='money growth')
@#endif
a  ${a}$ (long_name='AR(1) technology shock process')
r_real_ann ${r^{r,ann}}$ (long_name='annualized real interest rate')
i_ann ${i^{ann}}$ (long_name='annualized nominal interest rate')
pi_ann ${\pi^{ann}}$ (long_name='annualized inflation rate')

;

varexo eps_a ${\varepsilon_a}$   (long_name='technology shock')
@#if money_growth_rule==0
eps_nu ${\varepsilon_\nu}$   (long_name='monetary policy shock')
@#else
eps_m ${\varepsilon_\m}$   (long_name='money growth rate shock')
@#endif
eps_gov ${\varepsilon_gov}$   (long_name='Government Shock')
;

parameters alppha ${\alppha}$ (long_name='capital share')
betta ${\beta}$ (long_name='discount factor')
rho_a ${\rho_a}$ (long_name='autocorrelation technology shock')
delta ${delta}$ (long_name='Depreciation')
@#if money_growth_rule==0
rho_nu ${\rho_{\nu}}$ (long_name='autocorrelation monetary policy shock')
@#else
rho_m ${\rho_{m}}$ (long_name='autocorrelation monetary growth rate shock')
@#endif
siggma ${\sigma}$ (long_name='log utility')
gamma ${\gamma}$ (long_name='unitary Frisch elasticity')
w_1 ${w_1}$ (long_name='Consumption Share')
phi_pi ${\phi_{\pi}}$ (long_name='inflation feedback Taylor Rule')
phi_y ${\phi_{y}}$ (long_name='output feedback Taylor Rule')
eta ${\eta}$ (long_name='semi-elasticity of money demand')
epsilon ${\epsilon}$ (long_name='demand elasticity')
theta ${\theta}$ (long_name='Calvo parameter')
tao_isr ${\tao_isr}$ (long_name='ISR')
epsilon_cap ${epsilon_cap}$ (long_name='Gov Capital Share')
;
%----------------------------------------------------------------
% Parametrization, p. 52
%----------------------------------------------------------------
siggma = 1;
gamma=0.1168;
w_1 =1.494527;
phi_pi = 1.5;
phi_y  = .5/4;
theta=2/3;
@#if money_growth_rule==0
rho_nu =0.5;
@#else
rho_m=0.5;

@#endif
rho_a  = 0.9;
betta = 0.8621;
eta  =4;
alppha=0.3564;
epsilon=6;
epsilon_cap= 0.8081;
tao_isr=0.3;
delta= 0.012;
%----------------------------------------------------------------
% First Order Conditions
%----------------------------------------------------------------

model(linear);
//Composite parameters
#Omega=(1-alppha)/(1-alppha+alppha*epsilon);  //defined on page 47
#psi_n_ya=((1+gamma)/(1-alppha))*((1-alppha)/(gamma+alppha+siggma*w_1*(1-alppha))); //defined on page 48
#lambda=(1-theta)*(1-betta*theta)/theta*Omega; //defined on page 47
#kappa=lambda*(((siggma+alppha)/(1-alppha))+siggma*w_1);  //defined on page 49
#lambda_mayus = 1/(siggma*w_1); /// Dynamic IS parameter

//1. New Keynesian Phillips Curve eq. (21)
pi=betta*pi(+1)+(kappa-(lambda*((alppha*(gamma+alppha)/1-alppha)+alppha)*alppha))*y_gap;
//2. Dynamic IS Curve eq. (22)
y_gap=(1/w_1)*(y_gap(+1)-xtot(+1)-gov(+1))-lambda_mayus*(i(+1)-delta-pi(+1));
//3. Interest Rate Rule eq. (25)
@#if money_growth_rule==0
i=phi_pi*pi+phi_y*y_gap+nu;
@#endif
//4. Investment, Capital and Government.
ktot = epsilon_cap*kgov + (1-epsilon_cap)*kpriv;
kpriv = r_cap +delta ;
xgov = kgov(+1) +(1-delta)*kgov;
xpriv = kpriv(+1) +(1-delta)*kpriv;
xtot= xgov + xpriv ;
r_cap = alppha + (1-alppha)*n +(alppha-1)*ktot -(1-tao_isr);
gov = tao_isr+ r_cap + ktot +eps_gov;
i= r_cap - delta;

//5. Definition real interest rate
r_real=i-pi(+1);
//6. Definition natural output, eq. (19)
y_nat=psi_n_ya*a;
//7. Definition output gap
y_gap=y-y_nat;
//8. Monetary policy shock
@#if money_growth_rule==0
nu=rho_nu*nu(-1)+eps_nu;
@#endif
//9. TFP shock
a=rho_a*a(-1)+eps_a;
//10. Production function (eq. 13)
y=a+(1-alppha)*n+alppha*ktot;
//11. Money growth (derived from eq. (4))
m_growth_ann=4*(y-y(-1)-eta*(i-i(-1))+pi);
//12. Real money demand (eq. 4)
m_real=y-eta*i;
@#if money_growth_rule==1
//definition nominal money growth
money_growth=m_real-m_real(-1)+pi;
//exogenous process for money growth
money_growth=rho_m*(money_growth(-1))+eps_m;
@#endif

//13. Annualized nominal interest rate
i_ann=4*i;
//14. Annualized real interest rate
r_real_ann=4*r_real;
//16. Annualized inflation
pi_ann=4*pi;
end;

%----------------------------------------------------------------
%  define shock variances
%---------------------------------------------------------------

shocks;
@#if money_growth_rule==0
var eps_nu = 0.25^2; //1 standard deviation shock of 25 basis points, i.e. 1 percentage point annualized
@#else
var eps_m = 0.25^2; //1 standard deviation shock of 25 basis points, i.e. 1 percentage point annualized
@#endif
var eps_gov = 0.25^2;
end;

%----------------------------------------------------------------
%  steady states: all 0 due to linear model
%---------------------------------------------------------------
resid(1);
check;

%----------------------------------------------------------------
% generate IRFs, replicates Figures 3.1, p. 53 (interest rate rule)
% 3.3, p. 57 (money growth rule)
%----------------------------------------------------------------
@#if money_growth_rule==0
stoch_simul(order = 1,irf=15) y_gap pi_ann i_ann r_real_ann;
@#else
stoch_simul(order = 1,irf=15) y_gap pi_ann i_ann r_real_ann;
@#endif

shocks;
@#if money_growth_rule==0
var eps_nu = 0;   //shut off monetary policy shock
@#else
var eps_m = 0;   //shut off monetary policy shock
@#endif
var eps_a  = 1^2; //unit shock to technology
var eps_gov =1^2;
end;

%----------------------------------------------------------------
% generate IRFs, replicates Figures 3.2, p. 55 (interest rate rule)
% 3.4, p. 59 (money growth rule)
%----------------------------------------------------------------
stoch_simul(order = 1,irf=15,irf_plot_threshold=0) y_gap pi_ann i_ann r_real_ann;
write_latex_dynamic_model;

1. If the model is set up in percentage deviations from steady state, then all outputs will be in percentage deviations from steady state.
2. You can run the calib_smoother command with the forecast option if you have empirical data from whose end you want to start forecasting.