Model solution#

In this exercise, we will go through the model solution.

Warning

Remember that dhr.func is the sintax that calls the file with the functions see before.

Packages#

import numpy as np
import dhr_functions as dhr
from scipy.stats import norm

Parameters#

Define parameters of the model. The parameters are:

  • Group we are simulating

  • Discount factor

  • Total days in the month

  • Value for utility of leisure

  • Non pecuniary cost of working

group = "treatment"
beta  = 0.03
Tm    = 30
mu    = 4
P     = 3

Creating matrices#

First we will create the matrices that we will fill using the model solution. We will store the following:

  • Probability of working

  • Probability of leisure

  • Expected value of working

  • Expected value of leisure

  • ϵ Threshold

  • Value function

# Probability matrix
probs_w = np.empty((Tm,Tm)) 
probs_w[:] = np.nan         

probs_l = np.empty((Tm,Tm)) 
probs_l[:] = np.nan         

# Threshold matrix
eps_t = np.empty((Tm,Tm)) 
eps_t[:] = np.nan         

# Expected values matrix for work
eve_w  = np.empty((Tm,Tm)) 
eve_w[:] = np.nan           

# Expected values matrix for leisure
eve_l  = np.empty((Tm,Tm)) 
eve_l[:] = np.nan           

# Value function matrix
vf = np.empty((Tm,Tm)) 
vf[:] = np.nan  

Model solution loop#

The model solution is solved backward and follows these steps:

  1. Solve for the threshold that makes the value function for leisure bigger.

  2. Use the result from 1 to obtain the probability of leisure and work.

  3. Calculate the truncated distribution value for leisure

  4. Calculate the EV (expected values in the period ahead)

  5. Repeat until the end of the loop

This gives the value of having an specific level of education in the last period

for t in range(Tm,-1,-1):
    print()
    for d in range(0,Tm):
        if d >= t:
            pass
        else:            
            if t == 30:
                eps_t[t-1,d] = beta*(dhr.income_g(t, d+1)- dhr.income_g(t, d))- (mu-P)
            else:
                eps_t[t-1,d] = vf[t,d+1] - vf[t,d] - (mu-P)
            probs_l[t-1,d] = 1 - norm.cdf(eps_t[t-1,d])
            probs_w[t-1,d] = 1 - probs_l[t-1,d]
            
            if t == 30:
                eve_l[t-1,d] = 0 + dhr.exp_epsilon(eps_thres = eps_t[t-1,d])
                eve_w[t-1,d] = 0
            else:
                eve_l[t-1,d] = vf[t,d] + dhr.exp_epsilon(eps_thres = eps_t[t-1,d])
                eve_w[t-1,d] = vf[t,d+1]
            
            vf[t-1,d] = probs_l[t-1,d]*(dhr.VF(1, t, d, eve_l = eve_l[t-1,d])) + \
            probs_w[t-1,d]*(dhr.VF(0, t, d+1, eve_w = eve_w[t-1,d])) 

Let’s see the value function matrix

print(vf)
[[50.93618802         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [49.24231215 50.7366338          nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [47.55504031 49.03975976 50.53842516         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [45.88492987 47.34447042 48.8408411  50.34053375         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [44.25647039 45.65344784 47.14362665 48.64278463 50.14271603         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [42.71475105 43.97370229 45.44742013 46.94511925 48.44492953 49.94491499
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [41.30913338 42.32241379 43.7539467  45.24768455 46.74716116 48.24712039
  49.74711755         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [40.04658066 40.73550499 42.06779028 43.55088322 45.04944339 46.54932944
  48.04932133 49.54932084         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [38.88264083 39.26519925 40.40062109 41.85581258 43.35186637 44.85154884
  46.35152576 47.85152433 49.35152427         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [37.76761609 37.94273316 38.77912592 40.16542745 41.65467951 43.15379756
  44.65373208 46.15372792 47.65372771 49.15372771         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [36.67263343 36.74237612 37.25063593 38.48746035 39.95856927 41.45612898
  42.95594389 44.45593179 45.95593117 47.45593115 48.95593115         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [35.58516308 35.61084394 35.86245392 36.84074537 38.26540814 39.75869285
  41.25817154 42.75813653 44.25813466 45.75813459 47.25813459 48.75813459
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [34.50040067 34.5094579  34.61462655 35.26378993 36.58020474 38.0619069
  39.5604448  41.06034382 42.56033825 44.06033804 45.56033803 47.06033803
  48.56033803         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [33.4165936  33.41968487 33.45918145 33.8094634  34.91573095 36.36692805
  37.86284881 39.36255873 40.86254215 42.36254149 43.86254148 45.36254148
  46.86254148 48.36254148         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [32.33311684 32.33413267 32.34808168 32.50376585 33.30091689 34.67691526
  36.16562579 37.66479616 39.164747   40.66474496 42.16474492 43.66474492
  45.16474492 46.66474492 48.16474492         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [31.24975114 31.25006762 31.25477526 31.31493296 31.78538521 33.00022148
  34.46946032 35.96710001 37.46695479 38.9669485  40.46694836 41.96694836
  43.46694836 44.96694836 46.46694836 47.96694836         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [30.16642122 30.16651234 30.1680221  30.18934074 30.41432922 31.35725756
  32.77626627 34.26959875 35.76917164 37.26915226 38.7691518  40.2691518
  41.7691518  43.2691518  44.7691518  46.2691518  47.7691518          nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [29.08310204 29.08312537 29.0835759  29.09066443 29.18106399 29.78923079
  31.09127757 32.57266626 34.07141623 35.57135672 37.07135525 38.57135525
  40.07135525 41.57135525 43.07135525 44.57135525 46.07135525 47.57135525
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [27.99978578 27.99979076 27.99991133 28.00210803 28.03434073 28.35006678
  29.42808327 30.87738126 32.37374565 33.87356345 35.37355869 36.87355869
  38.37355869 39.87355869 41.37355869 42.87355869 44.37355869 45.87355869
  47.37355869         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [26.91647019 26.91647098 26.91649818 26.91711358 26.92761181 27.06101323
  27.81774172 29.18680867 30.67633331 32.17577758 33.67576213 35.17576213
  36.67576213 38.17576213 39.67576213 41.17576213 42.67576213 44.17576213
  45.67576213 47.17576213         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [25.83315471 25.83315478 25.83315939 25.83330636 25.83639854 25.88439349
  26.31287481 27.50937012 28.97970301 30.47801564 31.97796557 33.47796557
  34.97796557 36.47796557 37.97796557 39.47796557 40.97796557 42.47796557
  43.97796557 45.47796557 46.97796557         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [24.74983924 24.74983924 24.74983968 24.7498664  24.75065056 24.76580651
  24.95811824 25.86639263 27.28542182 28.78033126 30.28016902 31.78016902
  33.28016902 34.78016902 36.28016902 37.78016902 39.28016902 40.78016902
  42.28016902 43.78016902 45.28016902 46.78016902         nan         nan
          nan         nan         nan         nan         nan         nan]
 [23.66652376 23.66652376 23.66652376 23.66652655 23.66668018 23.67079516
  23.74070066 24.30212049 25.59808722 27.08289814 28.58237246 30.08237246
  31.58237246 33.08237246 34.58237246 36.08237246 37.58237246 39.08237246
  40.58237246 42.08237246 43.58237246 45.08237246 46.58237246         nan
          nan         nan         nan         nan         nan         nan]
 [22.58320829 22.58320829 22.58320829 22.58320829 22.58322588 22.58410033
  22.60506295 22.87453728 23.93056705 25.38627805 26.8845759  28.3845759
  29.8845759  31.3845759  32.8845759  34.3845759  35.8845759  37.3845759
  38.8845759  40.3845759  41.8845759  43.3845759  44.8845759  46.3845759
          nan         nan         nan         nan         nan         nan]
 [21.49989282 21.49989282 21.49989282 21.49989282 21.49989282 21.50000366
  21.50490913 21.60340081 22.31478686 23.69227889 25.18677934 26.68677934
  28.18677934 29.68677934 31.18677934 32.68677934 34.18677934 35.68677934
  37.18677934 38.68677934 40.18677934 41.68677934 43.18677934 44.68677934
  46.18677934         nan         nan         nan         nan         nan]
 [20.41657735 20.41657735 20.41657735 20.41657735 20.41657735 20.41657735
  20.41727559 20.44394505 20.80962699 22.00662916 23.48898279 24.98898279
  26.48898279 27.98898279 29.48898279 30.98898279 32.48898279 33.98898279
  35.48898279 36.98898279 38.48898279 39.98898279 41.48898279 42.98898279
  44.48898279 45.98898279         nan         nan         nan         nan]
 [19.33326188 19.33326188 19.33326188 19.33326188 19.33326188 19.33326188
  19.33326188 19.33764816 19.46880845 20.34661132 21.79118623 23.29118623
  24.79118623 26.29118623 27.79118623 29.29118623 30.79118623 32.29118623
  33.79118623 35.29118623 36.79118623 38.29118623 39.79118623 41.29118623
  42.79118623 44.29118623 45.79118623         nan         nan         nan]
 [18.24994641 18.24994641 18.24994641 18.24994641 18.24994641 18.24994641
  18.24994641 18.24994641 18.27702866 18.75730653 20.09338967 21.59338967
  23.09338967 24.59338967 26.09338967 27.59338967 29.09338967 30.59338967
  32.09338967 33.59338967 35.09338967 36.59338967 38.09338967 39.59338967
  41.09338967 42.59338967 44.09338967 45.59338967         nan         nan]
 [17.16663094 17.16663094 17.16663094 17.16663094 17.16663094 17.16663094
  17.16663094 17.16663094 17.16663094 17.31878286 18.39559311 19.89559311
  21.39559311 22.89559311 24.39559311 25.89559311 27.39559311 28.89559311
  30.39559311 31.89559311 33.39559311 34.89559311 36.39559311 37.89559311
  39.39559311 40.89559311 42.39559311 43.89559311 45.39559311         nan]
 [16.08331547 16.08331547 16.08331547 16.08331547 16.08331547 16.08331547
  16.08331547 16.08331547 16.08331547 16.08331547 16.69779656 18.19779656
  19.69779656 21.19779656 22.69779656 24.19779656 25.69779656 27.19779656
  28.69779656 30.19779656 31.69779656 33.19779656 34.69779656 36.19779656
  37.69779656 39.19779656 40.69779656 42.19779656 43.69779656 45.19779656]]

Now, I will run the above loop using the model solution function, which will create the same matrices

probs_w, probs_l, eps_t, eve_w, eve_l, vf = dhr.model_solution()
print(vf)
[[50.93618802         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [49.24231215 50.7366338          nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [47.55504031 49.03975976 50.53842516         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [45.88492987 47.34447042 48.8408411  50.34053375         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [44.25647039 45.65344784 47.14362665 48.64278463 50.14271603         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [42.71475105 43.97370229 45.44742013 46.94511925 48.44492953 49.94491499
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [41.30913338 42.32241379 43.7539467  45.24768455 46.74716116 48.24712039
  49.74711755         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [40.04658066 40.73550499 42.06779028 43.55088322 45.04944339 46.54932944
  48.04932133 49.54932084         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [38.88264083 39.26519925 40.40062109 41.85581258 43.35186637 44.85154884
  46.35152576 47.85152433 49.35152427         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [37.76761609 37.94273316 38.77912592 40.16542745 41.65467951 43.15379756
  44.65373208 46.15372792 47.65372771 49.15372771         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [36.67263343 36.74237612 37.25063593 38.48746035 39.95856927 41.45612898
  42.95594389 44.45593179 45.95593117 47.45593115 48.95593115         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [35.58516308 35.61084394 35.86245392 36.84074537 38.26540814 39.75869285
  41.25817154 42.75813653 44.25813466 45.75813459 47.25813459 48.75813459
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [34.50040067 34.5094579  34.61462655 35.26378993 36.58020474 38.0619069
  39.5604448  41.06034382 42.56033825 44.06033804 45.56033803 47.06033803
  48.56033803         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [33.4165936  33.41968487 33.45918145 33.8094634  34.91573095 36.36692805
  37.86284881 39.36255873 40.86254215 42.36254149 43.86254148 45.36254148
  46.86254148 48.36254148         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [32.33311684 32.33413267 32.34808168 32.50376585 33.30091689 34.67691526
  36.16562579 37.66479616 39.164747   40.66474496 42.16474492 43.66474492
  45.16474492 46.66474492 48.16474492         nan         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [31.24975114 31.25006762 31.25477526 31.31493296 31.78538521 33.00022148
  34.46946032 35.96710001 37.46695479 38.9669485  40.46694836 41.96694836
  43.46694836 44.96694836 46.46694836 47.96694836         nan         nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [30.16642122 30.16651234 30.1680221  30.18934074 30.41432922 31.35725756
  32.77626627 34.26959875 35.76917164 37.26915226 38.7691518  40.2691518
  41.7691518  43.2691518  44.7691518  46.2691518  47.7691518          nan
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [29.08310204 29.08312537 29.0835759  29.09066443 29.18106399 29.78923079
  31.09127757 32.57266626 34.07141623 35.57135672 37.07135525 38.57135525
  40.07135525 41.57135525 43.07135525 44.57135525 46.07135525 47.57135525
          nan         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [27.99978578 27.99979076 27.99991133 28.00210803 28.03434073 28.35006678
  29.42808327 30.87738126 32.37374565 33.87356345 35.37355869 36.87355869
  38.37355869 39.87355869 41.37355869 42.87355869 44.37355869 45.87355869
  47.37355869         nan         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [26.91647019 26.91647098 26.91649818 26.91711358 26.92761181 27.06101323
  27.81774172 29.18680867 30.67633331 32.17577758 33.67576213 35.17576213
  36.67576213 38.17576213 39.67576213 41.17576213 42.67576213 44.17576213
  45.67576213 47.17576213         nan         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [25.83315471 25.83315478 25.83315939 25.83330636 25.83639854 25.88439349
  26.31287481 27.50937012 28.97970301 30.47801564 31.97796557 33.47796557
  34.97796557 36.47796557 37.97796557 39.47796557 40.97796557 42.47796557
  43.97796557 45.47796557 46.97796557         nan         nan         nan
          nan         nan         nan         nan         nan         nan]
 [24.74983924 24.74983924 24.74983968 24.7498664  24.75065056 24.76580651
  24.95811824 25.86639263 27.28542182 28.78033126 30.28016902 31.78016902
  33.28016902 34.78016902 36.28016902 37.78016902 39.28016902 40.78016902
  42.28016902 43.78016902 45.28016902 46.78016902         nan         nan
          nan         nan         nan         nan         nan         nan]
 [23.66652376 23.66652376 23.66652376 23.66652655 23.66668018 23.67079516
  23.74070066 24.30212049 25.59808722 27.08289814 28.58237246 30.08237246
  31.58237246 33.08237246 34.58237246 36.08237246 37.58237246 39.08237246
  40.58237246 42.08237246 43.58237246 45.08237246 46.58237246         nan
          nan         nan         nan         nan         nan         nan]
 [22.58320829 22.58320829 22.58320829 22.58320829 22.58322588 22.58410033
  22.60506295 22.87453728 23.93056705 25.38627805 26.8845759  28.3845759
  29.8845759  31.3845759  32.8845759  34.3845759  35.8845759  37.3845759
  38.8845759  40.3845759  41.8845759  43.3845759  44.8845759  46.3845759
          nan         nan         nan         nan         nan         nan]
 [21.49989282 21.49989282 21.49989282 21.49989282 21.49989282 21.50000366
  21.50490913 21.60340081 22.31478686 23.69227889 25.18677934 26.68677934
  28.18677934 29.68677934 31.18677934 32.68677934 34.18677934 35.68677934
  37.18677934 38.68677934 40.18677934 41.68677934 43.18677934 44.68677934
  46.18677934         nan         nan         nan         nan         nan]
 [20.41657735 20.41657735 20.41657735 20.41657735 20.41657735 20.41657735
  20.41727559 20.44394505 20.80962699 22.00662916 23.48898279 24.98898279
  26.48898279 27.98898279 29.48898279 30.98898279 32.48898279 33.98898279
  35.48898279 36.98898279 38.48898279 39.98898279 41.48898279 42.98898279
  44.48898279 45.98898279         nan         nan         nan         nan]
 [19.33326188 19.33326188 19.33326188 19.33326188 19.33326188 19.33326188
  19.33326188 19.33764816 19.46880845 20.34661132 21.79118623 23.29118623
  24.79118623 26.29118623 27.79118623 29.29118623 30.79118623 32.29118623
  33.79118623 35.29118623 36.79118623 38.29118623 39.79118623 41.29118623
  42.79118623 44.29118623 45.79118623         nan         nan         nan]
 [18.24994641 18.24994641 18.24994641 18.24994641 18.24994641 18.24994641
  18.24994641 18.24994641 18.27702866 18.75730653 20.09338967 21.59338967
  23.09338967 24.59338967 26.09338967 27.59338967 29.09338967 30.59338967
  32.09338967 33.59338967 35.09338967 36.59338967 38.09338967 39.59338967
  41.09338967 42.59338967 44.09338967 45.59338967         nan         nan]
 [17.16663094 17.16663094 17.16663094 17.16663094 17.16663094 17.16663094
  17.16663094 17.16663094 17.16663094 17.31878286 18.39559311 19.89559311
  21.39559311 22.89559311 24.39559311 25.89559311 27.39559311 28.89559311
  30.39559311 31.89559311 33.39559311 34.89559311 36.39559311 37.89559311
  39.39559311 40.89559311 42.39559311 43.89559311 45.39559311         nan]
 [16.08331547 16.08331547 16.08331547 16.08331547 16.08331547 16.08331547
  16.08331547 16.08331547 16.08331547 16.08331547 16.69779656 18.19779656
  19.69779656 21.19779656 22.69779656 24.19779656 25.69779656 27.19779656
  28.69779656 30.19779656 31.69779656 33.19779656 34.69779656 36.19779656
  37.69779656 39.19779656 40.69779656 42.19779656 43.69779656 45.19779656]]