Simulation of north korea migration

= Introduction =

Let's hope one day South and North Korea will be reunited. That would mean a big fluctuation of people between the two separated states and also cast a variety of problems. That is a very interesting situation we could simulate.

=Problem definition=

The aim of this simulation is to determine some key factors and their changes after the border between the two countries opens.

We are interested especially in:
 * the migration rate from North to South Korea,
 * North Koreans employment rates,
 * wealth ratio between the two regions
 * and suicide rates among North Koreans facing the comparison with much more developed neighbor.

=Method=

As we are dealing with people moving around an area and having attributes, that means our obvious choice should be a multi-agent simulation. For this simulation, I've chosen to use NetLogo 6.0.4.

= Model =

Data
We need to have some data to start with. For the purpose of the simulation, the following data were used:


 * GDP per capita of North Korea from CIA.gov ($1,700)
 * GDP per capita of South Korea from CIA.gov ($37,600)
 * Population of North Korea from CIA.gov (cca. 25 000 000)
 * Population of South Korea from CIA.gov (cca. 51 000 000)
 * Area of North Korea from CIA.gov (cca. 120 000 sq. km.)
 * Area of South Korea from CIA.gov (cca. 100 000 sq. km.)
 * Employment rate of North Korea from CIA.gov (cca. 75%)
 * Suicide rates of North Korea from The Guardian (9790 suicides per population)
 * Labour share of GDP - from Economics Help we assume it's about 50%
 * Some reference migration rate to start from. As a reference, I used migration rates from Eastern to Western Germany after the fall of the Berlin wall. Based on this paper I assume it's somewhere below 0.0250.

Turtles
For the purpose of the simulation, we need two types of agents - South Koreans and North Koreans.

North Koreans will migrate, work, and sometimes, sadly, kill themselves. They own the following attributes with initial values:


 * Wealth - randomly calculated from 50% (labour share) of GDP per capita.
 * Migration inclination - randomly calculated from reference migration rate.
 * Employment status - boolean randomly determined from initial employment rate.
 * Suicide inclination - randomly calculated from initial suicide rates.

South Koreans will sometimes invest in North Korea as there will be some opportunity to build capitalism when communism fell down. They own the following attributes with initial values:


 * Is investor? - Boolean randomly calculated to be around 5% of the richest South Koreans.
 * Is investing? - Boolean initially false.

Patches
The patches will be divided proportionally by area of the respective countries and will be assigned wealth based on GDP of the country (random less than countries GDP).

The patches are also assigned with rentability which is deliberately set to around 1% for North Korea and 3% for South Korea. Rentability is then used to calculate wealth movement.

Simulation Mechanism

 * On each tick the simulation modifies attributes of turtles and patches:
 * randomly based on patch wealth if the North Korean is employed
 * based on the employment status, it changes the wealth of the patch and of the North Korean
 * based on the employment status, wealth and initial suicide rates, it determines if the North Korean will commit suicide (if he does, he's reborn)
 * based on neighbouring turtles of a South Korean investor in North Korea it will increase the wealth of his patch
 * On each tick, it will also determine:
 * If the North Korean will migrate based on his migration inclination and his wealth ratio
 * If a South Korean investor decides to invest in North Korea
 * Then it will move the agents that are determined to be moved.

The respective code looks like the following:

to go manipulate-resources move tick if ticks >= 250 [stop] end

to manipulate-resources ;; North Koreans ask north-koreans [ ;; determine employment status - the richer the patch is, the better chance to be employed set employed random-float 1 < patch-wealth / (sum [patch-wealth] of nk-patches / nk-patches-count) let suicidal false ifelse employed [     let wealthIncrease random-float (patch-wealth * patch-rentability) ;; wealth increase for employed person set turtle-wealth turtle-wealth + wealthIncrease set patch-wealth patch-wealth + random (wealthIncrease / 2) ;; increase patch wealth with 50% added value ifelse turtle-wealth > 0 [ set suicidal random-float 1 < random-float (suicide-inclination / nk-wealth-ratio) ;; has some wealth, let's determine if suicidal based on inclination and wealth ratio ]     [        set suicidal random-float 1 < random-float (suicide-inclination * 1.5) ;; totally broke, very big chance of suicide (but employed so less than if unemployed) ]   ]    [      let wealthDrain random-float (patch-wealth * (patch-rentability / 2)) ;; wealth drain for employed person (50% of rentability) set turtle-wealth turtle-wealth - wealthDrain set patch-wealth patch-wealth - (wealthDrain / 2) ;; decrease patch wealth with half of the person drain (subsidies for the person) ifelse turtle-wealth > 0 [ set suicidal random-float 1 < random-float ((suicide-inclination + suicide-inclination * 0.75) / nk-wealth-ratio) ;; suicide inclination increases by 75% if unemployed ]     [        set suicidal random-float 1 < random-float (suicide-inclination * 2) ;; totally broke and unemployed, very big chance of suicide ]   ]    if suicidal [ set nk-suicides nk-suicides + 1 ;; rebith turtle (so we keep the same amount of turtles) set-nk-init-turtle-vars ] ]  ;; South Koreans (investors) ask south-koreans [ if is-investor and is-investing [ set patch-wealth patch-wealth + (random-float 1.88 * (count turtles-here + count turtles-on neighbors)) ;; up to 50% of GDP per capita of SK (assuming wage share of 50%) ] ]  end

to move ask north-koreans [   ;; determine if prone to migration based on turtle's inclination to migrate and its wealth ratio if random-float 1 < turtle-migration / nk-wealth-ratio [        Move-to one-of patches with [pcolor = 109] ;; migrate to South Korea ] ]  ask south-koreans [   ;; determine if prone to migration based on turtle's wealth and potential to invest if is-investor [        set is-investing true Move-to one-of patches with [pcolor = 19] ;; migrate to North Korea to invest ] ] end

Simulation Outputs
The simulation shows:


 * A chart of outmigration rate.
 * Unemployment rate among North Koreans.
 * Suicide rate among North Koreans.
 * Wealth ratio between North and South Korea.

=Results=


 * The simulation run for 250 ticks consistently results in around 10% - 12% unemployment rate amongst North Koreans.
 * That is a value that could be realistic.
 * The outmigration rate from North Korea stabilizes itself on approx. 0.3%, rising more steeply in the beginning.
 * This value also looks realistic and means that some North Koreans will migrate to South Korea but not (almost) everyone.
 * The suicide rate amongst North Koreans sadly comes to approx. 4%.
 * This value is quite alarming and let's hope that the model is wrong in this particular part.
 * The ratio between North and South Korea wealth increases very slightly from initial 2.71% to 2.73%.
 * Also here, the result is questionable and would probably call for re-evaluation of the formulas, since the growth of wealth seems very very slow.

=Conclusion=

If we are to trust the designed model, the main concern will be a huge suicide rate amongst North Koreans and very slow growth of North Korea wealth relative to South Korea.

The migration and unemployment rates, however, seem quite moderate and realistic.

The model simplifies a very complex issue and assumes some deliberate facts and measures, therefore it might not be very accurate. Despite that, I think that it could be a good start for future work and by extending the model and making it more precise, we could, to an extent, capture a quite realistic scenario what would happen after the reunification of the two Koreas.

=Code=

The NetLogo file is available here:. Alternatively also externally here.