Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Income process overhaul: Truncated lognormal #121

Closed
mnwhite opened this issue Jul 16, 2017 · 2 comments
Closed

Income process overhaul: Truncated lognormal #121

mnwhite opened this issue Jul 16, 2017 · 2 comments

Comments

@mnwhite
Copy link
Contributor

mnwhite commented Jul 16, 2017

Our default income process should be overhauled to use truncated lognormal distributions with a point mass. Our calculation of the natural borrowing constraint depends on the "worst income event" in the discrete approximation IncomeDstn. If the true distribution really is (joint) lognormal with a point mass for unemployment, then the true "worst income event" is arbitrarily close to a permanent income shock of 0, so the natural borrowing constraint is always 0. In specifications where the artificial borrowing constraint does not exist (or does not bind), we are effectively solving the wrong problem.

In order to have a nonzero natural borrowing constraint, we must lower truncate both the permanent and transitory shock distributions. The most straightforward, transparent way to do this is to set two new parameters, PermShkLwrBnd and TranShkLwrBnd. approxLognormal must be adjusted to accept a lower (and upper, while we're at it) bound as an optional input; it will return a discrete approximation to the lognormal conditional on being above (below) the chosen bounds. approxMeanOneLognormal will need one more line to re-normalize, as the discretization will have a mean slightly different from 1 when there is truncation. When no lower bound is specified, we might want approxLognormal to add a zero probability point at 0.0 (as long as sigma>0).

I wrote a long-ish email in May 2016 about this; available on request.

@llorracc
Copy link
Collaborator

Although the upper bound is much less important, whenever this is tackled the person doing it should also truncate at the upper bound, with the natural variable names being PermShkUprBnd and TranShkUprBnd.

The right way to do this is to augment the grids produced by the approximate lognormal tool with very-tiny-but-not-quite-zero pointmasses at exactly each of the bounds. This will require a very-tiny-but-not-quite-zero adjustment to the values of the discretized points so that the dot product remains exactly 1.

Seems like something that probably people have done somewhere before ...

@MridulS
Copy link
Member

MridulS commented Aug 24, 2020

further discussions in #804

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants