Banking access maps

 

Map week continues. I stumbled upon paper with a table showing banking sector branch and ATM penetration. It’s called “Reaching out: Access to and use of banking services across countries” and was written by Beck et al from World Bank. Unfortunately It’s behind a paywall.

What the authors have attempted among other things is to assess how easily people can access banking services. I was interested because of two things. First any sort of decent standard of living probably includes easy bank access. it’s difficult to buy anything large, like a home or to save for anything, like old age if you don’t have access to a bank.

The second thing is that from my perspective an ATM is ancient tech and this paper was written in 2006 which is not that long ago. I think this can be explained by two things: technology has advanced rather fast and living in a rich western country makes things easy. I can also add that visiting an actual physical bank feels like a waste of time. This is also why I think that these penetrations don’t really tell what the authors hope they would. I suspected that even during 2006 access to a physical bank had lost value as a proxy to good standard of living. However, Figure 1 shows a fair linear relationship between demographic ATM penetration and GDP per capita.

ATM penetration vs GDPFigure 1. Demographic ATM penetration vs. GDP per capita

 

Geographic branch penetrationMap 1. Geographic branch penetration. Branches per 1000 km2.

 

Demographic branch penetrationMap 2. Demographic branch penetration. Branches per 100k people.

 

Geographic ATM penetrationMap 3. Geographic ATM penetration. ATMs per 1000 km2.

 

Demographic ATM penetrationMap 4. Demographic ATM penetration. ATMs per 100k people.

Refugee maps

Map week continues. The first one was perhaps a bit boring. Mostly because the data was not normalized by area of each country. But you can still say something about the state of the economies.

Some data is better shown when split to categories. So, I made an algorithm that finds deciles from the data and colors the countries according to how they compare against these.

Refugees from country_DecilesMap 1. Number of refugees from country. Data from Wikipedia (Feb 2013)

From Map 1 it can easily be seen that refugees come from all over the globe, but again it should be noted that no correction for population is made. So for example from the numbers available in the map, when corrected for population Finland and the US could have the same number of refugees per capita. Refugees from the US number over 500 times more than from Finland, which is a much larger factor that the ratio of populations would suggest.

This type of map also conceals the fact that there are a couple of countries in the last group that have sent out a lot of refugees.

Refugees_from_countryMap 2. Origin of refugees, linear scale. Data from Wikipedia (Feb 2013)

Map 1 and Map 2 are based on the same data, but Afghanistan, Iraq and a couple of others really stand out from Map 2.

Where did the refugees go?

natives_per_refugee_DecilesMap 3. Natives per refugee population in that country. Data from Wikipedia (Feb 2013)

Map 3 also tells something about where refugees want/can go and what sort of burden they are for the host country. It doesn’t tell anything about how rich the receiving country is so the burden will still varies.

Color selection in the maps is all mine and I apologise. I have pretty much no artistic talent or taste for that matter. Perhaps I need to make an algorithm that calculates which colors would give maximum contrast between the groups. Then I could say that the selection is based on something other than me manually inserting hex values that seem to be far from each other.

 

 

Number of TV stations

 

countries tv stations_LogMap 1. Number of TV stations per country. Colors are set by calculating log(N+1), so the scale is not linear.

The map is based on Wikipedia’s list of countries by number of television broadcast stations (Feb 2013). I made it using my own Python script and it is based on this map. As the original map is in svg format it is fairly easy to add more text definitions to it in order to change colors and add the color bar.

The Executions map was made using Google’s tools, but I found the experience a bit cramped. I did look around to find a suitable tool set in the web, but there seemed to be something wrong with every one. Since I have wanted to do this for a long time I decided to go for it.

Why TV stations? It was the first list I found in Wikipedia that had many countries in it.

Edit: Map was updated 7 Feb. I found a bug in the code, it may have had an effect on the map.

Analysis of the 2012 municipal elections in Finland II

 

I have continued my study into Python programming, see part I for earlier results. The code might not be very pythonic, despite some effort to that direction. With a little sugar coating one might say that I’m being pragmatic, a cynic might tell that I lose my bad habits slowly. At least I have tried to comment a little bit, which makes it easier for me to remember what I have been attempting to do.

In the analysis I looked into the stability of the election result. This was done by a Monte Carlo analysis. Despite the fancy name in practice I just manipulated the result by introducing random changes and then calculated what the result would have been with the new vote counts.

My motive was the eternal discussion about people not voting and how an individual has little impact on the result.

The analysis went roughly like this:

  1. Query the database for the number of votes for each candidate and sum these to get the number of votes given to each party
  2. Manipulate the result and calculate a new result
  3. Repeat 2 many times
  4. Calculate the average number of seats for each party and make a note of the largest and smallest number of councilmen
  5. Continue from 2 using a larger deviation in the manipulation.

 

