Replication of Boar and Midrigan (2022)

If you use ‘AllStats’ one of the outputs is the lorenz curve, and if one of your ‘FnsToEvaluate’ is the ‘assets’ then the lorenz curve of assets is the cumulative shares. Set simoptions.npoints=1000 as the number of points used for the lorenz curve (default is 100).
Then 1-AllStats.assets.LorenzCurve(999) will give you the share of total assets held by the top 0.1%;

2 Likes

Based on the replication of Huggett (1996), I tried…

The ‘LorenzCurve’ command no longer exists. I need to go clean up the Huggett (1996) codes. [I don’t maintain replications, only examples, so the replications can end up outdated. That was before ‘AllStats’ was created, there used to be two or three commands, but it became clear that one command that just gives heaps of model output was much easier to use.]

2 Likes

Thanks. Using your command I got that the share of wealth in top 1% is about 9%, but the authors report 34%. This could be that the grid for assets is too narrow? From @aledinola post, I set maxa=1000 and the inequality results improve: share of top 1% is 18% and gini wealth is 0.8. But this is still not in line with the tables in the paper

1 Like

@javier_fernan I think maxa=1000 is not enough, I used maxa=1200 and maxl=1.5. Actually the policy a'(a,z_{nz}) still hits the upper bound of the asset grid at the very end…

Here are the results of my replication in general equilibrium: see first part of the file for information regarding number of grid points etc., second part for model moments and inequality statistics such as Gini coefficients, shares, etc. The column BM 2022 shows the original model moments in Boar and Midrigan (JME 2022).


NUMERICAL PARAMETERS
------------------------------------------------------------
Hours grid points                       101
Asset grid points                       501
Ability states                           12
Max assets                           1200.0
gridinterplayer                           1
ngridinterp                              30

GENERAL EQUILIBRIUM PARAMETERS AND CONDITIONS
------------------------------------------------------------
r                                  0.022169
iota                               0.334251
B                                  2.000691
G                                  0.144621
capitalmarket                      0.000029
iotacalib                         -0.000087
govdebtcalib                      -0.000116
govbudget                         -0.000054

AGGREGATE MOMENTS
------------------------------------------------------------
Capital                              8.1180
Labor                                0.9930
Hours worked                         0.7589
Output                               2.0005
Capital-to-output                    4.0581
Gov. spending-to-output              0.0723
Walras residual                    0.000014

Moment                              BM 2022   VFIToolkit
------------------------------------------------------------
WEALTH DISTRIBUTION
------------------------------------------------------------
Wealth / Income                      6.6000       6.4958
Gini (Wealth)                        0.8600       0.8165
Top 0.1%% Wealth Share               0.2200       0.0574
Top 1%% Wealth Share                 0.3400       0.1926
Top 5%% Wealth Share                 0.5900       0.4761
Top 10%% Wealth Share                0.7500       0.6644
Bottom 75%% Wealth Share             0.0600       0.0901
Bottom 50%% Wealth Share             0.0000       0.0032
Bottom 25%% Wealth Share             0.0000       0.0000

INCOME DISTRIBUTION
------------------------------------------------------------
Gini (Income)                        0.6500       0.6347
Top 0.1%% Income Share               0.1400       0.1128
Top 1%% Income Share                 0.2200       0.1953
Top 5%% Income Share                 0.4000       0.3733
Top 10%% Income Share                0.5100       0.4939
Bottom 75%% Income Share             0.2700       0.2798
Bottom 50%% Income Share             0.0800       0.1051
Bottom 25%% Income Share             0.0200       0.0268

As you can see, the toolkit does a good job in replicating the income inequality moments but misses the high concentration of wealth at the top.

Here is my code to compute the moments:

FnsToEvaluate2.income  = @(h,aprime,a,z,r,delta,alpha) f_income(h,aprime,a,z,r,delta,alpha);

function pretax_income = f_income(h,aprime,a,z,r,delta,alpha)
% f_income computes Pre-tax income

w = f_prices(r,alpha,delta);

pretax_income = w*h*z+r*a;

end %end function

%% ------------------------------------------------------------------------
% Construct model moments
% -------------------------------------------------------------------------
wealth_to_income = AllStats.A.Mean / AllStats.income.Mean;
gini_wealth      = AllStats.A.Gini;
gini_income      = AllStats.income.Gini;

% Wealth shares
wealth_top01 = 1 - AllStats.A.LorenzCurve(999);
wealth_top1  = 1 - AllStats.A.LorenzCurve(990);
wealth_top5  = 1 - AllStats.A.LorenzCurve(950);
wealth_top10 = 1 - AllStats.A.LorenzCurve(900);
wealth_bot75 =     AllStats.A.LorenzCurve(750);
wealth_bot50 =     AllStats.A.LorenzCurve(500);
wealth_bot25 =     AllStats.A.LorenzCurve(250);

% Income shares
income_top01 = 1 - AllStats.income.LorenzCurve(999);
income_top1  = 1 - AllStats.income.LorenzCurve(990);
income_top5  = 1 - AllStats.income.LorenzCurve(950);
income_top10 = 1 - AllStats.income.LorenzCurve(900);
income_bot75 =     AllStats.income.LorenzCurve(750);
income_bot50 =     AllStats.income.LorenzCurve(500);
income_bot25 =     AllStats.income.LorenzCurve(250);

1 Like

Thanks @aledinola My results for the interest rate and other parameters are different from yours. I realized now that I haven’t corrected FnsToEvaluate.TaxRevenue, maybe it’s that.

1 Like

With respect to @robertdkirkby code, I suggest these changes:

(1) Include consumption taxes in the function that computes total tax revenues
(2) Increase the upper bound for d_grid to 1.5
(3) Increase upper bound for a_grid to (at least) 1200
(4) Add the calculation of some inequality moments for income and wealth, see code posted above

(1) and (3) are the most important ones.