Forums › Questions on specific programs › Computing distribution
Tagged: Distribution, Mortality
This topic contains 2 replies, has 2 voices, and was last updated by Umesh Ghimire May 16, 2020 at 7:19 am.

AuthorPosts

May 15, 2020 at 8:07 pm #1828
Umesh Ghimire
UserHello!
In models with mortality/survival probability (for example, program: prog10_2 ), while computing distribution in the get_distribution() subroutine, should we not account for mortality in the distribution (the declining cohort share of the successive ages)? For example, I have seen some papers do the following:
phi(ij, ial, ip, is_p) = phi(ij, ial, ip, is_p) +sp(ij1)* pi(is, is_p)*varphi*phi(ij1, ia, ip, is)/(1d0+n_p),
where sp(ij) is the survival probability to age ij and n_p is the population growth rateinstead of what is written in prog10_2’s subroutine for distribution:
phi(ij, ial, ip, is_p) = phi(ij, ial, ip, is_p) + pi(is, is_p)*varphi*phi(ij1, ia, ip, is).Or am I missing something?
Thanks for your response!
UmeshMay 15, 2020 at 11:21 pm #1829
Maurice Hofmann
UserHi Umesh,
thank you for this great question. I think the right way to compute the distribution over the statespace always depends on what you are actually interested in.
In chapter 10 the focus is on the decisions of households over the lifecycle and we are particularly interested in cohort averages. Since survival probabilities are not endogenous in these models (i.e. no feedback of the household’s decisions on survival probabilities), there is no need to account for them in get_distribution(). Here, survival probabilities are only scaling factors that affect the relative cohort sizes, but have no impact on the composition of cohorts.
To verify that this is right, you could alternatively account for the survival probabilities in get_distribution() and then compute the cohort average in aggregation() by dividing through the cohort size at each age (see below). You would obtain exactly the same solution.
! determines the invariant distribution of households subroutine get_distribution() ... phi(ij, ial, ip, is_p) = phi(ij, ial, ip, is_p) + & psi(ij)*pi(is, is_p)*varphi*phi(ij1, ia, ip, is) phi(ij, iar, ip, is_p) = phi(ij, iar, ip, is_p) + & psi(ij)*pi(is, is_p)*(1d0varphi)*phi(ij1, ia, ip, is) ... end subroutine ! subroutine for calculating quantities subroutine aggregation() ... ! compute cohort size m_coh(:) = 0d0 do ij = 1, JJ do ia = 0, NA do ip = 1, NP do is = 1, NS m_coh(ij) = m_coh(ij) + phi(ij, ia, ip, is) enddo enddo enddo enddo ... do ij = 1, JJ do ia = 0, NA do ip = 1, NP do is = 1, NS c_coh(ij) = c_coh(ij) + c(ij, ia, ip, is)* & phi(ij, ia, ip, is)/m_coh(ij) y_coh(ij) = y_coh(ij) + eff(ij)*theta(ip)*eta(is)* & l(ij, ia, ip, is)* & phi(ij, ia, ip, is)/m_coh(ij) l_coh(ij) = l_coh(ij) + l(ij, ia, ip, is)* & phi(ij, ia, ip, is)/m_coh(ij) h_coh(ij) = h_coh(ij) + eff(ij)*theta(ip)*eta(is)* & phi(ij, ia, ip, is)/m_coh(ij) a_coh(ij) = a_coh(ij) + a(ia)*phi(ij, ia, ip, is)/m_coh(ij) v_coh(ij) = v_coh(ij) + V(ij, ia, ip, is)* & phi(ij, ia, ip, is)/m_coh(ij) enddo enddo enddo enddo ... end subroutine
In an OLG setup, the story is slightly different. There, we need to compute macroeconomic aggregates, which are normalized to the youngest cohort alive of the respective period. In this case, it could actually be more convenient to account directly for the survival probabilities (and population growth) in get_distribution().
But even then, you could set up the distribution as in chapter 10 and obtain the aggregated quantities by a weighted sum over the cohort averages. The weights would be the size of the respective cohorts relative to the size of the youngest cohort alive in the period. Again, this would only work in a setup where mortality (and population growth) are not endogenous.
 This reply was modified 1 year, 8 months ago by Maurice Hofmann.
May 16, 2020 at 7:19 am #1831
Umesh Ghimire
UserThanks Maurice!

AuthorPosts
You must be logged in to reply to this topic.