* This do-file creates some of the graphs used in Lecture 3 of Principles of Empirical Analysis * Matti Sarvimäki, January 2021 clear all set seed 12346 global home "/Users/sarvimm1/Dropbox (Aalto)/teaching/Principles_of_Empirical_Analysis/matti" global data "$home/data" global output "$home/graphs" * --- Piketty, Saez, Zucman data * --- from http://gabriel-zucman.eu/usdina/ * ------------------------------------------ * reading in the data import excel using "$data/PSZ2018MainData", sheet("DataFS40") cellrange(A4:Z131) firstrow clear * rename variables rename A percentile rename pretaxincome pre46 rename M pre62 rename N pre80 rename O pre14 rename posttax post46 rename posttaxincome post62 rename V post80 rename W post14 * scale income into 1,000s of dollars foreach var in pre46 pre62 pre80 pre14 post46 post62 post80 post14{ replace `var'=`var'/1000 } * calculate 90/10 ratios foreach yy in 46 80 14{ sum pre`yy' if percentile==90 local p90=r(mean) sum pre`yy' if percentile==10 local p10=r(mean) di "90/10 ratio in `yy' = " `p90'/`p10' } * draw CDFs local opt "xlab(0(20)180) xline(0(10)180, lw(thin) lc(gs8)) ylab(0(5)100, grid glw(thin)) ytitle("Percentile", size(small) place(1)) xtitle("Annual income (1,000's of 2014 dollars)", size(small) place(1)) yline(100, lc(black)) xsize(20) ysize(20) scale(.8)" local scatter_opt "c(l) ms(none) lwidth(thick)" twoway (scatter percentile pre46, `scatter_opt') (scatter percentile pre14, ms(none)) if percentile<=95, `opt' legend(col(4) lab(1 "1946") order(1) pos(5) ring(0) col(1)) graph export "$output/cdf_PSZ1.pdf", replace twoway (scatter percentile pre46, `scatter_opt') (scatter percentile pre80, `scatter_opt') (scatter percentile pre14, ms(none)) if percentile<=95, `opt' legend(col(4) lab(1 "1946") lab(2 "1980") order(1 2) pos(5) ring(0) col(1)) graph export "$output/cdf_PSZ2.pdf", replace twoway (scatter percentile pre46, `scatter_opt') (scatter percentile pre80, `scatter_opt') (scatter percentile pre14, `scatter_opt') if percentile<=95, `opt' legend(col(4) lab(1 "1946") lab(2 "1980") lab(3 "2014") pos(5) ring(0) col(1)) graph export "$output/cdf_PSZ3.pdf", replace local opt "xlab(0(2500)20000, grid glw(thin)) ylab(0(5)100, grid glw(thin)) ytitle("Percentile", size(small) place(1)) xtitle("Annual income (1,000's of 2014 dollars)", size(small) place(1)) yline(100, lc(black)) xsize(20) ysize(20) scale(.8)" local scatter_opt "c(l) ms(none) lwidth(thick)" twoway (scatter percentile pre46, `scatter_opt') (scatter percentile pre80, `scatter_opt') (scatter percentile pre14, `scatter_opt'), `opt' legend(col(4) lab(1 "1946") lab(2 "1980") lab(3 "2014") pos(5) ring(0) col(1)) graph export "$output/cdf_PSZ4.pdf", replace * calculate and draw growth rates gen gr_4680_lev=pre80-pre46 gen gr_4680=(pre80/pre46) gen gr_4680_sc=(gr_4680^(1/34)-1)*100 gen gr_8014_lev=pre14-pre80 gen gr_8014=(pre14/pre80) gen gr_8014_sc=(gr_8014^(1/34)-1)*100 bro per pre* gr* local scatter_opt "ms(none) c(l) lw(thick)" local opt "xtitle("Percentile", size(small) place(1)) xlab(10(5)95, grid glw(thin)) legend(lab(1 "1946-1980") lab(2 "1980-2014") pos(5) ring(0) col(1)) xsize(20) ysize(20) scale(.8)" twoway (scatter gr_4680_lev percentile,`scatter_opt') (scatter gr_8014_lev percentile, `scatter_opt') if percentile>=10 & percentile<=95, `opt' ytitle("Income growth (1,000s of 2014 dollars)", size(small) place(1)) ylab(0(10)80, grid glw(thin)) graph export "$output/gr_PSZ1.pdf", replace twoway (scatter gr_4680 percentile,`scatter_opt') (scatter gr_8014 percentile, `scatter_opt') if percentile>=10 & percentile<=95, `opt' ytitle("Relative income growth", size(small) place(1)) ylab(.8(.1)2.1, grid glw(thin)) graph export "$output/gr_PSZ2.pdf", replace twoway (scatter gr_4680_sc percentile,`scatter_opt') (scatter gr_8014_sc percentile, `scatter_opt') if percentile>=10 & percentile<=95, `opt' ytitle("Annualized growth rate (percent)", size(small) place(1)) ylab(-0.5(.25)2, grid glw(thin)) graph export "$output/gr_PSZ3.pdf", replace local opt "xtitle("Percentile", size(small) place(1)) xlab(95(.5)100, grid glw(thin)) legend(lab(1 "1946-1980") lab(2 "1980-2014") pos(11) ring(0) col(1)) xsize(20) ysize(20) scale(.8)" twoway (scatter gr_4680_sc percentile,`scatter_opt') (scatter gr_8014_sc percentile, `scatter_opt') if percentile>=10 & percentile>=95, `opt' ytitle("Annualized growth rate (percent)", size(small) place(1)) ylab(1(.5)5, grid glw(thin)) graph export "$output/gr_PSZ4.pdf", replace