The Labor-Supply Elasticity and Borrowing Constraints: Why Estimates are Biased

by David Domeij and Martin Floden


The intertemporal labor-supply elasticity is a central element in many macroeconomic models. We argue that assumptions underlying previous econometric estimates of the labor-supply elasticity are inconsistent with incomplete-markets economies. In particular, if the econometrician ignores borrowing constraints, the elasticity will be biased downwards. We assess this bias using real-world data from the Panel Study of Income Dynamics and artificial data generated by a model in which we know the true elasticity. When applying standard econometric methods on the artificial data, we estimate an elasticity that is almost 50 percent lower than the true elasticity. We find evidence of a similar bias when using real-world data. 

JEL classification: C50; E24; J22
Keywords: Frisch labor-supply elasticity; Liquidity constraint; Panel Study of Income Dynamics; Monte Carlo experiment

Download paper: August 2004 (PDF)
A previous version of the paper is available as SSE/EFI Working Paper No. 480 (November 2001)

Artificial data

The matlab code generating the artificial data for the baseline specification and the code running the regressions on the artificial data is availble in  The code is unfortunately rather messy, but the current settings should produce the output for the first four columns in our Table 2. The zip file contains the following files:

main.m This is the main matlab file.
init.m Called by main: sets parameter values etc
slv_foc.m Called by main: solves the household's decision rules for consumption and hours
simulate.m Called by main: simulates the economy
report.m Called by main: reports som implications for the simulated economy
regress_artificial.m Called by main: runs regressions on the artificial data to estimate the elasticity
regress.m Called by regress_artificial
twosls.m Called by regress


PSID data

We use SAS to extract raw data from the PSID, and to build text files that can be read by Matlab. The Matlab code then selects the sample and runs the regressions. The raw PSID data is available at the PSID web page. It is clear from our SAS files which PSID files are used.

Contents of (0.6 Mb): SAS code to read raw 1983-1985 PSID data.
data84.asc Output from SAS code to read raw 1988-1990 PSID data.
data89.asc Output from SAS code to read raw 1993-1995 PSID data.
data84.asc Output from
regress8395.m Matlab code to process dataXX.asc and to run regressions
cpi.txt U.S. Consumer Price Index
Contents of (0.9 Mb): SAS code to read raw 1970-1981 PSID data.
data70s_XXX.asc Output from (~ one file per variable)
regress70s.m Matlab code to process data70s_XXX.asc and to run regressions
cpi.txt U.S. Consumer Price Index