These are the Stata commands used to generate Tables 1 and 2 in the article "Controlling for Heterogeneity in Gravity Models of Trade and Integration" by I-Hui Cheng and Howard J. Wall for the January/February 2005, Vol. 87(1) issue of the Federal Reserve Bank of St. Louis Review. Variable descriptions and data can be found in the excel data sheet: Review-Cheng-Wall-gravity models.xls This used Intercooled Stata 6.0 /* THE FOLLOWING PROGRAM GENERATES THE NUMBERS FOR THE FIRST 3 COLUMNS OF TABLES 1 and 2 (these are the PCS, FE, and SFE columns). */ clear version 6.0 # delimit ; set memory 50m; set matsize 800; set more off; log using ling2log, replace; use hetdata1; /* hetdata1 is one of the sheets in the Excel data file */ generate lrgdpi=ln(rgdpi); generate lrgdpj=ln(rgdpj); generate lrexpij=ln(rexpij); generate ldist=ln(distance); generate lpopi=ln(popi); generate lpopj=ln(popj); /* Estimation without integration dummies--Table 1 */ /* PCS model--in Table 1, column PCS */ reg lrexpij lrgdpi lrgdpj lpopi lpopj ldist contig language d87 d92 d97, robust; /* FE model--in Table 1, column FE */ areg lrexpij lrgdpi lrgdpj lpopi lpopj d87 d92 d97, absorb(pair) robust; /* Fixed effects regression */ predict di, d; reg di ldist contig language, robust; /* SFE model--in Table 1, column SFE */ areg lrexpij lrgdpi lrgdpj lpopi lpopj d87 d92 d97, absorb(pairx) robust; /* Estimation with integration dummies--Table 2 */ /* PCS model--in Table 2, column PCS */ reg lrexpij lrgdpi lrgdpj lpopi lpopj ldist contig language d87 d92 d97 euro1 nabloc1 merc1 anzcer1 isrus1, robust; /* FE model--in Table 2, column FE */ areg lrexpij lrgdpi lrgdpj lpopi lpopj d87 d92 d97 euro1 nabloc1 merc1 anzcer1 isrus1, absorb(pair) robust; /* SFE model--in Table 2, column SFE */ areg lrexpij lrgdpi lrgdpj lpopi lpopj d87 d92 d97 euro1 nabloc1 merc1 anzcer1 isrus1, absorb(pairx) robust; /* THE FOLLOWING PROGRAM GENERATES THE NUMBERS FOR THE 4th COLUMN (DFE) OF TABLES 1 and 2 */ clear version 6.0 # delimit ; set memory 50m; set matsize 800; set more off; log using ling2log, replace; use hetdata2; /* hetdata2 is one of the sheets in the Excel data file */ /* Estimation of DFE model */ /* without integration dummies--in Table 1, column DFE */ reg dlexpij dlgdpi dlgdpj dlpopi dlpopj d87 d92 d97; /* with integration dummies--in Table 2, column DFE */ reg dlexpij dlgdpi dlgdpj dlpopi dlpopj d87 d92 d97 deuro dnabloc dmerc disrus danzcer; /* THE FOLLOWING PROGRAM GENERATES THE NUMBERS FOR THE 5th COLUMN (XFE) OF TABLES 1 and 2 */ clear version 6.0 # delimit ; set memory 50m; set matsize 800; set more off; log using ling2log, replace; use hetdata3; /* hetdata3 is one of the sheets in the Excel data file */ generate lrgdpi=ln(rgdpi); generate lrgdpj=ln(rgdpj); generate lrexpij=ln(rexpij); generate ldist=ln(distance); generate lpopi=ln(popi); generate lpopj=ln(popj); /* Estimation of XFE model */ /* Without integration dummies--Table 1, column XFE */ reg lrexpij lrgdpi lrgdpj lpopi lpopj d87 d92 d97 dx1-dx29 dm1-dm29, robust; /* With integration dummies--Table 2, column XFE */ reg lrexpij lrgdpi lrgdpj lpopi lpopj d87 d92 d97 dx1-dx29 dm1-dm29 euro1 nabloc1 merc1 anzcer1 isrus1, robust;