ek_tobit estimates gravity models in their additive form by conducting a censored regression.

ek_tobit(
  dependent_variable,
  distance,
  additional_regressors = NULL,
  code_destination,
  robust = FALSE,
  data,
  ...
)

Arguments

dependent_variable

(Type: character) name of the dependent variable. This variable is logged and then used as the dependent variable in the estimation. As the log of zero is not defined, all flows equal to zero are replaced by a left open interval with the logged minimum trade flow of the respective importing country as right border.

distance

(Type: character) name of the distance variable that should be taken as the key independent variable in the estimation. The distance is logged automatically when the function is executed.

additional_regressors

(Type: character) names of the additional regressors to include in the model (e.g. a dummy variable to indicate contiguity). Unilateral metric variables such as GDP should be inserted via the arguments income_origin and income_destination.

Write this argument as c(contiguity, common currency, ...). By default this is set to NULL.

code_destination

(Type: character) country of destination variable (e.g. country ISO-3 codes). The variables are grouped using this parameter.

robust

(Type: logical) whether robust fitting should be used. By default this is set to FALSE.

data

(Type: data.frame) the dataset to be used.

...

Additional arguments to be passed to the function.

Value

The function returns the summary of the estimated gravity model as a survreg-object.

Details

ek_tobit represents the Eaton and Kortum (2001) Tobit model where each country is assigned specific censoring bounds.

When taking the log of the gravity equation flows equal to zero constitute a problem as their log is not defined. Therefore, in ek_tobit all values of the dependent variable are redefined as intervals.

The positive observations have both interval bounds equal to their original value.

For zero flows the interval is left open. The right border of the interval is set to the log of the minimum positive trade flow of the respective importing country.

The defined data object of class Surv is then inserted in survreg for the parameter estimation.

ek_tobit is designed to be consistent with the Stata code provided at Gravity Equations: Workhorse, Toolkit, and Cookbook when choosing robust estimation.

For other Tobit functions, see tobit for a simple Tobit model where number 1 is added to all observations and et_tobit for the Eaton and Tamura (1995) threshold Tobit model where instead of simply adding number 1 to the data the threshold is estimated.

The function is designed for cross-sectional data, but can be extended to panel data using the survreg function.

References

For more information on gravity models, theoretical foundations and estimation methods in general see

Anderson JE (1979). “A Theoretical Foundation for the Gravity Equation.” The American Economic Review, 69(1), 106--116. ISSN 00028282.

Anderson JE, van Wincoop E (2001). “Gravity with Gravitas: A Solution to the Border Puzzle.” Working Paper 8079, National Bureau of Economic Research. doi:10.3386/w8079 .

Anderson JE (2010). “The Gravity Model.” Working Paper 16576, National Bureau of Economic Research. doi:10.3386/w16576 .

Baier SL, Bergstrand JH (2009). “Bonus vetus OLS: A simple method for approximating international trade-cost effects using the gravity equation.” Journal of International Economics, 77(1), 77 - 85. ISSN 0022-1996, doi:10.1016/j.jinteco.2008.10.004 .

Baier SL, Bergstrand JH (2010). “The Gravity Model in International Trade: Advances and Applications.” In van Bergeijk PAG, Brakman S (eds.), chapter 4. Cambridge University Press. doi:10.1017/CBO9780511762109 .

Feenstra RC (2002). “Border effects and the gravity equation: consistent methods for estimation.” Scottish Journal of Political Economy, 49(5), 491--506.

Head K, Mayer T, Ries J (2010). “The erosion of colonial trade linkages after independence.” Journal of International Economics, 81(1), 1 - 14. ISSN 0022-1996, doi:10.1016/j.jinteco.2010.01.002 .

Head K, Mayer T (2014). “Chapter 3 - Gravity Equations: Workhorse,Toolkit, and Cookbook.” In Gopinath G, Helpman E, Rogoff K (eds.), Handbook of International Economics, volume 4 of Handbook of International Economics, 131 - 195. Elsevier. doi:10.1016/B978-0-444-54314-1.00003-3 .

Silva JMCS, Tenreyro S (2006). “The Log of Gravity.” The Review of Economics and Statistics, 88(4), 641-658. doi:10.1162/rest.88.4.641 .

and the citations therein.

See Gravity Equations: Workhorse, Toolkit, and Cookbook for gravity datasets and Stata code for estimating gravity models.

For estimating gravity equations using panel data see

Egger P, Pfaffermayr M (2003). “The proper panel econometric specification of the gravity equation: A three-way model with bilateral interaction effects.” Empirical Economics, 28(3), 571--580. ISSN 1435-8921, doi:10.1007/s001810200146 .

Gómez-Herrera E (2013). “Comparing alternative methods to estimate gravity models of bilateral trade.” Empirical Economics, 44(3), 1087--1111. ISSN 1435-8921, doi:10.1007/s00181-012-0576-2 .

and the references therein.

See also

Examples

# Example for CRAN checks:
# Executable in < 5 sec
library(dplyr)
data("gravity_no_zeros")

# Choose 5 countries for testing
countries_chosen <- c("AUS", "CHN", "GBR", "BRA", "CAN")
grav_small <- filter(gravity_no_zeros, iso_o %in% countries_chosen)

grav_small <- grav_small %>%
  mutate(
    flow = ifelse(flow < 5, 0, flow), # cutoff for testing purposes
    lgdp_o = log(gdp_o),
    lgdp_d = log(gdp_d)
  )

fit <- ek_tobit(
  dependent_variable = "flow",
  distance = "distw",
  additional_regressors = c("distw", "rta", "lgdp_o", "lgdp_d"),
  code_destination = "iso_d",
  robust = FALSE,
  data = grav_small
)
#> Warning: There were 4 warnings in `mutate()`.
#> The first warning was:
#>  In argument: `exportmin = min(y_log_ek, na.rm = TRUE)`.
#>  In group 21: `iso_d = "BTN"`.
#> Caused by warning in `min()`:
#> ! no non-missing arguments to min; returning Inf
#>  Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.