A la découverte des statistiques européennes d'Eurostat
La semaine dernière, j’ai découvert la base de données de l’office statistique de l’Union Européenne : Eurostat. Cette agence a pour mission de fournir, en accès libre, des statistiques validées et harmonisées (autrement dit comparables d’un pays à l’autre) sur l’Europe. Je connaissais cette agence de nom, mais je n’avais encore jamais consulté sa base de données.Et j’ai trouvé ça vraiment intéressant !
D’autant plus, que j’ai aussi découvert qu’il existe un package, également nommé “eurostat” (développé par Leo Lahti et al.), qui propose un certain nombre d’outils pour faciliter l’analyse de ces données statistiques.
Je vous propose donc de découvrir la base de données Eurostat et comment l’analyser avec le package eurostat.
La base de données Eurostat
La base de données est accessible gratuitement ici :
On retrouve alors un arbre de navigation organisé sous la forme de Tableaux et d’une base de données. Les tableaux contiennent seulement une sélection des données présentent dans la base, qui elle contient l’ensemble des données rendues publiques par Eurostats.
En allant dans le détail de l’arbre de navigation, on a alors accès aux fichiers de données disponibles ( en cliquant sur l’icône zip).
En cliquant sur le premier icône, on a accès à une représentation des données sous la forme d’un tableau. Ici par exemple pour la ligne “Captures dans toutes les régions de pêche (tag00076) ” :
D’autres infos sont disponibles à partir des onglets graphiques et carte.
Comme mentionné précédemment, en cliquant sur l‘icone Zip, il est possible de télécharger les données. Celle-ci sont au format.tsv. Pour celles et ceux que ce format inquiéterait, pas de panique, on peut charger directement les fichiers dans R à l’aide du package eurostat (sans se soucier du format) !
Les package eurostat
Le package eurostat dispose d’une feuille aide mémoire disponible sur la page cheatsheet de R Studio .
Installation
Le package s’installe à partir de CRAN, en utilisant l’outil d’installation de R Studio :
Recherche des jeux de données Eurostat par mot clé
Le package eurostat permet de chercher des jeux de données dans la base d’Eurostat en employant la fonction search_eurostat(). Ici nous allons chercher les jeux de données correspondant au mot-clé “fish”.
library(eurostat)
files_fish <-search_eurostat("fish", type="table")
files_fish
## # A tibble: 3 x 8
## title code type `last update of~ `last table str~ `data start`
##
## 1 Catc~ tag0~ table 20.11.2018 20.11.2018 2006
## 2 Esti~ sdg_~ table 12.11.2018 12.11.2018 2003
## 3 Asse~ sdg_~ table 12.11.2018 12.11.2018 2003
## # ... with 2 more variables: `data end` , values
Trois fichiers sont disponibles. Pour avoir une meilleure visibilité, je vous conseille de visualiser le data frame contenant la recherche en double cliquant sur l’objet crée, dans la partie Data de la fenêtre en haut à droite :
Cela permet d’ouvrir un tableur, comme dans Excel ! Vous pourrez d’ailleurs appliquer un filtre, ou trier les variables par ordre alphabétique, ou par ordre croissant :
Charger un jeu de données
Pour charger un jeu de données, il suffit alors d’utiliser la fonction get_eurostat(), en spécifiant dans l’argument id, le code du fichier désiré. Par exemple, pour le fichier “Catches in all fishing regions” :
fish_catches <- get_eurostat(id="tag00076", time_format = "date")
fish_catches
## # A tibble: 324 x 6
## species fishreg unit geo time values
##
## 1 F00 0 TLW BE 2006-01-01 22519.
## 2 F00 0 TLW BG 2006-01-01 5630.
## 3 F00 0 TLW CY 2006-01-01 2098.
## 4 F00 0 TLW DE 2006-01-01 276078.
## 5 F00 0 TLW DK 2006-01-01 867803.
## 6 F00 0 TLW EE 2006-01-01 83940.
## 7 F00 0 TLW EL 2006-01-01 96695.
## 8 F00 0 TLW ES 2006-01-01 680739.
## 9 F00 0 TLW EU28 2006-01-01 5253811.
## 10 F00 0 TLW FI 2006-01-01 112933.
## # ... with 314 more rows
Le jeu de données est alors chargé en format long. Sur le site d’Eurostat, il y avait une colonne par année. Dans le jeu de données chargé, les données des différentes années sont les unes sous les autres, et une nouvelle colonne “time” a été créée. Pour plus d’info sur le format long, vous pouvez consulter cet article.
Pourquoi en format long ? Parce que c’est plus pratique pour manipuler les données avec le package dplyr et les visualiser avec le package ggplot2.
Ajouter des labels
Grace à la fonction label_eurostat(), vous pouvez rendre certaines modalités de variables plus intelligibles :
fish_catches2 <-label_eurostat(fish_catches)
fish_catches2
## # A tibble: 324 x 6
## species fishreg unit geo time values
##
## 1 All aquatic~ Total fish~ Tonnes l~ Belgium 2006-01-01 2.25e4
## 2 All aquatic~ Total fish~ Tonnes l~ Bulgaria 2006-01-01 5.63e3
## 3 All aquatic~ Total fish~ Tonnes l~ Cyprus 2006-01-01 2.10e3
## 4 All aquatic~ Total fish~ Tonnes l~ Germany (until 19~ 2006-01-01 2.76e5
## 5 All aquatic~ Total fish~ Tonnes l~ Denmark 2006-01-01 8.68e5
## 6 All aquatic~ Total fish~ Tonnes l~ Estonia 2006-01-01 8.39e4
## 7 All aquatic~ Total fish~ Tonnes l~ Greece 2006-01-01 9.67e4
## 8 All aquatic~ Total fish~ Tonnes l~ Spain 2006-01-01 6.81e5
## 9 All aquatic~ Total fish~ Tonnes l~ European Union (c~ 2006-01-01 5.25e6
## 10 All aquatic~ Total fish~ Tonnes l~ Finland 2006-01-01 1.13e5
## # ... with 314 more ro
Ici par exemple la variable geo contient à présent les noms entier des pays.
Manipulation avec la package dplyr
Par exemple, si je veux calculer la moyenne des pêches pour chaque pays, entre 2006 et 2017, et les ordonner de la plus grande à la plus petite:
library(dplyr)
fish_catches2 %>%
group_by(geo) %>%
summarise(avg=mean(values, na.rm=TRUE))%>%
arrange(desc(avg))
## # A tibble: 27 x 2
## geo avg
##
## 1 European Union (current composition) 4948667.
## 2 Norway 2209593.
## 3 Iceland 1241532.
## 4 Spain 823436.
## 5 Denmark 741067.
## 6 United Kingdom 642694.
## 7 France 505265.
## 8 Turkey 482720.
## 9 Netherlands 366484.
## 10 Ireland 244677.
## # ... with 17 more rows
Ou encore, si je veux conserver uniquement les données de la France :
fish_catches2 %>%
filter(geo=="France")
## # A tibble: 12 x 6
## species fishreg unit geo time values
##
## 1 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2006-01-01 5.83e5
## 2 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2007-01-01 5.49e5
## 3 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2008-01-01 4.90e5
## 4 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2009-01-01 4.30e5
## 5 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2010-01-01 4.40e5
## 6 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2011-01-01 4.87e5
## 7 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2012-01-01 4.61e5
## 8 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2013-01-01 5.29e5
## 9 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2014-01-01 5.44e5
## 10 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2015-01-01 4.97e5
## 11 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2016-01-01 5.25e5
## 12 All aquatic org~ Total fishing ~ Tonnes live w~ Fran~ 2017-01-01 5.29e5
Pour plus d'exemples de manipulation avec le package dplyr, consultez cet article.
Visualisation
Par exemple, pour représenter l’évolution, dans le temps, des prises des 5 pays estimés comme étant les plus gros pécheurs :
top5 <- fish_catches2 %>%
filter(geo %in% c("Norway","Iceland", "Spain","Denmark","United Kingdom" ))
library(ggplot2)
ggplot(top5, aes(y=values, x=time, colour=geo)) +
geom_point(size=2)+
geom_line(size=1.25)
Cartographie
Le package propose également des fonctions pour réaliser des cartographies. Voici un exemple tiré de la vignette du package :
dat <- get_eurostat("tgs00026", time_format = "raw", stringsAsFactors = FALSE) %>%
# subsetting to year 2014 and NUTS-2 level
dplyr::filter(time == 2014, nchar(geo) == 4) %>%
# classifying the values the variable
dplyr::mutate(cat = cut_to_classes(values))
geodata <- get_eurostat_geospatial(resolution = "60", nuts_level = "2", year = 2013)
map_data <- inner_join(geodata, dat)
ggplot(data=map_data) + geom_sf(aes(fill=cat),color="dim grey", size=.1) +
scale_fill_brewer(palette = "Oranges") +
guides(fill = guide_legend(reverse=T, title = "euro")) +
labs(title="Disposable household income in 2014",
caption="(C) EuroGeographics for the administrative boundaries
Map produced in R with a help from Eurostat-package <github.com/ropengov/eurostat/>") +
theme_light() + theme(legend.position=c(.8,.8)) +
coord_sf(xlim=c(-12,44), ylim=c(35,70))
Pour aller plus loin:
Vous trouverez d’autres informations, pour aller plus loin dans l’exploitation des données d’Eurostat avec le package eurostat, en consultant :
J’espère que cet article vous donnera envie d’aller jeter un coup d’œil sur les données européennes disponibles dans la base de données d’Eurostat. Mais aussi que la simplicité d’utilisation du package eurostat vous donnera envie de les regarder d’encore plus près !
Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee
Crédit photo : openclipart.
Bonjour Claire,
Merci de nous permettre d’enrichir nos connaissance. Article très informatif.