As of 31 December 2015, how many refugees and migrants will UNHCR report as having arrived in Europe by sea? Europe is facing a refugee crisis […]. Question will be resolved using the data available on UNHCR’s Emergency Response Page for the Mediterranean as of 31 December 2015 (http://data.unhcr.org/mediterranean/regional.html ).
– from an Open Good Judgment Question
The code is in the public domain and I encourage you to play! (CC BY 3.0) Roland Kofler. Any Idea how to improve? Contact me via Gmail: my name separated by a dot.
Source on GitHub
Found the freaking raw data
Its all about Lesbos!
October=10
September=9 #you get the idea
reportedAmount=723221 #1 November
aMillion=10^6
N=10000;
projectionMonth=30/26;
arrivals2014= c(3270, 4369, 7283, 17084, 16627, 26221, 28303, 33478, 33944, 23050, 13318, 9107)
arrivals2015= c( 5546, 7343, 10184, 29441, 40117, 53987, 75485, 130839, 172845, 220535, 128324*projectionMonth)
lesbosArrivals2014= c(290, 413, 555, 620, 461, 824, 873, 1064, 1778, 2072, 959, 802)
lesbosArrivals2015= c(737, 1002, 3348, 4990, 7228, 14796, 23721, 56579, 95384, 135021, 81691*projectionMonth)
greeceArrivals2014= c(955, 1001, 1501, 1257, 1703, 3198, 3927, 6742, 7454, 7432, 3812, 2056)
greeceArrivals2015= c(1690, 2945, 7634, 13133, 18444, 30717, 51951, 107843, 156457, 210824, 125311*projectionMonth)
syrianRefugees=4000000
arrivalsFor2Years <- c(arrivals2014, arrivals2015)
arrivalTimeseries <- ts(arrivalsFor2Years, start=c(2014, 1), end=c(2015, 11), frequency=12)
lesbosArrivalsFor2Years <- c(lesbosArrivals2014, lesbosArrivals2015)
lesbosTimeseries <- ts(lesbosArrivalsFor2Years, start=c(2014, 1), end=c(2015, 11), frequency=12)
greeceArrivalsFor2Years <- c(greeceArrivals2014, greeceArrivals2015)
greeceTimeseries <- ts(greeceArrivalsFor2Years, start=c(2014, 1), end=c(2015, 11), frequency=12)
The trend has reversed in November
suppressMessages(library(forecast, quietly = TRUE, warn.conflicts = FALSE, verbose=F))
#monthplot(arrivalTimeseries)
#library(forecast)
seasonplot(arrivalTimeseries)
#seasonplot(lesbosTimeseries)
seasonplot(greeceTimeseries)
Lesbos is the main door to the EU, being the greatest Island of the EU only a few km ashore of Turkey it is reachable with a dingi boat
plot(lesbosArrivals2015/ lesbosArrivals2014[1:11], type = 'o', main="Lesbos 2015 vs Lesbos 2014")
plot(greeceArrivals2015/greeceArrivals2014[1:11], type = 'o', main="Greece 2015/2014")
changeRateLesbosArrivalsYoY <- lesbosArrivalsFor2Years/arrivalsFor2Years
plot(changeRateLesbosArrivalsYoY, type = 'o', main="How Lesbos became the door to Europe", xlab="month since Jan 2014", ylab="*100=% of Lesbos Refugees to Total")
If you are a Refugee Maximalista – someone who believes that more than a million will come – its worth to take a look at How Greek Island behaved in Winter 2014
UNHCR has a useful Map of minimal temperatures
Snow cover in the Balkans http://data.unhcr.org/mediterranean/uploads/uploadsmediterranean/images/documents/dt_mediterranean_111.jpg
if refugee inflow behave the same like last year in greece
changeMoM= greeceArrivals2015[11]/greeceArrivals2015[10]
we get changeMoM=0.6858309
arrivalsImputedFuture= c(arrivalsFor2Years, arrivals2015[11] * changeMoM)
arrivalTimeseriesWithImputedFutureValues <- ts(arrivalsImputedFuture, start=c(2014, 1), end=c(2015, 12), frequency=12)
seasonplot(arrivalTimeseriesWithImputedFutureValues);
BIG OPEN Question: how to estimate our Standard Deviation? I’ve calibrated it according to what my subjective upper and lower boundary of uncertainty is. Theory: https://en.wikipedia.org/wiki/Calibrated_probability_assessment more than 1,050,000 would mean growth, and less than 900,000 is a dramatic shutdown, both unlikely but possible.
standardDeviation= 0.18
weight= rnorm(N, mean=changeMoM, sd=standardDeviation)
arrivalsNovember = arrivals2015[11]
arrivalsDecember = arrivalsNovember * weight
futureArrivals= arrivalsNovember + arrivalsDecember
refugeesAmount = reportedAmount + futureArrivals
plot(refugeesAmount)
abline(h=aMillion, col="red");
abline(h=mean(refugeesAmount), col="green");
overAmillion = refugeesAmount > 10^6
ProbabilityOverMillion= sum(overAmillion)/N
print(ProbabilityOverMillion * 100)
## [1] 15.24