It would have been possible to directly query the database for the elected candidates, but I wanted to do the calculation myself and compare the result for the actual confirmed result. This gave the opportunity to check how well the algorithm works. The result I calculated was not the same for all municipalities, this is because in case of same distribution figures or within a party list with the same number of votes the result is decided by a lottery. Due to the random nature of the lottery, it’s result can not be repeated in the code. Instead I allocated the seats according to the order of an internal list.

It is good to note that the my results here are in some sense suggestive only, as the effort put to confirming that the code works correctly was not at a level that would be required for example for scientific publication.

The manipulation itself was done like this:

tot=EA[k][2]*(random.uniform(-1,1)*B[m]+1)

Or put in another way:Tuusiwhere,Tuusi2

The number of votes a party accumulated in the election was multiplied by a number that was between 0.999 and 1.001 when the delta was smallest and between 0 and 2 when the delta was largest. Each time the manipulation was done a random number was drawn for each of the parties. Drawing the random number and the manipulation was done 10 000 times for each municipality to see how the result varies for each value of B. It is good to note that selection of the number of iteration was based on the “I feel like it” method that has been criticized, sometimes harshly.

The selected manipulation method doesn’t directly match with any real situation, although it is similar for example to cases where the active members of a local election team catch the plague at a critical moment or a rich benefactor enables a particularly well funded campaign. In these cases the changes in the result might be similar to what is seen in the images below. The mean number of seats gives a hint on where the number of seats gained has mostly been, close to maximum or minimum.

The clearest result can be seen in how much must the number of votes change to change the result. In the figures parameter B is shown as “delta=x” where x is the value of B used. If the minimum and maximum number of seats (red bar in the figures) gained do not differ from the average (blue in the figures) the result has been the same for all iterations, which can be interpreted as a stable result at this level of variation in the voting behaviour.

It should be noted that because the number of votes a party got in the voting is used as basis for calculations, it is not possible to get candidates elected even with large deltas if the party got for example three votes in the actual election. On the other hand even a large number of votes quickly evaporates when the value of R is very close to minus one. When the changes in the number of votes are large, it is possible that the overall number of votes given can be larger that the number of eligible voters in the municipality.

I chose five municipalities at random and looked at their result more closely: Janakkala, Kalajoki, Karkkila, Liperi and Savukoski.

I use the commonly used abbreviations for the larger parties in the text below.

In Janakkala the number of PS councilmen could have changed with a 5 % change in the number of votes they got, in absolute terms this means 54 votes. Similarly KESK could have gotten one seat more with the same relative change, corresponding to 84 votes. With a 20 % change KD could have lost their only seat.

In Savukoski if one person more would have made their way to the polling station and voted for PS the result would have been different. PS would have gotten as many councilmen as VAS. In the real elections VAS got three times as many seats as PS. Whether this would have changed any decisions is of course a different question.

Janakkala0.02Figure1. With a maximum change of 2 % the Janakkala result is unchanged.

 

Janakkala0.05Figure 2. With a maximum change of 5 % the number of councilmen can change. SDP and PS could lose two seats. With these changes KESK would always gain if there was a change, although most of the time it gets the same result.

 

Janakkala0.2Figure 3. With a maximum change of 20 % any part of the result can be different from the real one.

In figures 1 through 3 increase in parameter B starts to show as larger variation in the result. In Janakkala the result is most stable for KD and the for VIHR.

Kalajoki0.1Figure 4. In Kalajoki Pro, SDP and VIHR have fairly stable results since a 10 % change wouldn’t have an effect in their number of councilmen.

 

Kalajoki0.2Figure 5. It turns out the one VIHR seat is the most stable. KD would rather lose their seat than gain more.

 

Karkkila0.02Figure 6. In Karkkila the result would first start to change between SDP and VAS at the 2 % level, SDP would lose one seat.

 

Karkkila0.05Figure 7. At the 5 % level only KESK has a stable result.

 

Karkkila0.1Figure 8. In Karkkila the parties had fairly similar results, at the 10 % level changes can be seen in all the results.

 

Liperi0.01Figure 9. In Liperi the first changes can be seen between PS and YL LS at 1 % level.

 

Savukoski0.005Figure 10. In the Savukoski council half a percent change in the number of votes can change the result. However it would most likely not change any decisions.

 

Savukoski0.05Figure 11. At 5 % level KESK could lose its majority.

Table 1.JaKaKaLiSa_2

Executions (per 100 000 people)

I was inspired by a Google+ conversation about this figure. So I took numbers of executions from here and population from here (28 January 2013). Execution numbers are from 2011 and population, I think from 2008 to 2011. Malaysia and Syria were not included as no number was given in the source for the number of executions. For China I rounded the number to 1000 even though the source gives an estimate from about 1000 to 4000. The original spreadsheet can be found here

Executions per 100kFigure 1. Number of executions per 100 000 people in 2011

 

log executions per 100 kFigure 2. Log(number of executions per 100 000 people)*(-1). Same as figure 1 but emphasizes differently.

Executions histogram

Figure 3. Histogram of execution densities.

Table 1. Data the images are based on.

Execution data

Edit: Added Figure 3.

Translate »