clear use "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/Mineral Production, Prices, Fixed Effects 1900-2015.dta" * * * main variables relative to iron * gen irontotalrevenues = ironrealprice*ironworldproduction gen ironWIPO19002010=243008 gen ironUSpatents19762010=308658 * gen lnrelativerealprice = ln(realprice/ironrealprice) gen lnrelativeworldprod = ln(worldprod/ironworldproduction) gen lnrelativetotalrev = ln(totalrevenues/irontotalrevenues) gen lnrelativecrustalabund = ln(crustalabundancekgkg/0.0564) * * Chemical properties * gen lnyearsknown = ln(2015-discoveryyear) gen lnmelt = ln(melt_K) gen lnboil = ln(boil_K) gen lnelectronegtivity = ln(electronegativity) * * Economic variables * gen lnhhiprodcountries = ln(hhiprodcountries) gen lnhhidemand = ln(hhidemand) * * rare earth dummy * drop rareearth gen rareearth = 0 replace rareearth = 1 if (atomicnumber >=57 & atomicnumber <=71) | atomicnumber == 21 | atomicnumber == 39 * * This clears the rare earth and platinum group aggregate abundances to exclude them from the regressions * replace lnrelativecrustalabund =. if mineral=="rareearth" replace lnrelativecrustalabund =. if mineral=="platinumgroup" * * * year effects * tab year, gen(yr) * * Set Panel and Time Series for Fisher panel unit root tests * tsset panelid year * * =============================== * * Real Price Relative Regressions * * * Relative Regressions + Year Effects * reg lnrelativerealprice lnrelativecrustalabund rareearth yr1-yr116, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) eststo p01 xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) * reg lnrelativerealprice lnrelativecrustalabund rareearth yr1-yr116 if year<=1949, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo p02 * reg lnrelativerealprice lnrelativecrustalabund rareearth yr1-yr116 if year<=1969 & year>=1950, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo p03 * reg lnrelativerealprice lnrelativecrustalabund rareearth yr1-yr116 if year<=1994 & year>=1970, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo p04 * reg lnrelativerealprice lnrelativecrustalabund rareearth yr1-yr116 if year>=1995, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo p05 * * Relative Regressions Year Effects + Robustness Tests * reg lnrelativerealprice lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity rareearth yr1-yr116, cluster(mineral) test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo p11 * reg lnrelativerealprice lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity lnhhidemand lnhhiprodcountries rareearth yr1-yr116, cluster(mineral) test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) test lnhhidemand lnhhiprodcountries estadd scalar Fhhi = r(F) estadd scalar phhi = r(p) xtunitroot fisher lnrelativerealprice if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo p12 * * Write to files you can use in LaTeX * esttab p01 p02 p03 p04 p05 using /// "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/regression results.tex", /// replace nomtitles se star(* 0.1 ** 0.05 *** 0.01) label scalars(N N_clust r2_a Fyr pyr Pur Ppur) * * *. World Production Regressions * * Relative Regressions + Year Effects * reg lnrelativeworldprod lnrelativecrustalabund yr1-yr116, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q01 * reg lnrelativeworldprod lnrelativecrustalabund yr1-yr116 if year<=1949, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q02 * reg lnrelativeworldprod lnrelativecrustalabund yr1-yr116 if year<=1969 & year>=1950, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q03 * reg lnrelativeworldprod lnrelativecrustalabund yr1-yr116 if year<=1994 & year>=1970, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q04 * reg lnrelativeworldprod lnrelativecrustalabund yr1-yr116 if year>=1995, cluster(mineral) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q05 * * Relative Regressions Year Effects + Chemical FE + Economic effects * reg lnrelativeworldprod lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity yr1-yr116, cluster(mineral) test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q11 * reg lnrelativeworldprod lnrelativecrustalabund lnhhiprodcountries lnhhidemand lnyearsknown lnmelt lnboil lnelectronegtivity yr1-yr116, cluster(mineral) test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) testparm yr* estadd scalar Fyr = r(F) estadd scalar pyr = r(p) test lnhhidemand lnhhiprodcountries estadd scalar Fhhi = r(F) estadd scalar phhi = r(p) xtunitroot fisher lnrelativeworldprod if e(sample), dfuller lag(1) estadd scalar Pur = r(P) estadd scalar Ppur = r(p_P) eststo q12 * * Write to files you can use in LaTeX * esttab q01 q02 q03 q04 q05 using /// "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/regression results.tex", /// append nomtitles se star(* 0.1 ** 0.05 *** 0.01) label scalars(N N_clust r2_a Fyr pyr Pur Ppur) * collapse (mean) lnhhiprodcountries lnhhidemand rareearth if atomicnumber!=., by(mineral) * merge 1:1 mineral using "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/elements chemical characteristics.dta" * pause * * Create relative variables for patents but for the same samples as used for production and prices * iron patents: 1800-99: 15819, 1800-1949: 115204, 1800-69: 487635, 1800-94: 487635, 1800-2015: 1526830 * drop lnRworldpatents* * gen lnRworldpatents19002015 = ln((worldpatents18002015-worldpatents18001899)/(1526830-15819)) gen lnRworldpatents19952015 = ln((worldpatents18002015-worldpatents18001994)/(1526830-487635)) gen lnRworldpatents19701994 = ln((worldpatents18001994-worldpatents18001969)/(487635-176355)) gen lnRworldpatents19501969 = ln((worldpatents18001969-worldpatents18001949)/(176355-115204)) gen lnRworldpatents19001949 = ln((worldpatents18001949-worldpatents18001899)/(115204-15819)) gen lnRworldpatentsmining = ln(worldpatentsmining/115204) * drop lnRtotrev* * gen lnRtotrev19002015 = ln(tr19002015/3.0e+10) gen lnRtotrev19001949 = ln(tr19001949/4.66e+09) gen lnRtotrev19501969 = ln(tr19501969/2.15e+10) gen lnRtotrev19701994 = ln(tr19701994/4.67e+10) gen lnRtotrev19952015 = ln(tr19952015/7.38e+10) * * Create RHS variables * gen lnrelativecrustalabund = ln(crustalabundancekgkg/0.0564) * gen lnyearsknown = ln(2015-discoveryyear) gen lnmelt = ln(melt_K) gen lnboil = ln(boil_K) gen lnelectronegtivity = ln(electronegativity) * * Realtive Patent Regressions (Table 3) * reg lnRworldpatents19002015 lnrelativecrustalabund rareearth, robust eststo a01 * reg lnRworldpatents19001949 lnrelativecrustalabund rareearth, robust eststo a02 * reg lnRworldpatents19501969 lnrelativecrustalabund rareearth, robust eststo a03 * reg lnRworldpatents19701994 lnrelativecrustalabund rareearth, robust eststo a04 * reg lnRworldpatents19952015 lnrelativecrustalabund rareearth, robust eststo a05 * reg lnRworldpatentsmining lnrelativecrustalabund rareearth, robust eststo a06 * esttab a01 a02 a03 a04 a05 a06 using /// "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/regression results.tex", /// append nomtitles se star(* 0.1 ** 0.05 *** 0.01) label scalars(N r2_a) * * Robustness Tests: Table 5 * * * All patents robustness tests * reg lnRworldpatents19002015 lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity rareearth, robust test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) eststo a11 * reg lnRworldpatents19002015 lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity lnhhiprodcountries lnhhidemand rareearth, robust test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) test lnhhidemand lnhhiprodcountries estadd scalar Fhhi = r(F) estadd scalar phhi = r(p) eststo a12 * * mining patents robustness tests * reg lnRworldpatentsmining lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity rareearth, robust test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) eststo a21 * reg lnRworldpatentsmining lnrelativecrustalabund lnyearsknown lnmelt lnboil lnelectronegtivity lnhhiprodcountries lnhhidemand rareearth, robust test lnyearsknown lnmelt lnboil lnelectronegtivity estadd scalar Ffe = r(F) estadd scalar pfe = r(p) test lnhhidemand lnhhiprodcountries estadd scalar Fhhi = r(F) estadd scalar phhi = r(p) eststo a22 * esttab q11 q12 p11 p12 a11 a12 a21 a22 using /// "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/regression results.tex", /// append nomtitles se star(* 0.1 ** 0.05 *** 0.01) label scalars(N N_clust r2_a Fyr pyr Ffe pfe Fhhi phhi Pur Ppur) * * Obtain an estimate of epsilon from the patents to total revenues relatiionship (using abundance as an iv) * ivregress gmm lnRworldpatents19002015 (lnRtotrev19002015 = lnrelativecrustalabund) eststo a06 * ivregress gmm lnRworldpatents19001949 (lnRtotrev19001949 = lnrelativecrustalabund) eststo a07 * ivregress gmm lnRworldpatents19501969 (lnRtotrev19501969 = lnrelativecrustalabund) eststo a08 * ivregress gmm lnRworldpatents19701994 (lnRtotrev19701994 = lnrelativecrustalabund) eststo a09 * ivregress gmm lnRworldpatents19952015 (lnRtotrev19952015 = lnrelativecrustalabund) eststo a10 * ivregress gmm lnRworldpatentsmining (lnRtotrev19002015 = lnrelativecrustalabund) eststo a13 * esttab a06 a07 a08 a09 a10 a13 using /// "/Users/johnboyce/Documents/Paper - RELATIVE PRICES/regression results.tex", /// append nomtitles se star(* 0.1 ** 0.05 *** 0.01) label scalars(N r2_a)