Questions

the focus is to obtain some specific data on skill migration among low income countries, and to predict the skill migration trends in each country for 2020

  • list of countries classified as low income by the world bank
  • which skill group category had positive migration in 2019
  • which industry and country had the most positive migration in 2019
  • list of countries with positive skill migration in 2019
  • skill migration in countries with more the 1k per 10k in 2019 vs 2015
  • predict skill migration per 10k for 2020
  • which country will have the most skill migration in skills that had positive migration in 2019 for 2020
import pandas as pdimport matplotlib.pyplot as pltimport numpy as npfrom statsmodels.tsa.api import Holt# supress annoying warningimport warningsfrom statsmodels.tools.sm_exceptions import ConvergenceWarningwarnings.simplefilter('ignore', ConvergenceWarning)# set the size for all figuresplt.rcParams['figure.figsize'] = [14, 7]
# load in the datasettalent_mg_skill = pd.read_excel("../input/linkedin-digital-data/public_use-talent-migration.xlsx", sheet_name="Skill Migration")
# get countries with low incomecountries_low = talent_mg_skill[talent_mg_skill["wb_income"] == "Low income"]
print("list of countries classified as low income:")for country in countries_low["country_name"].unique():    print(country)
list of countries classified as low income:AfghanistanBeninBurkina FasoCongo, Dem. Rep.EthiopiaHaitiMadagascarMalawiMaliMozambiqueNepalRwandaSenegalSyrian Arab RepublicTanzaniaTogoUgandaYemen, Rep.Zimbabwe
# get industries which had positive migration in 2019pos_2019 = countries_low[countries_low["net_per_10K_2019"] > 0]
print("list of skill group with positive migration in 2019:")for group in pos_2019["skill_group_category"].unique():    print(group)
list of skill group with positive migration in 2019:Business SkillsSpecialized Industry SkillsTech SkillsDisruptive Tech SkillsSoft Skills
pos_2019[pos_2019["net_per_10K_2019"] == pos_2019["net_per_10K_2019"].max()]
country_code country_name wb_income wb_region skill_group_id skill_group_category skill_group_name net_per_10K_2015 net_per_10K_2016 net_per_10K_2017 net_per_10K_2018 net_per_10K_2019
107 af Afghanistan Low income South Asia 827 Specialized Industry Skills Automotive -726.39 -99.97 -479.23 -126.45 518.73

the automotive industry in afghanstan had the most growth in 2019 compared to other skill groups, from this we can also infer that the Specialized Industry Skills category had the most growth of all groups in 2019

# group rows by countrycountry_mg_2019 = pos_2019.groupby("country_name").sum()
# lets take a look at each country in numberscountry_mg_2019
skill_group_id net_per_10K_2015 net_per_10K_2016 net_per_10K_2017 net_per_10K_2018 net_per_10K_2019
country_name
Afghanistan 10549 -2487.43 -1295.07 -1406.04 284.92 585.78
Burkina Faso 4349 -303.68 475.66 -63.77 -96.72 140.30
Congo, Dem. Rep. 267110 15921.11 5191.17 -608.96 569.27 4348.39
Ethiopia 43143 653.31 -207.12 -1726.96 -1796.52 554.37
Madagascar 34054 790.39 -220.53 -1227.28 -703.36 322.82
Malawi 112564 3260.79 4743.21 -208.35 -597.27 618.25
Mali 142676 9017.98 5482.09 2333.82 532.32 2081.85
Mozambique 237709 5390.04 -5692.43 -6644.60 -2357.83 4048.02
Nepal 36235 417.14 288.91 -178.06 -101.40 597.68
Rwanda 142192 1884.73 1484.01 919.05 -2263.96 3187.22
Senegal 203091 3569.81 3784.49 -181.22 224.01 5335.45
Syrian Arab Republic 133 -513.09 -759.56 -457.79 -243.59 9.12
Tanzania 83596 453.32 556.95 -365.45 -671.36 284.23
Togo 559 -113.94 190.67 -234.12 -283.07 9.87
Uganda 9268 107.40 125.65 -252.66 6.44 261.38
Yemen, Rep. 9590 -1586.55 -1486.05 -522.68 164.03 324.38
country_mg_2019["net_per_10K_2019"]
country_nameAfghanistan              585.78Burkina Faso             140.30Congo, Dem. Rep.        4348.39Ethiopia                 554.37Madagascar               322.82Malawi                   618.25Mali                    2081.85Mozambique              4048.02Nepal                    597.68Rwanda                  3187.22Senegal                 5335.45Syrian Arab Republic       9.12Tanzania                 284.23Togo                       9.87Uganda                   261.38Yemen, Rep.              324.38Name: net_per_10K_2019, dtype: float64

