Commit 24a9f2f1 authored by Matthieu Haas's avatar Matthieu Haas

Exercice 3 // Pouvoir d'achat des ouvriers anglais

parent 852442ca
--- ---
title: "Votre titre" title: Le pouvoir d'achat des ouvriers anglais du XVI<sup>ème</sup> au XIX<sup>ème</sup>
author: "Votre nom" siècle
date: "La date du jour" author: "Matthieu Haas"
output: html_document date: "3 février 2021"
output:
pdf_document: default
html_document: default
--- ---
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
Préambule : cet exercice s'insère dans le MOOC "Recherche Reproductible" disponible [ici](https://www.fun-mooc.fr/courses/course-v1:inria+41016+self-paced/about). Dans ce document, on s'intéressera à l'évolution du pouvoir d'achat des ouvriers anglais du XVI<sup>ème</sup> au XIX<sup>ème</sup> siècle. Les données proviennent d'un graphique célèvre de William Playfair, pionnier de la présentation graphique.
## Introduction
## Quelques explications Le premier travail est de trouver la source, le lien, des données.
```{r}
url = "https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Wheat.csv"
```
Il faut ensuite télécharger le fichier et l'intégrer à l'environnement de travail R.
```{r}
data = read.csv(url,
header = TRUE,
sep = ",",
row.names = 1)
head(data)
```
On vérifie ensuite les données manquantes.
```{r}
lines_na = apply(data, 1, function(x) any(is.na(x)))
data[lines_na,]
```
Notre jeu de données comportent des valeurs manquantes. On va enlever de l'analyse les lignes en question.
Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez <http://rmarkdown.rstudio.com>. ```{r}
data = data[complete.cases(data), ]
```
Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: ## Reproduction graphique
```{r cars} Dans cette partie, l'objectif est de reproduire le graphe de [Playfair](https://fr.wikipedia.org/wiki/William_Playfair#/media/File:Chart_Showing_at_One_View_the_Price_of_the_Quarter_of_Wheat,_and_Wages_of_Labour_by_the_Week,_from_1565_to_1821.png). Ainsi, le prix du blé et les salaires sont representés respectivement par des barres et une surface bleue délimitée par une courbe rouge. On utilisera le package [ggplot2](https://cran.r-project.org/web/packages/ggplot2/index.html).
summary(cars) ```{r}
# install.packages("ggplot2")
library(ggplot2)
```
Une fois qu'on a installé et chargé le package, on peut se lancer dans la représentation graphique des données d'intérêt. Dans un premier temps, on va se concentrer sur le prix du blé en fonction du temps. GGplot est un outil qui va permettre d'ajouter, étape par étape, des "couches à notre graphique.
```{r}
g = ggplot(data,
aes(x = Year, y = Wheat)) +
geom_step() +
theme_light()
g
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: On ajoute ensuite l'évolution des salaires au graphique.
```{r pressure, echo=FALSE} ```{r}
plot(pressure) g = g +
geom_line(aes(y = Wages),
color = "firebrick",
na.rm = TRUE, size = 2.5) +
geom_area(aes(y = Wages),
fill = "steelblue3",
na.rm = TRUE,
alpha = 0.9) +
coord_cartesian(expand = FALSE,
clip = "off")
g
``` ```
Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. On modifie ensuite les axes et l'arrière plan pour coller au maximum au graphique originel.
Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. ```{r}
g = g +
scale_x_continuous(limits = c(1565, 1830),
breaks = c(1565, seq(1600, 1800, by = 50), 1830),
minor_breaks = seq(1565, 1830, by = 5),
name = "") +
scale_y_continuous(limits = c(0, 100),
breaks = seq(0, 100, by = 10),
name = "",
sec.axis = sec_axis(~., name = "Prix du blé (shillings)",
breaks = seq(0, 100, by = 10))) +
theme(axis.text = element_text(size = 7),
axis.title.y.right = element_text(angle = 90, size = 8))
g
```
## Amélioration de la représentation graphique
Dans ce deuxième temps, l'objectif est d'améliorer la présentation des données. Ainsi, on va utiliser des unités, et donc des ordonnées, distinctes pour les "shillings" en "shillings par quart de boisseau de blé" et "shillings par semaine". Contrairement à précédemment, on va intégrer l'ensemble de la construction graphique dans un seul chunk.
```{r}
ggplot(data, aes(x = Year, y = Wheat)) +
geom_step(aes(color = "Prix du blé", lty = "Prix du blé"),
alpha = 0.6, size = 0.8) +
geom_smooth(aes(color = "Courbe de prix du blé", lty = "Courbe de prix du blé"),
se = FALSE,
lwd = 0.5,
span = 0.5) +
geom_step(aes(y = Wages, color = "Salaire hebdomadaire", lty = "Salaire hebdomadaire"), alpha = 0.7) +
scale_color_manual(name = "",
limits = c("Prix du blé", "Courbe de prix du blé", "Salaire hebdomadaire"),
values = c("Prix du blé" = "firebrick1",
"Courbe de prix du blé" = "firebrick4",
"Salaire hebdomadaire" = "steelblue")) +
scale_linetype_manual(name = "",
limits = c("Prix du blé", "Courbe de prix du blé", "Salaire hebdomadaire"),
values = c("Prix du blé" = "solid",
"Courbe de prix du blé" = "dashed",
"Salaire hebdomadaire" = "solid")) +
scale_x_continuous(limits = c(1565, 1830),
expand = c(0, 0),
breaks = c(1565, seq(1600, 1800, by = 50), 1830),
minor_breaks = seq(1565, 1830, by = 5),
name = "Temps") +
scale_y_continuous(limits = c(0, 100),
expand = c(0, 0),
breaks = seq(0, 100, by = 10),
name = "Prix du blé (shillings)",
sec.axis = sec_axis(~., name = "Salaire hebdomadaire (shillings)",
breaks = seq(0, 100, by = 10))) +
theme_light() +
labs(title = "Prix du blé et salaire hebdomadaire",
subtitle = "(de 1565 à 1821)",
y = "") +
theme(legend.position = c(0.58, 0.76),
legend.title = element_blank(),
legend.text = element_text(size = 9),
legend.background = element_rect(color = "black"),
legend.spacing = unit(0.2, "cm"))
```
## Evolution du pouvoir d'achat
Initialement, l'objectif de Playfaire était de montrer que le pouvoir d'achat (i.e., la quantité de blé qu'un ouvrier peut acheter avec son salaire hebdomadaire) des ouvriers avait augmenté au cours du temps. Afin d'illustrer cette information, on va représenter le pouvoir d'achat au cours du temps. La première étape est donc de créer une variable pouvoir d'achat à tout temps de mesure.
```{r}
data$purchasing_power=data$Wages/data$Wheat
head(data)
```
On peut ensuite réaliser le graphique de l'évolution de ce pouvoir d'achat au cours du temps.
```{r}
ggplot(data,aes(x=Year, y = purchasing_power)) +
geom_smooth(se = FALSE,
lwd = 0.5,
lty = 1,
span = 0.4,
col="steelblue4") +
labs(x = "Temps",
y = "Pouvoir d'achat",
title = "Evolution du pouvoir d'achat au cours du temps") +
scale_x_continuous(limits = c(1565, 1830),
expand = c(0, 0),
breaks = c(1565, seq(1600, 1800, by = 50), 1830),
minor_breaks = seq(1565, 1830, by = 5),
name = "Temps")+
theme_light()
```
On observe ainsi que le pouvoir d'achat ne croît pas tout au long du laps de temps étudié. Il chute au milieu du XVI<sup>ème</sup> siècle.
D'autre part, on peut représenter graphiquement le prix du blé en fonction du salaire hebdomadaire, en s'affranchissant de l'axe du temps. Néanmoins, on veut faire apparaître ce paramètre. On va ainsi indiquer le siècle correspondant à chaque temps de mesure.
```{r}
data$century = substr(data$Year, 1, 2)
data$century = as.integer(data$century)
data$century = data$century +1
data$century = paste0(data$century,"ème")
head(data)
```
```{r}
ggplot(data,aes(x = Wages, y = Wheat, col = century))+
geom_point()+
labs(x = "Salaire hebdomadaire (shillings)", y = "Prix du blé (shillings)", col = "Siècle",title = "Représentation du prix du blé selon le salaire") +
scale_x_continuous(breaks = seq(5, 30, by = 5)) +
scale_y_continuous(breaks = seq(0, 100, by = 10)) +
theme_light() +
theme(legend.position = c(0.5, 0.9),
legend.direction = "horizontal",
legend.background = element_rect(color = "black"))
```
Enfin, on peut proposer un dernier graphique illustrant le pouvoir d'achat selon le salaire.
```{r}
ggplot(data,aes(x = Wages, y = purchasing_power))+
geom_point()+
geom_smooth(se = FALSE)+
labs(x = "Salaire hebdomadaire (shillings)", y = "Pouvoir d'achat", title = "Pouvoir d'achat en fonction du salaire") +
scale_x_continuous(limits = c(5, 30),
expand = c(0, 0),
# breaks = c(0, seq(10, 20, by = 5), 30),
minor_breaks = seq(5, 30, by = 1))+
theme_light() +
theme(legend.position = c(0.5, 0.9),
legend.direction = "horizontal",
legend.background = element_rect(color = "black"))
```
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. Ce graphique met en évidence une croissance du pouvoir d'achat parallèle à celle du salaire, jusqu'à un plafond de 20 shillings hebdomadaire. Au-delà, le pouvoir d'achat décroît.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment