--- title: Le pouvoir d'achat des ouvriers anglais du XVIème au XIXème siècle author: "Matthieu Haas" date: "3 février 2021" output: pdf_document: default html_document: default --- ```{r setup, include=FALSE} 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ème au XIXème siècle. Les données proviennent d'un graphique célèvre de William Playfair, pionnier de la présentation graphique. ## Introduction 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. ```{r} data = data[complete.cases(data), ] ``` ## Reproduction graphique 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). ```{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 ``` On ajoute ensuite l'évolution des salaires au graphique. ```{r} 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 ``` On modifie ensuite les axes et l'arrière plan pour coller au maximum au graphique originel. ```{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ème 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")) ``` 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.