DINA
This package uses DataDeps.jl to download the US distributional national accounts (DINA) dataset from Gabriel Zucman's website. The data are downloaded in bulk (>1GB) and stored in .julia/datadeps/dina/
.
The dataset is described in Piketty, T, E. Saez and G. Zucman: Distributional National Accounts: Methods and Estimates for the United States, Quarterly Journal of Economics, 2018, 133 (2): 553-609.
The variables are described in the codebook at Gabriel Zucman's website.
Getting the micro data for a year
using DINA, DataFrames
tbl = get_dina(1980)
df80 = DataFrame(tbl)
first(df80, 5)
5×157 DataFrame
Row | id | dweght | dweghttaxu | female | ageprim | agesec | age | oldexm | oldexf | old | married | second | xkidspop | filer | fiinc | fninc | fainc | flinc | fkinc | ptinc | plinc | pkinc | diinc | princ | peinc | poinc | hweal | fiwag | fibus | firen | fiint | fidiv | fikgi | fnps | peninc | schcinc | scorinc | scorpinc | partinc | partpinc | rentinc | estinc | rylinc | othinc | intexm | flemp | flmil | flprl | fkhou | fkequ | fkfix | fkbus | fkpen | fkdeb | plcon | plbel | pkpen | pkbek | hwequ | hwfix | hwhou | hwbus | hwpen | hwdeb | flwag | flsup | waghealth | wagpen | flmil_s | flmil_p | fkhoumain | fkhourent | fkmor | fknmo | fkprk | proprestax | propbustax | fkbus_p | fkbus_s | fkequ_s | fkequ_c | rental | rentalhome | rentalmort | ownerhome | ownerhome_heter | ownermort | housing | partw | soleprop | scorw | equity | taxbond | taxbond_r | mmbondfund | muni | currency | miscw | nonmort | hwealnokg | hwfin | hwnfa | hwfix_homo | hwequ_kg | hwhou_homo | plpco | ploco | plpbe | plobe | plben | plpbl | plnin | pkpbk | pknin | ptnin | dicsh | inkindinc | colexp | govin | npinc | prisupen | invpen | peinck | peincl | prisupenprivate | prisupgov | educ | colexp2 | poinc2 | tax | ditax | ditaf | ditas | salestax | corptax | estatetax | govcontrib | ssuicontrib | othercontrib | ssinc_oa | ssinc_di | uiinc | ben | dicab | dicred | difoo | disup | divet | diwco | dicao | tanfinc | othben | medicare | medicaid | otherkin | pell | vethealth |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Int32 | Int32 | Int32 | Int8 | LabeledV… | LabeledV… | LabeledV… | LabeledV… | Int8 | Int8 | LabeledV… | Int8 | Int8 | Int8 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Int32 | Int32 | Int32 | Int32 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Int32 | Int32 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float32 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | |
1 | -3 | 17100000 | 17100000 | 0 | 45-64 | 45-64 | 45-64 | 65less | 0 | 0 | marr | 0 | 1 | 1 | 8.39449e5 | 4.57699e5 | 1.69481e6 | 3.86985e5 | 1.30782e6 | 1.65815e6 | 4.55507e5 | 1.20264e6 | 1.33923e6 | 1.6776e6 | 1.78744e6 | 1.47903e6 | 9.25748e6 | 3.93949e5 | -291750.0 | 134250 | 106400 | 114850 | 381750 | 4.57699e5 | 34300.0 | -20400.0 | -37300.0 | 0.0 | -234050.0 | 0.0 | 11200 | 130500 | -35650.0 | 28200.0 | 0.0 | 3.66393e5 | 0.0 | 20592.0 | 68179.8 | 7.6213e5 | 2.45488e5 | 32790.5 | 214786.0 | -15551.0 | -10301.7 | 78823.0 | -1.34821e5 | 29642.7 | 3.15058e6 | 2.41204e6 | 2.005e6 | 3.33327e5 | 1.54359e6 | -1.8705e5 | 3.59649e5 | 6744.64 | 1341.46 | 7446.44 | 0.0 | 0.0 | 23767.4 | 44412.4 | -14895.8 | -655.287 | 62679.8 | 18480.7 | 39613.2 | 32790.5 | 0.0 | 0.0 | 7.6213e5 | 1.34397e6 | 1.35527e6 | -11302.8 | 6.20192e5 | 6.49725e5 | -1.69075e5 | 1.82462e6 | 3.33327e5 | 0.0 | 0.0 | 2.51057e6 | 2.1419e6 | 2.1419e6 | 1.7436e5 | 0.0 | 0.0 | 95781.6 | -6672.96 | 8.61747e6 | 7.10621e6 | 2.33832e6 | 2.41204e6 | 3.36631e6 | 1.97546e6 | -9675.8 | -625.92 | 1.08323e5 | 142.608 | 1.08466e5 | 75942.1 | 4.53251e5 | 32381.0 | 1.20538e6 | 1.65863e6 | 1.06151e6 | 0.0 | 2.7772e5 | -22608.3 | 5397.92 | 11678.1 | 1.34821e5 | 1.32026e6 | 4.67185e5 | 17684.2 | 4504.92 | 896.093 | 1.99133e5 | 1.39995e6 | 557347.0 | 120810.0 | 95755.7 | 25054.3 | 41121.1 | 2.68029e5 | 63766.7 | 5526.53 | 2855.28 | 2671.25 | 0.0 | 0.0 | 182.969 | 2.7772e5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2 | -3 | 17100000 | 17100000 | 1 | 45-64 | 45-64 | 45-64 | 65less | 0 | 0 | marr | 1 | 1 | 1 | 5.10151e5 | 1.28401e5 | 1.34735e6 | 39526.2 | 1.30782e6 | 1.31385e6 | 1.11202e5 | 1.20264e6 | 9.94551e5 | 1.33259e6 | 1.43073e6 | 1.12016e6 | 9.25748e6 | 64651.5 | -291750.0 | 134250 | 106400 | 114850 | 381750 | 1.28401e5 | 34300.0 | -20400.0 | -37300.0 | 0.0 | -234050.0 | 0.0 | 11200 | 130500 | -35650.0 | 28200.0 | 0.0 | 37422.9 | 0.0 | 2103.24 | 68179.8 | 7.6213e5 | 2.45488e5 | 32790.5 | 214786.0 | -15551.0 | -7146.78 | 78823.0 | -1.34821e5 | 29642.7 | 3.15058e6 | 2.41204e6 | 2.005e6 | 3.33327e5 | 1.54359e6 | -1.8705e5 | 30351.5 | 7071.46 | 1341.46 | 4371.57 | 0.0 | 0.0 | 23767.4 | 44412.4 | -14895.8 | -655.287 | 62679.8 | 18480.7 | 39613.2 | 32790.5 | 0.0 | 0.0 | 7.6213e5 | 1.34397e6 | 1.35527e6 | -11302.8 | 6.20192e5 | 6.49725e5 | -1.69075e5 | 1.82462e6 | 3.33327e5 | 0.0 | 0.0 | 2.51057e6 | 2.1419e6 | 2.1419e6 | 1.7436e5 | 0.0 | 0.0 | 95781.6 | -6672.96 | 8.61747e6 | 7.10621e6 | 2.33832e6 | 2.41204e6 | 3.36631e6 | 1.97546e6 | -6529.96 | -616.826 | 1.08323e5 | 142.608 | 1.08466e5 | 75942.1 | 1.08938e5 | 32381.0 | 1.20538e6 | 1.31432e6 | 7.88308e5 | 0.0 | 2.06243e5 | -18765.2 | 4008.65 | -3178.91 | 1.34821e5 | 1.32271e6 | 1.08023e5 | 1806.24 | 3739.15 | 896.093 | 148113.0 | 1.06167e6 | 4.93066e5 | 70138.2 | 55592.5 | 14545.7 | 29534.7 | 2.68029e5 | 63766.7 | 3503.63 | 2775.21 | 728.418 | 0.0 | 0.0 | 182.969 | 2.06243e5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
3 | -2 | 17100000 | 17100000 | 0 | 45-64 | 45-64 | 45-64 | 65less | 0 | 0 | marr | 0 | 1 | 1 | 2.02375e6 | 1.46025e6 | 2.91813e6 | 5.16141e5 | 2.40199e6 | 2.90101e6 | 5.24128e5 | 2.37688e6 | 1.69033e6 | 2.87676e6 | 2.89687e6 | 1.70859e6 | 2.00869e7 | 439474.0 | 45275.0 | 481850 | 159000 | 334650 | 563500 | 1.46025e6 | 6550.0 | 35550.0 | 20625.0 | 20625.0 | -10900.0 | 0.0 | 85300 | 207300 | 158400.0 | 30850.0 | 3.52261e5 | 4.31548e5 | 57127.6 | 27464.6 | 2.43673e5 | 1.48564e6 | 5.72349e5 | 62864.5 | 46524.2 | -9058.06 | -2900.93 | 10887.9 | -29203.3 | 4094.58 | 6.15006e6 | 5.62362e6 | 7.28238e6 | 8.04892e5 | 3.34352e5 | -1.08425e5 | 432924.0 | -1375.53 | 1341.46 | 0.0 | 57127.6 | 0.0 | 48271.7 | 1.95401e5 | -8402.77 | -655.287 | 1.1512e5 | 67566.6 | 71630.0 | 52088.0 | 10776.5 | 15115.0 | 1.47052e6 | 5.95148e6 | 5.96279e6 | -11302.8 | 1.25962e6 | 1.3196e6 | -90449.0 | 7.18063e6 | 529492.0 | 2.754e5 | 71037.0 | 6.558e6 | 3.26417e6 | 3.26417e6 | 5.08051e5 | 1.64112e6 | 2450.3 | 207827.0 | -6672.96 | 2.04948e7 | 1.2108e7 | 8.08728e6 | 5.62362e6 | 6.01448e6 | 7.2224e6 | -2269.83 | -631.105 | 14982.5 | 0.0 | 14982.5 | 10503.8 | 5.24375e5 | 4478.72 | 2.37727e6 | 2.90164e6 | 1.3398e6 | 0.0 | 3.5053e5 | -48188.9 | 6813.07 | 8027.16 | 29203.3 | 2.36471e6 | 5.32155e5 | 20829.0 | 9602.11 | 896.093 | 2.51105e5 | 1.60854e6 | 1.49098e6 | 673903.0 | 5.83506e5 | 90396.5 | 69457.7 | 4.64103e5 | 1.38361e5 | 5963.21 | 2900.93 | 3062.28 | 0.0 | 0.0 | 0.0 | 3.5053e5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
4 | -2 | 17100000 | 17100000 | 1 | 45-64 | 45-64 | 45-64 | 65less | 0 | 0 | marr | 1 | 1 | 1 | 1.56655e6 | 1.00305e6 | 2.42111e6 | 31026.3 | 2.39008e6 | 2.40088e6 | 35907.1 | 2.36497e6 | 1.35991e6 | 2.38622e6 | 2.38589e6 | 1.36369e6 | 2.00869e7 | 30126.0 | -2575.0 | 481850 | 159000 | 334650 | 563500 | 1.00305e6 | 6550.0 | 3950.0 | 4375.0 | 4375.0 | -10900.0 | 0.0 | 85300 | 207300 | 158400.0 | 30850.0 | 3.52261e5 | 29375.3 | 0.0 | 1650.95 | 2.43673e5 | 1.47373e6 | 5.72349e5 | 62864.5 | 46524.2 | -9058.06 | -6007.17 | 10887.9 | -29203.3 | 4094.58 | 6.15006e6 | 5.62362e6 | 7.28238e6 | 8.04892e5 | 3.34352e5 | -1.08425e5 | 23576.0 | 5799.35 | 1095.5 | 3395.69 | 0.0 | 0.0 | 48271.7 | 1.95401e5 | -8402.77 | -655.287 | 1.14549e5 | 67566.6 | 71630.0 | 52088.0 | 10776.5 | 3206.21 | 1.47052e6 | 5.95148e6 | 5.96279e6 | -11302.8 | 1.25962e6 | 1.3196e6 | -90449.0 | 7.18063e6 | 529492.0 | 2.754e5 | 71037.0 | 6.558e6 | 3.26417e6 | 3.26417e6 | 5.08051e5 | 1.64112e6 | 2450.3 | 207827.0 | -6672.96 | 2.04948e7 | 1.2108e7 | 8.08728e6 | 5.62362e6 | 6.01448e6 | 7.2224e6 | -5415.49 | -591.672 | 14982.5 | 0.0 | 14982.5 | 10503.8 | 36114.6 | 4478.72 | 2.36536e6 | 2.40147e6 | 1.0779e6 | 0.0 | 2.8201e5 | -40369.2 | 5481.28 | -9306.64 | 29203.3 | 2.35929e6 | 26600.4 | 1417.82 | 8043.95 | 896.093 | 202195.0 | 1.28338e6 | 1.26365e6 | 464470.0 | 4.02167e5 | 62303.5 | 54256.9 | 4.64103e5 | 1.38361e5 | 3260.09 | 2611.48 | 648.611 | 0.0 | 0.0 | 0.0 | 2.8201e5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
5 | -1 | 19600000 | 19600000 | 0 | 20-44 | 20-44 | 20-44 | 65less | 0 | 0 | marr | 0 | 2 | 1 | -1.9092e6 | -2.7447e6 | 1.32443e6 | 1.50049e5 | 1.17438e6 | 1.31059e6 | 1.41425e5 | 1.16916e6 | 1.08601e6 | 1.31126e6 | 1.30543e6 | 1.08901e6 | 6.01366e6 | 135085.0 | -1.1806e6 | -1869835 | 99350 | 71300 | 835500 | -2.7447e6 | 2085.0 | -476600.0 | -142000.0 | 0.0 | -562000.0 | 0.0 | -187750 | -118400 | 4755.0 | -1.56844e6 | 88025.7 | 1.42064e5 | 0.0 | 7984.3 | 0.0 | 9.66477e5 | 1.98642e5 | 0.0 | 9262.73 | 0.0 | -10209.4 | 1585.32 | -5814.22 | 596.185 | 3.99534e6 | 1.95176e6 | 0.0 | 0.0 | 66567.8 | 0.0 | 133000.0 | 9064.29 | 1341.46 | 7446.44 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 56284.4 | 0.0 | 40808.1 | 0.0 | 0.0 | 0.0 | 9.66477e5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.17057e6 | 1.37119e6 | 1.37119e6 | 1.08245e5 | 4.10098e5 | 0.0 | 62219.7 | 0.0 | 3.18889e6 | 6.01366e6 | 0.0 | 1.95176e6 | 4.94512e6 | 0.0 | -9593.97 | -615.436 | 2176.9 | 4.60025 | 2181.5 | 1526.16 | 1.41981e5 | 650.742 | 1.16922e6 | 1.3112e6 | 860800.0 | 0.0 | 2.25209e5 | -17547.6 | 4377.29 | 2195.16 | 5814.22 | 1.16181e6 | 1.4362e5 | 6856.84 | 3496.52 | 1792.19 | 162547.0 | 1.02595e6 | 4.20461e5 | 6.39437 | 6.39437 | 0.0 | 32172.7 | 3.0195e5 | 41422.9 | 4101.48 | 2762.97 | 1338.51 | 0.0 | 0.0 | 5.90221 | 2.25216e5 | 6.34966 | 6.34966 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Getting the decile-year panel for selected variables
using DINA
import CSV
inc = :peinc
wgt = :dweght
dbt_var = [:ownermort, :rentalmort, :nonmort, :hwdeb]
var = [[:fiinc, :fninc, :ptinc, inc, :poinc, :ownerhome, :rentalhome]; dbt_var]
byvar = inc # compute deciles of `:peinc`
df = dina_quantile_panel(var, byvar, 10)
first(df, 5)
5×16 DataFrame
Row | group_id | age | fiinc | fninc | ptinc | peinc | poinc | ownerhome | rentalhome | ownermort | rentalmort | nonmort | hwdeb | dweght | year | three_groups |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Int64 | LabeledV… | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Float64 | Int64 | String | |
1 | 10 | 65plus | 18165.8 | 15120.0 | 42636.5 | 43357.6 | 34265.0 | 31786.0 | 25523.0 | -2184.5 | -1250.51 | -6364.02 | -9799.04 | 2.24867e11 | 1962 | top 10 |
2 | 2 | 65plus | 274.744 | 263.807 | 2166.42 | 2154.99 | 2737.49 | 2093.36 | 593.084 | -55.0185 | -41.5938 | -106.612 | -203.224 | 8.07001e11 | 1962 | bottom 50 |
3 | 1 | 65plus | 133.768 | 105.834 | 1060.57 | 1042.65 | 1544.63 | 1556.06 | 391.82 | -39.8206 | -131.738 | -67.9198 | -239.479 | 4.79738e11 | 1962 | bottom 50 |
4 | 9 | 65plus | 5879.92 | 5403.57 | 12249.2 | 13109.6 | 12747.3 | 20509.1 | 10104.4 | -2073.34 | -370.562 | -1045.59 | -3489.49 | 1.24064e11 | 1962 | middle 40 |
5 | 7 | 65plus | 4387.26 | 4023.96 | 8633.92 | 9015.28 | 9036.84 | 19437.4 | 7158.54 | -1244.69 | -202.224 | -623.637 | -2070.55 | 9.28289e10 | 1962 | middle 40 |
Some plots
using DataFrames, CairoMakie
using CairoMakie: AbstractPlotting.wong_colors
using LinearAlgebra: dot
agg_df = let
df1 = select(df,
:group_id,
:age, :year, wgt, var...
)
df2 = combine(
groupby(df1, :year),
([v, wgt] => ((x,w) -> dot(x,w)/sum(w)) => v for v in var)...
)
transform!(df2, ([d, inc] => ByRow(/) => string(d) * "2inc" for d in dbt_var)...)
end
let d = agg_df
fig = Figure()
# Define Layout, Labels, Titles
Label(fig[1,1], "Growth of Household-Debt-To-Income in the USA", tellwidth = false)
axs = [Axis(fig[2,1][1,i]) for i in 1:2]
box_attr = (color = :gray90, )
label_attr = (padding = (3,3,3,3), )
Box(fig[2,1][1,1, Top()]; box_attr...)
Label(fig[2,1][1,1, Top()], "relative to 1980"; label_attr...)
Box(fig[2,1][1,2, Top()]; box_attr...)
Label(fig[2,1][1,2, Top()], "relative to total debt in 1980"; label_attr...)
# Plot
i80 = findfirst(d.year .== 1980)
for (i,dbt) in enumerate(dbt_var)
var = string(dbt) * "2inc"
for (j, fractionof) in enumerate([var, :hwdeb2inc])
lines!(axs[j], d.year, d[!,var]/d[i80,fractionof], label = string(dbt), color = wong_colors[i])
end
end
# Legend
leg_attr = (orientation = :horizontal, tellheight = true, tellwidth = false)
leg = Legend(fig[3,1], axs[1]; leg_attr...)
save("fig_dbt.svg", fig) # hide
fig
nothing # hide
end