Running a PPML regression in python using GME package from USITC
A couple of month ago, I just learned from a professor from my course about the new gravity dataset made by the United States International Trade Commission (USITC). Turns out, the USITC has not only a gravity dataset, but a dedicated page called “gravity portal” which contain some other data and software related to gravity estimation. And boy how excited I was when I just learned that they have made a python package to run a PPLM regression.
For non-economics bunch, us trade people called international trade estimation models as “gravity model”. According to wikipedia, this model first introduced by Walter Isard, an American economist, in 1954, it is a model constructed to mimic a gravity. It takes the form of:
$$ Trade_{ij}=\frac{GDP_{i}*GDP_{j}}{Distance_{ij}} \label{eq1} $$
That is, the amount of bilateral trade made by two countries $i$ and $j$ is related to their economic size (mass in the normal gravity equation) and their distance, as a proxy for trade cost. Obviously these days there are many extension to this model, but I won’t dwell on it for now. For now, let’s focus on the PPML extension.
Normally, we linearised equation \ref{eq1} by log transformation. That way, it is easy to estimate equation \ref{eq1} (or it’s extensions) with OLS. Silva and Tenreyro (2006) critised the use of log-log OLS by showing that it is very hard to treat heteroskedasticity, common in trade data, with OLS extensions. In the paper, they show that non-linear regression especially PPLM performs much better. The paper became wildly popular among trade modeler. These days, it is hard to find a gravity modeler not using this method.
Running PPLM is pretty easy in STATA. Specialised packages such as this really makes it hard for me to switch to other language like R or python. As an international trade scholar, I have to rely on this package so I can focus on my research context. But now that I know PPLM package is out there, moving to python full-time become extra compelling!
So let’s try how this works. First, import needed packages and grab the data that I used to run my thesis:
import os
import pandas as pd
import numpy as np
import gme as gme
os.chdir('C:\github')
trade=pd.read_stata('gravitytest.dta')
trade
DISIC508 | psid | HS2012 | hs10 | country | imk | imu | year | hs6 | imu6 | ... | entry_tp_d | eu_o | eu_d | iso | lgdp_o | lgdp_d | ldistw | lmt | lntma | lntmb | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 15497 | 47623.0 | 9029109000 | 9.029109e+09 | 4.0 | 187.0 | 2008.0 | 902910 | 24568.0 | ... | NaN | NaN | NaN | master only (1) | NaN | NaN | NaN | 1.791759 | 0.000000 | 0.0 | |
1 | 29270 | 17530.0 | 9306900000 | 9.306900e+09 | 1112.0 | 8030.0 | 2008.0 | 930690 | 563383.0 | ... | NaN | NaN | NaN | master only (1) | NaN | NaN | NaN | 0.000000 | 0.000000 | 0.0 | |
2 | 28113 | 9703.0 | 8483109000 | 8.483109e+09 | REUNION | 172.0 | 2369.0 | 2008.0 | 848310 | 532539.0 | ... | NaN | NaN | NaN | master only (1) | NaN | NaN | NaN | 1.791759 | 0.000000 | 0.0 |
3 | 26202 | 54660.0 | 8538901900 | 8.538902e+09 | REUNION | 1.0 | 24.0 | 2008.0 | 853890 | 12746.0 | ... | NaN | NaN | NaN | master only (1) | NaN | NaN | NaN | 1.791759 | 0.000000 | 0.0 |
4 | 26202 | 54660.0 | 8413811000 | 8.413811e+09 | REUNION | 738.0 | 18487.0 | 2008.0 | 841381 | 20723.0 | ... | NaN | NaN | NaN | master only (1) | NaN | NaN | NaN | 1.791759 | 0.000000 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
416912 | 13085.0 | 5201000000 | 5.201000e+09 | ZIMBABWE | 4208425.0 | 8388479.0 | 2012.0 | 520100 | 183987968.0 | ... | 58.0 | 0.0 | 0.0 | matched (3) | 23.246786 | 27.499453 | 9.056228 | 0.000000 | 1.098612 | 0.0 | |
416913 | 13805.0 | 5201000000 | 5.201000e+09 | ZIMBABWE | 306143.0 | 732298.0 | 2012.0 | 520100 | 19769164.0 | ... | 58.0 | 0.0 | 0.0 | matched (3) | 23.246786 | 27.499453 | 9.056228 | 0.000000 | 1.098612 | 0.0 | |
416914 | 64381.0 | 2401201000 | 2.401201e+09 | ZIMBABWE | 10830.0 | 87615.0 | 2012.0 | 240120 | 6828994.0 | ... | 58.0 | 0.0 | 0.0 | matched (3) | 23.246786 | 27.499453 | 9.056228 | 1.791759 | 1.098612 | 0.0 | |
416915 | 27480.0 | 2401201000 | 2.401201e+09 | ZIMBABWE | 57600.0 | 77760.0 | 2012.0 | 240120 | 77760.0 | ... | 58.0 | 0.0 | 0.0 | matched (3) | 23.246786 | 27.499453 | 9.056228 | 1.791759 | 1.098612 | 0.0 | |
416916 | 27475.0 | 2401101000 | 2.401101e+09 | ZIMBABWE | 495000.0 | 3019500.0 | 2012.0 | 240110 | 68412784.0 | ... | 58.0 | 0.0 | 0.0 | matched (3) | 23.246786 | 27.499453 | 9.056228 | 1.791759 | 1.098612 | 0.0 |
416917 rows × 107 columns
I construct that dataset from Indonesian Bureau of Statistics. It has information on import made by firms in Indonesia in 2008-2012. As you can see, that dataset has 107 columns. I won’t use them all for this test. let’s kick the rest out and keep only what we need.
trade=trade[['DISIC508','psid','country','imu6','lmt','lntma','lntmb','contig','comlang_off','ldistw','lgdp_o','lgdp_d','fta_wto','year']]
trade
DISIC508 | psid | country | imu6 | lmt | lntma | lntmb | contig | comlang_off | ldistw | lgdp_o | lgdp_d | fta_wto | year | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 15497 | 47623.0 | 24568.0 | 1.791759 | 0.000000 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | 2008.0 | |
1 | 29270 | 17530.0 | 563383.0 | 0.000000 | 0.000000 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | 2008.0 | |
2 | 28113 | 9703.0 | REUNION | 532539.0 | 1.791759 | 0.000000 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | 2008.0 |
3 | 26202 | 54660.0 | REUNION | 12746.0 | 1.791759 | 0.000000 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | 2008.0 |
4 | 26202 | 54660.0 | REUNION | 20723.0 | 1.791759 | 0.000000 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | 2008.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
416912 | 13085.0 | ZIMBABWE | 183987968.0 | 0.000000 | 1.098612 | 0.0 | 0.0 | 0.0 | 9.056228 | 23.246786 | 27.499453 | 0.0 | 2012.0 | |
416913 | 13805.0 | ZIMBABWE | 19769164.0 | 0.000000 | 1.098612 | 0.0 | 0.0 | 0.0 | 9.056228 | 23.246786 | 27.499453 | 0.0 | 2012.0 | |
416914 | 64381.0 | ZIMBABWE | 6828994.0 | 1.791759 | 1.098612 | 0.0 | 0.0 | 0.0 | 9.056228 | 23.246786 | 27.499453 | 0.0 | 2012.0 | |
416915 | 27480.0 | ZIMBABWE | 77760.0 | 1.791759 | 1.098612 | 0.0 | 0.0 | 0.0 | 9.056228 | 23.246786 | 27.499453 | 0.0 | 2012.0 | |
416916 | 27475.0 | ZIMBABWE | 68412784.0 | 1.791759 | 1.098612 | 0.0 | 0.0 | 0.0 | 9.056228 | 23.246786 | 27.499453 | 0.0 | 2012.0 |
416917 rows × 14 columns
Much better. But let’s make a two-digit ISIC code for fixed effect, and then show summary statistics of my data.
pd.options.mode.chained_assignment = None # default='warn', dapat dari stackoverflow
trade['isic2']=trade['DISIC508'].str[:2] # bikin isic 2 digit
trade.describe(include='all')
DISIC508 | psid | country | imu6 | lmt | lntma | lntmb | contig | comlang_off | ldistw | lgdp_o | lgdp_d | fta_wto | year | isic2 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 416917 | 416917.000000 | 416917 | 4.169170e+05 | 416917.000000 | 416917.000000 | 416917.000000 | 416528.000000 | 416528.0 | 416528.000000 | 416334.000000 | 416528.000000 | 416156.000000 | 416917.000000 | 416917 |
unique | 251 | NaN | 207 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 24 |
top | NaN | JAPAN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ||
freq | 346920 | NaN | 78312 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 346920 |
mean | NaN | 39929.765625 | NaN | 1.578270e+06 | 1.640825 | 0.046497 | 0.069130 | 0.039210 | 0.0 | 8.407879 | 28.012295 | 27.228710 | 0.626592 | 2003.304932 | NaN |
std | NaN | 19671.726562 | NaN | 1.813418e+07 | 0.921622 | 0.250223 | 0.280148 | 0.194094 | 0.0 | 0.755016 | 1.452945 | 0.225774 | 0.483710 | 7.055770 | NaN |
min | NaN | 1892.000000 | NaN | 1.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 6.194654 | 17.226353 | 26.958157 | 0.000000 | 2008.000000 | NaN |
25% | NaN | 17958.000000 | NaN | 2.010000e+03 | 1.791759 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 8.184400 | 26.498676 | 27.014057 | 0.000000 | 2009.000000 | NaN |
50% | NaN | 44835.000000 | NaN | 2.078600e+04 | 1.791759 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 8.532608 | 28.262346 | 27.287390 | 1.000000 | 2010.000000 | NaN |
75% | NaN | 56871.000000 | NaN | 1.993940e+05 | 2.397895 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 8.609140 | 29.334930 | 27.463705 | 1.000000 | 2011.000000 | NaN |
max | NaN | 72930.000000 | NaN | 1.450820e+09 | 11.736077 | 3.401197 | 2.639057 | 1.000000 | 0.0 | 9.871479 | 30.413757 | 27.499453 | 1.000000 | 2012.000000 | NaN |
looks good. So many empty cells lol. Anyway, this data set has only 1 importing country, that is, Indonesia. Of course I have varied firms, so instead of a country, let’s make these firms as the importer. I have many exporting countries, including tariff asociated with their purchase (varies with country of origin, type of goods in HS-6-digit code, and year) which I dubbed ‘lmt’ in the dataset. I also have the number of SPS (lntma) and TBT (lntmb) associated with goods purchased by those firms.
so first of all, we set the environment to prepare the data for the regression. This is like using xtset
in STATA for xtreg
, I think.
gme_data=gme.EstimationData(data_frame=trade,
imp_var_name='psid',
exp_var_name='country',
trade_var_name='imu6',
sector_var_name='isic2',
year_var_name='year')
print(gme_data)
number of countries: 2463
number of exporters: 207
number of importers: 2256
number of years: 5
number of sectors: 24
dimensions: (416917, 15)
Now that it all set, let’s let the machine go brrrr. Don’t forget to set your fixed effects.
gme_model=gme.EstimationModel(estimation_data=gme_data,
lhs_var='imu6',
rhs_var=['lmt','lntma','lntmb','lgdp_o','lgdp_d','ldistw','fta_wto','contig','comlang_off'],
fixed_effects=['country','isic2'])
estimates=gme_model.estimate()
select specification variables: ['lmt', 'lntma', 'lntmb', 'lgdp_o', 'lgdp_d', 'ldistw', 'fta_wto', 'contig', 'comlang_off', 'imu6', 'psid', 'country', 'year', 'isic2'], Observations excluded by user: {'rows': 0, 'columns': 1}
drop_intratrade: no, Observations excluded by user: {'rows': 0, 'columns': 0}
drop_imp: none, Observations excluded by user: {'rows': 0, 'columns': 0}
drop_exp: none, Observations excluded by user: {'rows': 0, 'columns': 0}
keep_imp: all available, Observations excluded by user: {'rows': 0, 'columns': 0}
keep_exp: all available, Observations excluded by user: {'rows': 0, 'columns': 0}
drop_years: none, Observations excluded by user: {'rows': 0, 'columns': 0}
keep_years: all available, Observations excluded by user: {'rows': 0, 'columns': 0}
drop_missing: yes, Observations excluded by user: {'rows': 955, 'columns': 0}
Estimation began at 12:39 PM on Aug 12, 2020
Omitted Columns: ['comlang_off', 'country_fe_PAPUA NEW GUINEA', 'country_fe_ZIMBABWE', 'isic2_fe_37', 'country_fe_MALAYSIA', 'country_fe_ZAMBIA', 'isic2_fe_36']
Estimation completed at 12:40 PM on Aug 12, 2020
result=gme.combine_sector_results(estimates)
result.head(8)
all_coeff | all_stderr | all_pvalue | |
---|---|---|---|
lmt | -0.639771 | 0.021540 | 7.396863e-194 |
lntma | 0.561644 | 0.033192 | 3.152121e-64 |
lntmb | 0.364746 | 0.036307 | 9.556518e-24 |
lgdp_o | 0.393253 | 0.191870 | 4.040557e-02 |
lgdp_d | 0.946128 | 0.157832 | 2.040966e-09 |
ldistw | -2.106424 | 0.409394 | 2.671980e-07 |
fta_wto | 0.073430 | 0.100158 | 4.634703e-01 |
contig | -6.504605 | 1.125489 | 7.498616e-09 |
And there you go. Table above shows coefficients from the PPLM. I think the python ran this thing a bit faster than STATA but I have to check again since my PPLM in STATA has more stuff in it.
The result is very close to my STATA result I think (again I never really ran it with only these number of variables for my thesis). tariff (lmt) and Indonesian GDP (lgdp_d) have an expected sign and somewhat expected magnitude Distance has an expected sign but it looks very high indeed (remember this is firm’s purchase). FTA has no significance which is expected (must be absorbed by FE and tariff).
NTM still shows a positive and significant result, which is a bit intriguing. One argument that make sense is reverse causality. That is, the government seems to be wary of Current Account Deficit (CAD). The higher the observed import, the more likely it is willing to raise Non-Tariff Measures.
Of course this is just a quick thought. I am treating this causality problem a bit more serious on my paper with some ways or the other. Bottom line is, PPLM is now working on python and I have one less reason to stick with STATA. Now when the whole ANU switch to R and python, I think I will be ready. Ha ha ha ha!
Thanks for reading this post, I hope it’s useful. Happy to reply to any comments. Here’s a longer result of the regression.
# long result
estimates.keys()
results=estimates['all']
results.summary()
Dep. Variable: | imu6 | No. Iterations: | 12 |
---|---|---|---|
Model: | GLM | Df Residuals: | 415640 |
Model Family: | Poisson | Df Model: | 191 |
Link Function: | log | Scale: | 1.0000 |
Method: | IRLS | Log-Likelihood: | -1.5906e+12 |
Covariance Type: | HC1 | Deviance: | 3.1813e+12 |
No. Observations: | 415832 | Pearson chi2: | 3.96e+13 |
coef | std err | t | P>|t| | [0.025 | 0.975] | |
---|---|---|---|---|---|---|
lmt | -0.6398 | 0.022 | -29.701 | 0.000 | -0.682 | -0.598 |
lntma | 0.5616 | 0.033 | 16.921 | 0.000 | 0.497 | 0.627 |
lntmb | 0.3647 | 0.036 | 10.046 | 0.000 | 0.294 | 0.436 |
lgdp_o | 0.3933 | 0.192 | 2.050 | 0.040 | 0.017 | 0.769 |
lgdp_d | 0.9461 | 0.158 | 5.995 | 0.000 | 0.637 | 1.255 |
ldistw | -2.1064 | 0.409 | -5.145 | 0.000 | -2.909 | -1.304 |
fta_wto | 0.0734 | 0.100 | 0.733 | 0.463 | -0.123 | 0.270 |
contig | -6.5046 | 1.125 | -5.779 | 0.000 | -8.711 | -4.299 |
country_fe_AFGHANISTAN | 0.4090 | 0.466 | 0.877 | 0.380 | -0.505 | 1.323 |
country_fe_ALBANIA | -0.6846 | 0.795 | -0.862 | 0.389 | -2.242 | 0.873 |
country_fe_ALGERIA | 1.4254 | 1.025 | 1.391 | 0.164 | -0.583 | 3.434 |
country_fe_ANGOLA | 0.5248 | 0.607 | 0.865 | 0.387 | -0.664 | 1.714 |
country_fe_ANTIGUA DNA BARBUDA | 1.7079 | 0.911 | 1.875 | 0.061 | -0.078 | 3.494 |
country_fe_ARGENTINA | -0.2130 | 0.746 | -0.286 | 0.775 | -1.676 | 1.249 |
country_fe_ARMENIA | -2.6577 | 0.859 | -3.095 | 0.002 | -4.340 | -0.975 |
country_fe_AUSTRALIA | -3.7090 | 0.991 | -3.741 | 0.000 | -5.652 | -1.766 |
country_fe_AUSTRIA | -3.4246 | 0.725 | -4.725 | 0.000 | -4.845 | -2.004 |
country_fe_BAHAMAS | 3.1000 | 0.629 | 4.930 | 0.000 | 1.868 | 4.332 |
country_fe_BAHRAIN | 0.3896 | 0.659 | 0.592 | 0.554 | -0.901 | 1.680 |
country_fe_BANGLADESH | -2.7922 | 0.787 | -3.549 | 0.000 | -4.334 | -1.250 |
country_fe_BARBADOS | 2.9386 | 0.751 | 3.912 | 0.000 | 1.466 | 4.411 |
country_fe_BELARUS | 1.4382 | 0.532 | 2.705 | 0.007 | 0.396 | 2.480 |
country_fe_BELGIUM | -2.0392 | 0.744 | -2.741 | 0.006 | -3.497 | -0.581 |
country_fe_BELIZE | 1.1173 | 1.105 | 1.011 | 0.312 | -1.048 | 3.282 |
country_fe_BENIN | 1.7086 | 0.593 | 2.883 | 0.004 | 0.547 | 2.870 |
country_fe_BOLIVIA | -1.5380 | 0.663 | -2.319 | 0.020 | -2.838 | -0.238 |
country_fe_BOSNIA AND HERZEGOVINA | 0.4275 | 1.082 | 0.395 | 0.693 | -1.693 | 2.548 |
country_fe_BOTSWANA | -7.9549 | 0.479 | -16.601 | 0.000 | -8.894 | -7.016 |
country_fe_BRAZIL | -0.6946 | 0.935 | -0.743 | 0.458 | -2.528 | 1.139 |
country_fe_BRUNEI DARUSSALAM | -5.0344 | 0.860 | -5.851 | 0.000 | -6.721 | -3.348 |
country_fe_BULGARIA | -0.8735 | 0.579 | -1.508 | 0.132 | -2.009 | 0.262 |
country_fe_BURKINA FASO | 0.7212 | 0.604 | 1.194 | 0.232 | -0.462 | 1.905 |
country_fe_CAMBODIA | -2.6752 | 0.871 | -3.073 | 0.002 | -4.382 | -0.969 |
country_fe_CAMEROON | 0.0639 | 0.578 | 0.111 | 0.912 | -1.069 | 1.197 |
country_fe_CANADA | -0.9668 | 0.924 | -1.046 | 0.295 | -2.778 | 0.844 |
country_fe_CAPE VERDE | 3.3896 | 0.832 | 4.075 | 0.000 | 1.759 | 5.020 |
country_fe_CENTRAL AFRICAN REPUBLIC | 0.6676 | 0.796 | 0.839 | 0.402 | -0.892 | 2.228 |
country_fe_CHAD | 1.4187 | 0.739 | 1.919 | 0.055 | -0.030 | 2.868 |
country_fe_CHILE | -0.7792 | 0.664 | -1.174 | 0.241 | -2.080 | 0.522 |
country_fe_CHINA | -5.9689 | 1.306 | -4.571 | 0.000 | -8.528 | -3.410 |
country_fe_COLOMBIA | 0.5011 | 0.764 | 0.656 | 0.512 | -0.997 | 1.999 |
country_fe_COMOROS | -4.4323 | 1.051 | -4.217 | 0.000 | -6.492 | -2.372 |
country_fe_COSTA RICA | 1.3587 | 0.671 | 2.024 | 0.043 | 0.043 | 2.674 |
country_fe_COTE D'IVOIRE | 0.7333 | 0.552 | 1.329 | 0.184 | -0.348 | 1.815 |
country_fe_CROATIA | -0.8040 | 0.744 | -1.080 | 0.280 | -2.263 | 0.655 |
country_fe_CUBA | 1.4541 | 0.761 | 1.911 | 0.056 | -0.037 | 2.946 |
country_fe_CYPRUS | 0.2204 | 0.596 | 0.370 | 0.712 | -0.948 | 1.389 |
country_fe_CZECH REPUBLIC | -2.0958 | 0.645 | -3.251 | 0.001 | -3.359 | -0.832 |
country_fe_DENMARK | -2.8564 | 0.701 | -4.074 | 0.000 | -4.231 | -1.482 |
country_fe_DJIBOUTI | 1.6503 | 0.755 | 2.187 | 0.029 | 0.171 | 3.129 |
country_fe_ECUADOR | 0.2109 | 0.792 | 0.266 | 0.790 | -1.341 | 1.763 |
country_fe_EGYPT | -0.7402 | 0.680 | -1.089 | 0.276 | -2.073 | 0.592 |
country_fe_EL SALVADOR | 2.7996 | 0.642 | 4.363 | 0.000 | 1.542 | 4.057 |
country_fe_ESTONIA | 0.6244 | 0.550 | 1.135 | 0.256 | -0.454 | 1.703 |
country_fe_ETHIOPIA | -1.1273 | 0.722 | -1.561 | 0.118 | -2.542 | 0.288 |
country_fe_FIJI | -0.4756 | 0.866 | -0.549 | 0.583 | -2.174 | 1.222 |
country_fe_FINLAND | -2.3117 | 0.668 | -3.460 | 0.001 | -3.621 | -1.002 |
country_fe_FRANCE | -3.2455 | 1.010 | -3.213 | 0.001 | -5.225 | -1.266 |
country_fe_GABON | 0.9253 | 0.591 | 1.566 | 0.117 | -0.233 | 2.083 |
country_fe_GAMBIA | 3.0057 | 0.869 | 3.459 | 0.001 | 1.303 | 4.709 |
country_fe_GEORGIA | 0.7857 | 0.535 | 1.469 | 0.142 | -0.263 | 1.834 |
country_fe_GERMANY | -4.1535 | 1.053 | -3.944 | 0.000 | -6.217 | -2.090 |
country_fe_GHANA | 1.0493 | 0.552 | 1.899 | 0.058 | -0.033 | 2.132 |
country_fe_GREECE | -1.0759 | 0.695 | -1.547 | 0.122 | -2.439 | 0.287 |
country_fe_GUATEMALA | 2.7991 | 0.699 | 4.007 | 0.000 | 1.430 | 4.168 |
country_fe_GUINEA | 2.4787 | 0.655 | 3.782 | 0.000 | 1.194 | 3.763 |
country_fe_GUINEA BISSAU | 3.0531 | 0.832 | 3.669 | 0.000 | 1.422 | 4.684 |
country_fe_GUYANA | 3.3098 | 0.896 | 3.693 | 0.000 | 1.553 | 5.066 |
country_fe_HAITI | 4.4323 | 0.876 | 5.060 | 0.000 | 2.715 | 6.149 |
country_fe_HONDURAS | 2.4895 | 0.642 | 3.879 | 0.000 | 1.232 | 3.747 |
country_fe_HONG KONG | -4.9675 | 0.869 | -5.713 | 0.000 | -6.672 | -3.263 |
country_fe_HUNGARY | -1.8897 | 0.607 | -3.116 | 0.002 | -3.078 | -0.701 |
country_fe_ICELAND | -0.5570 | 0.855 | -0.652 | 0.515 | -2.232 | 1.118 |
country_fe_INDIA | -4.5392 | 1.069 | -4.247 | 0.000 | -6.634 | -2.444 |
country_fe_INDONESIA | -7.4981 | 1.514 | -4.951 | 0.000 | -10.466 | -4.530 |
country_fe_IRAN | -0.3197 | 0.805 | -0.397 | 0.691 | -1.898 | 1.259 |
country_fe_IRELAND | -0.4954 | 0.650 | -0.762 | 0.446 | -1.770 | 0.779 |
country_fe_ISRAEL | -3.9824 | 0.702 | -5.676 | 0.000 | -5.358 | -2.607 |
country_fe_ITALY | -3.9412 | 0.977 | -4.034 | 0.000 | -5.856 | -2.026 |
country_fe_JAMAICA | 2.6006 | 0.640 | 4.062 | 0.000 | 1.346 | 3.856 |
country_fe_JAPAN | -5.5958 | 1.237 | -4.525 | 0.000 | -8.019 | -3.172 |
country_fe_JORDAN | 1.1906 | 0.522 | 2.282 | 0.023 | 0.168 | 2.213 |
country_fe_KAZAKHSTAN | -1.2164 | 0.867 | -1.403 | 0.160 | -2.915 | 0.482 |
country_fe_KENYA | -1.0302 | 0.635 | -1.622 | 0.105 | -2.275 | 0.214 |
country_fe_KIRIBATI | -0.2963 | 1.067 | -0.278 | 0.781 | -2.388 | 1.795 |
country_fe_KOREA SELATAN | -4.9764 | 0.980 | -5.076 | 0.000 | -6.898 | -3.055 |
country_fe_KUWAIT | 0.1261 | 0.703 | 0.179 | 0.858 | -1.252 | 1.504 |
country_fe_KYRGYZSTAN | -0.4947 | 0.661 | -0.748 | 0.454 | -1.790 | 0.801 |
country_fe_LAOS | -3.7586 | 0.655 | -5.736 | 0.000 | -5.043 | -2.474 |
country_fe_LATVIA | 0.8944 | 0.549 | 1.628 | 0.104 | -0.182 | 1.971 |
country_fe_LEBANON | 0.2168 | 0.615 | 0.352 | 0.725 | -0.989 | 1.422 |
country_fe_LESOTHO | -1.5089 | 0.658 | -2.295 | 0.022 | -2.798 | -0.220 |
country_fe_LIBERIA | 3.2042 | 0.788 | 4.067 | 0.000 | 1.660 | 4.748 |
country_fe_LIBYAN ARAB JAMAHIRIYA | 1.4757 | 0.576 | 2.562 | 0.010 | 0.347 | 2.605 |
country_fe_LITHUANIA | 1.1799 | 0.560 | 2.107 | 0.035 | 0.082 | 2.277 |
country_fe_LUXEMBURG | -1.7115 | 0.626 | -2.734 | 0.006 | -2.939 | -0.484 |
country_fe_MACAU | -3.3526 | 0.697 | -4.810 | 0.000 | -4.719 | -1.987 |
country_fe_MADAGASKAR | 0.3656 | 0.669 | 0.547 | 0.585 | -0.945 | 1.676 |
country_fe_MALAWI | 1.1928 | 0.604 | 1.974 | 0.048 | 0.008 | 2.377 |
country_fe_MALI | 1.5867 | 0.683 | 2.323 | 0.020 | 0.248 | 2.925 |
country_fe_MALTA | 0.3692 | 0.667 | 0.554 | 0.580 | -0.938 | 1.676 |
country_fe_MAROCCO | 0.9948 | 0.625 | 1.591 | 0.112 | -0.231 | 2.220 |
country_fe_MARSHALL ISLANDS | 1.4335 | 0.995 | 1.440 | 0.150 | -0.517 | 3.384 |
country_fe_MAURITANIA | 2.7633 | 0.674 | 4.103 | 0.000 | 1.443 | 4.083 |
country_fe_MAURITIUS | -0.2280 | 0.620 | -0.368 | 0.713 | -1.444 | 0.988 |
country_fe_MEXICO | -1.1895 | 0.871 | -1.365 | 0.172 | -2.898 | 0.519 |
country_fe_MOLDOVA, REPUBLIC OF | -1.1614 | 0.833 | -1.395 | 0.163 | -2.793 | 0.470 |
country_fe_MONGOLIA | -3.6615 | 1.155 | -3.169 | 0.002 | -5.926 | -1.397 |
country_fe_MOZAMBIQUE | 0.5349 | 0.503 | 1.063 | 0.288 | -0.452 | 1.521 |
country_fe_MYANMAR | -2.7854 | 0.774 | -3.600 | 0.000 | -4.302 | -1.269 |
country_fe_NAMIBIA | 0.8391 | 0.551 | 1.524 | 0.128 | -0.240 | 1.918 |
country_fe_NEPAL | -3.5180 | 1.352 | -2.602 | 0.009 | -6.168 | -0.869 |
country_fe_NETHERLANDS | -2.6678 | 0.822 | -3.244 | 0.001 | -4.280 | -1.056 |
country_fe_NEW ZEALAND | -2.1391 | 0.611 | -3.502 | 0.000 | -3.337 | -0.942 |
country_fe_NICARAGUA | 2.4747 | 0.814 | 3.039 | 0.002 | 0.879 | 4.071 |
country_fe_NIGERIA | -0.8554 | 0.758 | -1.129 | 0.259 | -2.340 | 0.630 |
country_fe_NORWAY | -1.8189 | 0.759 | -2.396 | 0.017 | -3.307 | -0.331 |
country_fe_OMAN | 0.0868 | 0.727 | 0.119 | 0.905 | -1.338 | 1.511 |
country_fe_PAKISTAN | -1.9681 | 0.753 | -2.613 | 0.009 | -3.444 | -0.492 |
country_fe_PANAMA | 1.8940 | 0.606 | 3.125 | 0.002 | 0.706 | 3.082 |
country_fe_PARAGUAY | 1.9121 | 0.626 | 3.053 | 0.002 | 0.684 | 3.140 |
country_fe_PERU | -1.0463 | 0.649 | -1.612 | 0.107 | -2.319 | 0.226 |
country_fe_PHILIPPINES | -3.7168 | 0.900 | -4.128 | 0.000 | -5.482 | -1.952 |
country_fe_POLAND | -1.6215 | 0.761 | -2.130 | 0.033 | -3.114 | -0.130 |
country_fe_PORTUGAL | -1.5515 | 0.699 | -2.219 | 0.026 | -2.922 | -0.181 |
country_fe_PUERTO RICO | 1.0642 | 0.644 | 1.653 | 0.098 | -0.197 | 2.326 |
country_fe_QATAR | 0.0772 | 0.680 | 0.113 | 0.910 | -1.256 | 1.411 |
country_fe_REP. OF MACEDONIA | -0.6957 | 0.630 | -1.105 | 0.269 | -1.930 | 0.539 |
country_fe_RUSSIA | -1.5519 | 0.973 | -1.595 | 0.111 | -3.459 | 0.356 |
country_fe_RWANDA | -0.6205 | 1.122 | -0.553 | 0.580 | -2.819 | 1.578 |
country_fe_SAINT KITTS AND NEVIS | 3.7861 | 0.970 | 3.903 | 0.000 | 1.885 | 5.687 |
country_fe_SAINT LUCIA | 2.4708 | 0.888 | 2.782 | 0.005 | 0.730 | 4.212 |
country_fe_SAMOA | 0.7636 | 1.075 | 0.710 | 0.477 | -1.343 | 2.870 |
country_fe_SAO TOME AND PRINCIPE | -3.4500 | 1.057 | -3.265 | 0.001 | -5.521 | -1.379 |
country_fe_SAUDI ARABIA | -0.8471 | 0.802 | -1.056 | 0.291 | -2.420 | 0.726 |
country_fe_SENEGAL | 1.7053 | 0.581 | 2.933 | 0.003 | 0.566 | 2.845 |
country_fe_SEYCHELLES | -7.1690 | 0.736 | -9.737 | 0.000 | -8.612 | -5.726 |
country_fe_SIERRA LEONE | 2.6239 | 0.715 | 3.668 | 0.000 | 1.222 | 4.026 |
country_fe_SINGAPORE | -7.8383 | 1.210 | -6.478 | 0.000 | -10.210 | -5.467 |
country_fe_SLOVAKIA | -1.9957 | 0.576 | -3.465 | 0.001 | -3.124 | -0.867 |
country_fe_SLOVENIA | -2.4731 | 0.550 | -4.500 | 0.000 | -3.550 | -1.396 |
country_fe_SOLOMON ISLANDS | -1.6206 | 0.828 | -1.956 | 0.050 | -3.244 | 0.003 |
country_fe_SOUTH AFRICA | -1.3349 | 0.718 | -1.860 | 0.063 | -2.742 | 0.072 |
country_fe_SPAIN | -2.3184 | 0.904 | -2.563 | 0.010 | -4.091 | -0.546 |
country_fe_SRI LANKA | -4.6596 | 0.689 | -6.764 | 0.000 | -6.010 | -3.309 |
country_fe_SUDAN | 0.4152 | 0.551 | 0.754 | 0.451 | -0.665 | 1.495 |
country_fe_SURINAME | 3.2029 | 0.764 | 4.192 | 0.000 | 1.705 | 4.700 |
country_fe_SWAZILAND | -1.0519 | 0.623 | -1.689 | 0.091 | -2.272 | 0.169 |
country_fe_SWEDEN | -2.2875 | 0.762 | -3.001 | 0.003 | -3.781 | -0.794 |
country_fe_SWITZERLAND | -2.9224 | 0.796 | -3.672 | 0.000 | -4.482 | -1.362 |
country_fe_TAIWAN | -5.3211 | 0.931 | -5.717 | 0.000 | -7.145 | -3.497 |
country_fe_TAJIKISTAN | 2.8975 | 0.638 | 4.540 | 0.000 | 1.647 | 4.148 |
country_fe_TANZANIA, UNITED REP. OF | -0.0753 | 0.528 | -0.143 | 0.887 | -1.110 | 0.960 |
country_fe_THAILAND | -4.9906 | 0.983 | -5.079 | 0.000 | -6.916 | -3.065 |
country_fe_TOGO | 2.5262 | 0.702 | 3.598 | 0.000 | 1.150 | 3.902 |
country_fe_TRINIDAD AND TOBAGO | 1.7423 | 0.885 | 1.969 | 0.049 | 0.008 | 3.477 |
country_fe_TUNISIA | -0.1215 | 0.554 | -0.219 | 0.826 | -1.207 | 0.964 |
country_fe_TURKEY | -2.4305 | 0.831 | -2.926 | 0.003 | -4.058 | -0.803 |
country_fe_TURKMENISTAN | -0.1843 | 0.718 | -0.257 | 0.797 | -1.592 | 1.224 |
country_fe_TUVALU | 1.5304 | 1.344 | 1.139 | 0.255 | -1.103 | 4.164 |
country_fe_UGANDA | 0.2314 | 0.566 | 0.409 | 0.683 | -0.878 | 1.341 |
country_fe_UKRAINE | -0.7418 | 0.624 | -1.189 | 0.235 | -1.965 | 0.481 |
country_fe_UNITED ARAB EMIRAT | -1.1745 | 0.775 | -1.515 | 0.130 | -2.694 | 0.345 |
country_fe_UNITED KINGDOM | -3.1306 | 1.010 | -3.100 | 0.002 | -5.110 | -1.151 |
country_fe_UNITED STATES | -3.0327 | 1.279 | -2.370 | 0.018 | -5.540 | -0.525 |
country_fe_URUGUAY | 0.5274 | 0.788 | 0.669 | 0.504 | -1.018 | 2.072 |
country_fe_UZBEKISTAN | -1.8922 | 0.563 | -3.363 | 0.001 | -2.995 | -0.789 |
country_fe_VENEZUELA | 1.8393 | 0.785 | 2.344 | 0.019 | 0.301 | 3.377 |
country_fe_VIET NAM | -4.4794 | 0.880 | -5.091 | 0.000 | -6.204 | -2.755 |
country_fe_YEMEN | -2.2397 | 0.604 | -3.705 | 0.000 | -3.424 | -1.055 |
isic2_fe_ | 0.6834 | 0.094 | 7.247 | 0.000 | 0.499 | 0.868 |
isic2_fe_15 | 1.0921 | 0.131 | 8.337 | 0.000 | 0.835 | 1.349 |
isic2_fe_16 | 0.9401 | 0.236 | 3.981 | 0.000 | 0.477 | 1.403 |
isic2_fe_17 | 1.0258 | 0.121 | 8.456 | 0.000 | 0.788 | 1.264 |
isic2_fe_18 | 0.2840 | 0.102 | 2.790 | 0.005 | 0.085 | 0.483 |
isic2_fe_19 | -0.7478 | 0.117 | -6.404 | 0.000 | -0.977 | -0.519 |
isic2_fe_20 | -1.8403 | 0.131 | -14.100 | 0.000 | -2.096 | -1.584 |
isic2_fe_21 | 0.4099 | 0.121 | 3.380 | 0.001 | 0.172 | 0.648 |
isic2_fe_22 | -0.3420 | 0.165 | -2.070 | 0.038 | -0.666 | -0.018 |
isic2_fe_23 | -0.8543 | 0.269 | -3.174 | 0.002 | -1.382 | -0.327 |
isic2_fe_24 | 0.9828 | 0.107 | 9.222 | 0.000 | 0.774 | 1.192 |
isic2_fe_25 | 0.2573 | 0.118 | 2.181 | 0.029 | 0.026 | 0.489 |
isic2_fe_26 | -0.0824 | 0.126 | -0.653 | 0.514 | -0.330 | 0.165 |
isic2_fe_27 | 2.1734 | 0.108 | 20.078 | 0.000 | 1.961 | 2.386 |
isic2_fe_28 | 0.7762 | 0.133 | 5.842 | 0.000 | 0.516 | 1.037 |
isic2_fe_29 | 0.6114 | 0.122 | 5.000 | 0.000 | 0.372 | 0.851 |
isic2_fe_30 | -0.9750 | 0.339 | -2.874 | 0.004 | -1.640 | -0.310 |
isic2_fe_31 | 0.7240 | 0.106 | 6.822 | 0.000 | 0.516 | 0.932 |
isic2_fe_32 | 0.8617 | 0.152 | 5.659 | 0.000 | 0.563 | 1.160 |
isic2_fe_33 | 2.6663 | 0.165 | 16.129 | 0.000 | 2.342 | 2.990 |
isic2_fe_34 | 0.7941 | 0.107 | 7.407 | 0.000 | 0.584 | 1.004 |
isic2_fe_35 | 0.4387 | 0.107 | 4.089 | 0.000 | 0.228 | 0.649 |