$title Intertemporal Consumption Choice with an Exogenous Interest Rate$ontext This program is a reply to the following question: > I am an MA student in economics, finalizing my dissertation soon. I am > constructing a 2 period savings model in gams and calibrating it using > MPSGE and the MILES solver. I need to enter current and future > prices(different from unity) in the MPSGE demand block, but reference > prices cannot be entered directly. How do I scale prices for the > calibration and scenario simulation stages,such that the price in period 2 > is P2= P1/(1+r)? I have attached my input file for completeness. I am skeptical about two-period models. I find that in such models the terminal adjustment rule can dominate the equilibrium response, so I much prefer to use multi-period models with 1, 5 or 10 year time periods. I have written a paper which provides a comprehensive introduction to the Ramsey model with endogenous interest rate and capital formation. In thinking about this student's question, however, I realized that our paper did not indicate how to build and analyze a model with an exogenous interest rate. The model I have written up here can be solved analytically. A suggested exercise: produce a closed-form solution for c(t) and compare it with the solution values returned in c.l(t). Thomas F. Rutherford University of Colorado August, 1998 $offtext set t Time period (year) / 1*60 /, td Time periods to display /10,20,30,40,50/; alias (t,tt); scalar r Interest rate (exogenous) /0.05/, delta Discount rate /0.02/, sigma Elasticity of interemporal substitution /0.5/, wealth Present value of income over the life cycle; parameter yr(t) Years elapsed to period t, pv(t) Discounted present-value price of a unit of consumption in period t, l(t) Labor supply in period t, alpha(t) Utility function discount factor; yr(t) = ord(t); pv(t) = ( 1/(1+r)**(ord(t)-1) ); * We use a constant elasticity intertemporal utility function: * U(t) = sum(t, alpha(t) * C(t)**rho / (1 - rho) )**(1/rho) * where rho = 1 - 1/sigma alpha(t) = ( 1/(1+delta) )**(ord(t)-1); * Generate an earnings profile which increases early in life * and decreases toward the end of life. l(t) = exp(-0.1 * yr(t)) * yr(t)**2; * Normalize labor supply to measure it as a fraction of maximum * lifetime labor supply: l(t) = l(t) / smax(tt, l(tt)); parameter path Lifecycle Values; path(t,"l") = l(t); path(t,"pv_l") = l(t)*pv(t); wealth = sum(t, l(t) * pv(t)); $ontext $model:lifecycle $sectors: c(t) ! consumption activity $commodities: p(t) ! output price p0 ! market for period 0 output (wealth) $consumers: ra ! representative agent * The consumption activities transform wealth * into consumption over the life cycle: $prod:c(t) o:p(t) q:1 i:p0 q:pv(t) * The demand function is CES over the lifecycle. * The reference price-quantity profile reflects the * fact that if prices decline with the discount factor * the consumption profile is constant: $demand:ra s:sigma e:p0 q:wealth d:p(t) q:1 p:alpha(t) $offtext $sysinclude mpsgeset lifecycle $include lifecycle.gen solve lifecycle using mcp; path(t,"c") = c.l(t); path(t,"assets") = sum(tt$(ord(tt) le ord(t)), pv(tt)*(l(tt)-c.l(tt))); $setglobal gp_xl td $setglobal gp_term gif $libinclude gnuplot path