lets plot countries which have more than 1000 migration on every 10k

country_mg_2019[country_mg_2019["net_per_10K_2019"] > 1000].plot(y=["net_per_10K_2019"], style=".")
<matplotlib.axes._subplots.AxesSubplot at 0x7fde87f1d490>

png

we can see that sengal had the most skill migration in 2019 compared to other countries now lets compare these numbers to 2015 for example

country_mg_2019[country_mg_2019["net_per_10K_2019"] > 1000].plot(y=["net_per_10K_2019", "net_per_10K_2015"], style=".")
<matplotlib.axes._subplots.AxesSubplot at 0x7fde8f0aef10>

png

skill migration in countries with more than 1000 per 10k skill migration has drastically changes compared to 2015, for example in the Congo and Mali people are far less likely to migrate industries in 2019 compared to 2015 this could indicate a stability in the job market and that people are now settling to a specific field, in contrast more people are migrating to other industries in 2019 compared to 2015 in Senegal indicating a shift in the job market

'''Holt's (Method) Exponential Smoothing for predicting next value based on previous years values,also known as forecasting'''def hes_predict(train):    model = Holt(train)    model_fit = model.fit()    fcast = model_fit.forecast()    return fcast[0]
countries_2020 = pd.DataFrame(columns = ["net_per_10k_2020"], index = country_mg_2019.index)for country in country_mg_2019.index:    # take previous numbers for country as model input    train = country_mg_2019.drop("skill_group_id", axis=1)[country_mg_2019.index == f"{country}"].to_numpy()    # get model prediciton and round to 2 decimal places    result = round(hes_predict(train[0]), 2)    # save model prediction to dataframe    countries_2020["net_per_10k_2020"][f"{country}"] = result    # print prediction results    print(f"{country} skill migration per 10k for 2020 = {result}\n")
Afghanistan skill migration per 10k for 2020 = 566.64Burkina Faso skill migration per 10k for 2020 = 69.35Congo, Dem. Rep. skill migration per 10k for 2020 = 5297.78Ethiopia skill migration per 10k for 2020 = 2904.68Madagascar skill migration per 10k for 2020 = 1349.0Malawi skill migration per 10k for 2020 = 1700.94Mali skill migration per 10k for 2020 = -893.72Mozambique skill migration per 10k for 2020 = 9463.79Nepal skill migration per 10k for 2020 = 359.15Rwanda skill migration per 10k for 2020 = 1042.21Senegal skill migration per 10k for 2020 = 2587.35Syrian Arab Republic skill migration per 10k for 2020 = 281.75Tanzania skill migration per 10k for 2020 = 51.54Togo skill migration per 10k for 2020 = 0.1Uganda skill migration per 10k for 2020 = 101.82Yemen, Rep. skill migration per 10k for 2020 = 389.26
# again plot countries where its more than 1kcountries_2020[countries_2020["net_per_10k_2020"] > 1000].plot(style=".")
<matplotlib.axes._subplots.AxesSubplot at 0x7fde87fa2210>

png

from the model predicitions we can see that the job market will have a major shift in 2020 in Mozambique, with almost all 10k shifting between skills, previous year’s leading to a very unstable job market high, last years highest migration was in Senegal with over 5k migrants per 10k, for 2020 the market seems to be stabilizing and people are settling into jobs leading to less than 3k migrants.

in conclusion. the market has changed significantly for the past years in low income countries, some of the countries had positive skill migration meaning an unstable market where workers do not settle for a specific field, while other countries had negative migration compared to previous years leading to a more stable market which can be interpreted as a good measure of market stability and quality of work for those workers