utilisation potentielle de r dans un institut de statistique publique

45
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects . . Utilisation de R à la DMIS (ANSD) Ahmadou H. Dicko Ahmadou H. Dicko Utilisation de R à la DMIS (ANSD)

Upload: ahmadou-dicko

Post on 21-Jan-2018

85 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

.

.Utilisation de R à la DMIS (ANSD)

Ahmadou H. Dicko

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 2: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Introduction

R est l’un des langage pour l’analyse de données les plusutilisés dans le monde

Le nombre d’utilisateurs est estimé à 2 millions (2014)

Le langage est en fort croissance et est de plus en plus adoptépar des organismes

En 2011, l’ONUDI écrit un rapport sur l’utilisation de R enstatistiques publiques

Quelques années plus tard, en 2014, il est adopté par plusieursinstituts de statistiques publiques

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 3: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Plan

...1 C’est quoi R ?

...2 Programmation R

...3 Importation de données avec R

...4 Cartographie avec R

...5 Interfacer un SGBD avec R

...6 Autres aspects

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 4: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Historique

R est un langage interpreté qui tirent ses racines de S, Lisp,schemesQuelques dates importantes :

1990 : Ross Ihaka et Robert Gentleman développent R1996 : le projet devient open source2000 : la version 1.0 de R voit le jour2015 : R 3.2 sort en Avril et il y a plus de 6000 packages (add-ons)

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 5: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Points fort de R

R est gratuit et open source

R a de bon outils pour la manipulation des données

Les graphiques R sont de très bonnes qualités

De nombreux outils pour faire rapports et des outils web

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 6: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Plan

...1 C’est quoi R ?

...2 Programmation R

...3 Importation de données avec R

...4 Cartographie avec R

...5 Interfacer un SGBD avec R

...6 Autres aspects

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 7: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Concepts importants

Un package R est en ensemble de fonctionnalité généralementorganisé autour d’un thème (ou pas)

Travailler sur R nécessite d’écrire des lignes de commandes (pastoujours)

Rstudio est un environnement de travail pour R (mais y end’autres… ESS)

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 8: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Environnement de travail: Rstudio

1

2

3

4

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 9: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Environnement de travail: Emacs ESS

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 10: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage : R calculatrice ?

c(pi, 4 * pi / 3)

[1] 3.1416 4.1888

log(cos(pi / 3))

[1] -0.69315

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 11: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage : R calculatrice ?

a <- 25

a

[1] 25

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 12: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage : vecteur

c(1, 2, 10)

[1] 1 2 10

c("Ali", "Modou", "Marie")

[1] "Ali" "Modou" "Marie"

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 13: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage : matrice

(m <- matrix(c(1, 2, 10, 9), nrow = 2))

[,1] [,2][1,] 1 10[2,] 2 9

m[1, 2]

[1] 10

m[, 2]

[1] 10 9

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 14: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage : list

c("Ali", 10, "Marie")

[1] "Ali" "10" "Marie"

list("Ali", 10, "Marie")

[[1]][1] "Ali"

[[2]][1] 10

[[3]][1] "Marie"

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 15: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: data.frame

(df <- data.frame(nom = c("Ali", "Modou", "Marie"),taille = c(170, 185, 165)))

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 16: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: data.frame

df$nom

[1] Ali Modou MarieLevels: Ali Marie Modou

df[df$taille > 165, ]

nom taille1 Ali 1702 Modou 185

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 17: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: data.frame

library(dplyr)

df %>% select(nom)

nom1 Ali2 Modou3 Marie

df %>% filter(taille > 165)

nom taille1 Ali 1702 Modou 185

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 18: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: fonction

carré <- function(x) x^2

carré(-8)

[1] 64

carré(c(1, 10, -5))

[1] 1 100 25

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 19: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: graphique

barplot(df$taille, names.arg = df$nom, col = "steelblue")

Ali Modou Marie

050

100

150

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 20: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: graphiqueplot(mpg ~ wt, data = mtcars, pch = 19, las = 1, cex = 0.8)abline(lm(mpg ~ wt, data = mtcars), col = "red")

2 3 4 5

10

15

20

25

30

wt

mpg

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 21: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: graphique

library(ggplot2)ggplot(df, aes(nom, taille)) +geom_bar(stat = "identity", fill = "steelblue")

0

50

100

150

Ali Marie Modounom

taille

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 22: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Base du langage: graphique

ggplot(mtcars, aes(wt, mpg)) +geom_point(shape = 19) +geom_smooth(method = "lm", se = FALSE, colour = "red")

10

15

20

25

30

35

2 3 4 5wt

mpg

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 23: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Plan

...1 C’est quoi R ?

...2 Programmation R

...3 Importation de données avec R

...4 Cartographie avec R

...5 Interfacer un SGBD avec R

...6 Autres aspects

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 24: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Lecture de fichier Excel (< 2007)

(df1 <- read_excel("foreign/taille.xls"))

Source: local data frame [3 x 2]

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 25: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Lecture de fichier Excel 2007+

(df2 <- read_excel("foreign/taille.xlsx"))

Source: local data frame [3 x 2]

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 26: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Lecture de fichier SPSS

library(haven)(df3 <- read_sav("foreign/taille.sav"))

