gpml
estimates gravity models in their
multiplicative form via Gamma Pseudo Maximum Likelihood.
gpml(dependent_variable, regressors, robust = TRUE, data, ...)
name (type: character) of the dependent variable in the dataset
data
(e.g. trade flows).
name (type: character) of the regressors to include in the model.
Include the distance variable in the dataset data
containing a measure of
distance between all pairs of bilateral partners and bilateral variables that should
be taken as the independent variables in the estimation.
The distance is logged automatically when the function is executed.
Unilateral metric variables such as GDPs can be added but those variables have to be logged first.
Interaction terms can be added.
Write this argument as c(distance, contiguity, common curreny, ...)
.
robust (type: logical) determines whether a robust
variance-covariance matrix should be used. By default is set to TRUE
.
name of the dataset to be used (type: character).
To estimate gravity equations you need a square dataset including bilateral
flows defined by the argument dependent_variable
, ISO codes or similar of type character
(e.g. iso_o
for the country of origin and iso_d
for the
destination country), a distance measure defined by the argument distance
and other potential influences (e.g. contiguity and common currency) given as a vector in
regressors
are required.
All dummy variables should be of type numeric (0/1).
Make sure the ISO codes are of type "character".
If an independent variable is defined as a ratio, it should be logged.
The user should perform some data cleaning beforehand to remove observations that contain entries that can distort estimates.
When using panel data, a variable for the time may be included in the dataset. Note that the variable for the time dimension should be of type factor.
The function will remove zero flows and distances.
additional arguments to be passed to functions used by
gpml
.
The function returns the summary of the estimated gravity model similar to a
glm
-object.
gpml
is an estimation method for gravity models
belonging to generalized linear models.
It is estimated via glm2
using the gamma distribution and a log-link.
For similar functions, utilizing the multiplicative form via the log-link,
but different distributions, see ppml
, nls
, and nbpml
.
gpml
estimation can be used for both, cross-sectional as well as
panel data.
It is up to the user to ensure that the functions can be applied to panel data.
Depending on the panel dataset and the variables - specifically the type of fixed effects - included in the model, it may easily occur that the model is not computable.
Also, note that by including bilateral fixed effects such as country-pair effects, the coefficients of time-invariant observables such as distance can no longer be estimated.
Depending on the specific model, the code of the respective function may has to be changed in order to exclude the distance variable from the estimation.
At the very least, the user should take special care with respect to the meaning of the estimated coefficients and variances as well as the decision about which effects to include in the estimation.
When using panel data, the parameter and variance estimation of the models may have to be changed accordingly.
For a comprehensive overview of gravity models for panel data see Egger2003;textualgravity, Gomez-Herrera2013;textualgravity and Head2010;textualgravity as well as the references therein.
For more information on the estimation of gravity equations via Gamma Pseudo maximum Likelihood see
Santos-Silva, J. M. C. and Tenreyro, S. (2006) <DOI:10.1162/rest.88.4.641>
For more information on gravity models, theoretical foundations and estimation methods in general see
Anderson1979gravity
Anderson2001gravity
Anderson2010gravity
Baier2009gravity
Baier2010gravity
Head2010gravity
Head2014gravity
Santos2006gravity
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
Egger2003gravity
Gomez-Herrera2013gravity
and the references therein.
# NOT RUN {
data(gravity_no_zeros)
gravity_no_zeros <- gravity_no_zeros %>%
mutate(
lgdp_o = log(gdp_o),
lgdp_d = log(gdp_d)
)
gpml(dependent_variable = "flow", regressors = c("distw", "rta", "lgdp_o", "lgdp_d"),
robust = TRUE, data = gravity_no_zeros)
# }
# NOT RUN {
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab