Life Cycle Consumption with Assets and Labor Supply Problem

Case Study Contents

Problem Statement

In the Life Cycle Consumption with Assets Problem, we extended the basic model to allow the consumer to borrow and save. The Life Cycle Consumption with Assets and Labor Supply Problem further extends the basic model to include labor decisions. In the previous models, the wage income in each period was a function of the number of periods and the current period. In this model, the consumer decides how much to work in each period as well as how much to consume in each period in order to maximize total utility. The utility function now is a function of both consumption and labor, where consuming more and working less increases the individual's utility. The objective of the life cycle consumption with assets and labor supply problem is to determine how much to work and how much to consume in each period so as to maximize total utility.

Mathematical Formulation

To formulate the life cycle consumption with assets and labor supply problem, we start from the formulation for the life cycle consumption with assets problem and modify it to include the labor supply decisions.

Set
P = set of periods = {1..\(n\)}

Parameters
\(w(p,n)\) = wage income function
\(r\) = interest rate
\(\beta\) = discount factor
\(a_{min}\) = minimum asset level

Decision Variables
\(c_p\) = consumption in period \(p\), \(\forall p \in P\)
\(a_p\) = assets available at the beginning of period \(p\), \(\forall p \in P\)
\(l_p\) = labor supply in period \(p\), \(\forall p \in P\)

Objective Function
Let \(u()\) be the utility function and let \(u(c_p, l_p)\) be the utility value associated with consuming \(c_p\) and working \(l_p\) in period \(p\). Utility in future periods is discounted by a factor of \(\beta\). Then, the objective function is to maximize the total discounted utility:

maximize \(\sum_{p \in P} \beta^{p-1} u(c_p, l_p)\)

Constraints
The life cycle consumption with assets and labor supply model again tracks the assets available at the beginning of each period but now the wage income depends on the labor supply. That is, the wealth at the beginning of period \(p+1\) equals the wealth at the beginning of period \(p\) minus consumption plus the wage income multiplied by the labor supply, all multiplied by the return \(R\) on savings (where \(R = 1 + r\)). There is one constraint for each period:

\(a_{p+1} \leq R(a_p - c_p + w(p,n)*l_p), \forall p \in P.\)

The model assumption is that initial wealth is zero (\(a_1 = 0\)) and that terminal wealth is non-negative (\(a_{n+1} \geq 0\)).

As in the life cycle model with assets, there is a minimum asset level, \(a_{min} \leq 0\). If \(a_{min} = 0\), then no borrowing is allowed. Otherwise, an individual can borrow as long as s/he can repay the amount before period \(n\). Therefore, there is one lower bound constraint for each period:

\(a_p \geq a_{min}\)

Also, the amount consumed in each period should be non-negative:

\(c_p \geq \epsilon, \forall p \in P.\)

Demo and Example

To solve your own life cycle consumption with assets and labor supply models, check out the Life Cycle Consumption with Assets and Labor Supply demo.

GAMS Model


$Title Life Cycle Consumption - with savings and elastic labor supply

Set p period /1*15/ ;

Scalar B discount factor /0.96/;

Scalar i interest rate /0.10/ ;

Scalar R gross interest rate ;

R = 1+i ;

Scalar amin minimum asset level /0/ ;

$macro u(c,l) (-exp(-c) - power(l,2))

Parameter w(p) wage income in period p ;

w(p) = ((15 - p.val)*p.val) / 15 ;

Parameter lbnds(p) lower bounds of consumption

/ 1*15 0.0001 / ;

Positive Variables
c(p) consumption expenditure in period p ,
l(p) labor supply at period p ;

Variable a(p) assets (or savings) at the beginning of period p ;

Variable Z objective ;

Equations
budget(p) lifetime budget constraint ,
obj objective function ;

budget(p) ..

a(p+1) - R*(a(p) + w(p)*l(p) - c(p)) =l= 0 ;

obj ..

Z =e= sum(p, power(B, p.val - 1)*u(c(p),l(p))) ;

Model LifeCycleConsumptionSavings /budget, obj/ ;

c.lo(p) = lbnds(p) ;

a.lo(p) = amin ;

a.fx('1') = 0 ;

Solve LifeCycleConsumptionSavings using nlp maximizing Z ;

Optimization Category (Linear Programing, Integer, MIP and etc.):