Source: local data frame [3 x 2]

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 27: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Lecture de fichier Stata

(df4 <- read_dta("foreign/taille.dta"))

Source: local data frame [3 x 2]

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 28: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Ecriture de fichier

On peut exporter des fichier vers Excel

library(openxlsx)write.xlsx(list("feuille_df4" = df4, "feuille_df3" = df3),

file = "foreign/new.xlsx")

On peut aussi exporter des fichier SPSS (ou Stata)

write_sav(df2, path = "foreign/new.sav")

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 29: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Plan

...1 C’est quoi R ?

...2 Programmation R

...3 Importation de données avec R

...4 Cartographie avec R

...5 Interfacer un SGBD avec R

...6 Autres aspects

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 30: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Ouvrir des données spatiales avec R

library(rgdal)library(rgeos)village <- readOGR(dsn = "spatial/loc", layer = "loc")

OGR data source with driver: ESRI ShapefileSource: "spatial/loc", layer: "loc"with 10537 featuresIt has 25 fields

class(village)

[1] "SpatialPointsDataFrame"attr(,"package")[1] "sp"

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 31: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Ouvrir des données spatiales avec R

routes <- readOGR(dsn = "spatial/routes", layer = "roads")

OGR data source with driver: ESRI ShapefileSource: "spatial/routes", layer: "roads"with 1526 featuresIt has 15 fields

class(routes)

[1] "SpatialLinesDataFrame"attr(,"package")[1] "sp"

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 32: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Ouvrir des données spatiales avec R

region <- readOGR(dsn = "spatial/reg", layer = "reg")

OGR data source with driver: ESRI ShapefileSource: "spatial/reg", layer: "reg"with 14 featuresIt has 4 fields

class(routes)

[1] "SpatialLinesDataFrame"attr(,"package")[1] "sp"

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 33: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Faire des cartes avec Rplot(region)lines(routes, col = "darkgrey")points(village, pch = 21, cex = 0.025, col = "steelblue")

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 34: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Opération spatiale avec Rroutes5k <- gBuffer(routes, byid = TRUE, width = 5000) ### unite en mplot(routes5k)points(village[routes5k, ], pch = 21, cex = 0.025, col = "steelblue")

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 35: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Opération spatiale avec Rset.seed(42)n <- length(region)sub_loc <- lapply(seq(n),

function(id) spsample(region[id, ], n = 3, type = "random"))sub_loc <- do.call(rbind, sub_loc)plot(region)points(sub_loc, pch = 19, cex = 0.001, col = "red")

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 36: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Plan

...1 C’est quoi R ?

...2 Programmation R

...3 Importation de données avec R

...4 Cartographie avec R

...5 Interfacer un SGBD avec R

...6 Autres aspects

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 37: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

Parfois il arrive de travailler avec des ”big data”

R utilise la mémoire vive par défautIl est alors possible d’interfacer un SGBD:

Possibilité de faire des calculs sans charger la base en mémoireWorkflow plus simple pour des organisations qui déjà unsystème en place

R dispose d’un driver pour virtuellement tout les système:SQLite, SQL Server, Postgres, MySQL, Access, etc.

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 38: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

library(DBI)library(RSQLite)conn <- dbConnect(SQLite(), "db/taille.db")

dbListTables(conn)

[1] "taille"

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 39: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

dbListFields(conn, "taille")

[1] "nom" "taille"

dbGetQuery(conn, "SELECT * FROM taille")

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 40: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

dbGetQuery(conn, "SELECT nom from taille WHERE taille > 165")

nom1 Ali2 Modou

dbDisconnect(conn)

[1] TRUE

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 41: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

db <- src_sqlite("db/taille.db")

Warning message:dbGetInfo is deprecated: please use individual metadata functions instead

df <- tbl(db, "taille")df

Source: sqlite [db/taille.db]From: taille [3 x 2]

nom taille1 Ali 1702 Modou 1853 Marie 165

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 42: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

df %>% filter(taille > 165) %>% select(nom)

Source: sqlite [db/taille.db]From: taille [2 x 1]Filter: taille > 165

nom1 Ali2 Modou

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 43: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Interfacer un SGBD avec R

collect(tbl(db, sql("select nom from taille where taille > 165")))

Source: local data frame [2 x 1]

nom1 Ali2 Modou

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 44: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Autres aspects

Il existe des packages pour l’imputation des donnéesmanquantes:

Amelia : Algorithme EMmice : Méthode des équations chainées

Des fonctions pour réaliser l’anonymisation selon les standardsIHSN sont disponibles:

package sdcMicro et sdcMicroGUI

Possibilité de créer des templates pour des rapportsautomatiques sous plusieurs formats

R à de plus en plus d’outils pour développer rapidement desapplications web de diffusion de données

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)

Page 45: Utilisation potentielle de R dans un institut de statistique publique

C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects

Conclusion

Le point fort R réside dans:les 6000 packages existantsla dynamique autour du langagela flexibilité du langage et la capacité à améliorer lesfonctionnalité

R est de facto le langage pour le traitement des données

De nombreuses agences de statistiques utilisent R aujourd’hui

Beaucoup d’autres continuent à remplacer SAS / SPSS par R

Ahmadou H. Dicko

Utilisation de R à la DMIS (ANSD)