diff --git a/module3/exo3/exercice_R_fr.org b/module3/exo3/exercice_R_fr.org index 9b4621dc3e25a85923544e27b79dd0626139a5df..6a925351e08c659477e2b52d4d857828df75f8cb 100644 --- a/module3/exo3/exercice_R_fr.org +++ b/module3/exo3/exercice_R_fr.org @@ -202,4 +202,190 @@ l'analyse de nos données. * Reproduction des résultats de William Playfair -TODO +Avant d'effectuer nos propres opérations sur les données receuillies, +tentons de reproduire le +[[https://upload.wikimedia.org/wikipedia/commons/3/3a/Chart_Showing_at_One_View_the_Price_of_the_Quarter_of_Wheat%2C_and_Wages_of_Labour_by_the_Week%2C_from_1565_to_1821.png][graphe]] +proposé par William Playfair dans son étude. + +Celui-ci représentait l'évolution du prix du blé à l'aide de barres, +un barre par tranche de 5 années, et l'évolution des salaires à l'aide +d'une aire bleue délimitée d'une courbe rouge. + +Pour reproduire ce graphe nous allons utilisé la librairie /ggplot2/, +qui permet une création de graphe simple, étape par étape. + +#+begin_src R :results silent :session *R* +library(ggplot2) +#+end_src + +** Évolution du prix du blé + +Comme introduit plus tôt, nous souhaitons visualiser l'évolution du +prix du blé au cours du temps à l'aide d'un /barplot/, que nous obtenons +via la fonction /geom_bar()/. + +#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* +p <- ggplot(table, aes(x=Year)) + geom_bar(stat="identity", aes(y=Wheat)) +p +#+end_src + +#+RESULTS: +[[file:/tmp/babel-Oq2fjp/figureKb9HYv.png]] + +Notons que, puisque nous avons supprimée les entrées pour lesquelles +nous n'avions pas de valeurs pour la colonne /Wages/, les trois +dernières barre du graphe original ne sont pas présentes dans notre +reproduction. + +** Évolution des salaires + +Dans l'étude de Playfair, l'évolution des salaires était représentée à +l'aide d'une aire bleue délimitée par une courbe rouge. + +Pour reproduire cela nous utilisons la fonction /geom_area()/ pour +l'aire et la fonction /geom_line()/ pour la ligne de délimitation. + +#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* +p <- p + geom_area(aes(y=Wages),stat="identity",fill="lightblue") +p <- p + geom_line(aes(y=Wages),color="red",size=2) +p +#+end_src + +#+RESULTS: +[[file:/tmp/babel-Oq2fjp/figurehiCWPa.png]] + +** Ajout de divers éléments + +Maintenant que nous avons affiché nos données dans un graphe à la +manière de Playfair, nous allons procéder à quelques ajouts pour nous +rapprocher du graphe initial, tels que: + +- Changer le label de l'axe des ordonnées en "Shillings" +- Répartir l'axe des ordonnées en divisions de 5 shillings +- Répartir l'axe des abscisses en divisions de 10 années +- Ajouter un titre + +#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* +p <- p + ylab("Shillings") +p <- p + scale_y_continuous(breaks=seq(0,100,5),sec.axis=sec_axis(~.,name=derive(),breaks=derive())) +p <- p + scale_x_continuous(breaks=seq(min(table$Year),max(table$Year),10)) + theme(axis.text.x = element_text(angle=45)) +p <- p + ggtitle("Showing at one view the price of the quarter of Wheat and Wages of labour by the week") +p +#+end_src + +#+RESULTS: +[[file:/tmp/babel-Oq2fjp/figurehqdsjW.png]] + +* Mise à jour du graphe de Playfair + +Lors de la sortie de ses travaux, Playfair était un pionnier de la +présentation graphique des données. + +Cependant, certains choix de représentation ne sont plus admissible de +nos jours. + +Dans cette section nous proposons des modifications pour mettre le +graphe de Playfair en adéquation avec les normes actuelles. + +** Différenciation entre Prix et Salaires + +Dans son graphe, Playfair combine "Shillings par quart de boisseau de +blé" et "Shillings par semaine" en une seule unité "Shillings", ce qui +n'est plus acceptable de nos jours. + +Notre première modification du graphe de Playfair consistera donc à +différencier les unités "Shillings par quart de boisseau de blé" et +"Shillings par semaine" en utilisé deux axes distinct. + +Pour ce faire nous utilisons simplement le paramètre /sec.axis/ de la +fonction /scale_y_continuous()/. + +#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* +ggplot(table, aes(x=Year)) + + geom_bar(aes(y=Wheat), stat="identity") + + geom_area(aes(y=Wages), stat="identity", fill="lightblue") + + geom_line(aes(y=Wages), stat="identity", color="red",size=2) + + ylab("Price of the Quarter of Wheat in Shillings") + + scale_y_continuous(breaks=seq(0,100,5),sec.axis=sec_axis(~.,name="Weekly Wages in Shillings",breaks=derive()))+ + scale_x_continuous(breaks=seq(min(table$Year),max(table$Year),10)) + theme(axis.text.x = element_text(angle=45)) + + ggtitle("Showing at one view the price of the quarter of Wheat and Wages of labour by the week") +#+end_src + +#+RESULTS: +[[file:/tmp/babel-Oq2fjp/figurel7s6rU.png]] + +** Autre représentation + +Mixer ensemble un /barplot/ et un /linechart/, mis à part dans des cas +très spécifiques, peut rendre compliquer la comparaison des données. + +De nos jours, il est préférable d'utiliser le même type de +représentation graphique lors de la comparaison entre deux données. + +Cependant, il nous faut dans un premier temps retravailler le format +de nos données à l'aide de la fonction /melt()/ de la librairie /reshape2/, +afin de rendre plus aisé leur représentation à l'aide de /ggplot/. + +#+begin_src R :results output :session *R* :exports both +library(reshape2) +n_data <- melt(table, id.vars="Year", measure.vars=c("Wheat","Wages")) +summary(n_data) +#+end_src + +#+RESULTS: +: +: Year variable value +: Min. :1565 Wheat:50 Min. : 5.00 +: 1st Qu.:1625 Wages:50 1st Qu.: 7.90 +: Median :1688 Median :27.25 +: Mean :1688 Mean :26.86 +: 3rd Qu.:1750 3rd Qu.:40.12 +: Max. :1810 Max. :99.00 + +Une première représentation possible est d'utiliser des barres les +prix et pour les salaires, cela afin de rendre plus aisée leur +comparaison. + +#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* +ggplot(n_data, aes(x=Year, y=value, fill=variable)) + + geom_bar(stat="identity",position=position_dodge()) + + ylab("Price of the Quarter of Wheat in Shillings") + + scale_y_continuous(breaks=seq(0,100,5),sec.axis=sec_axis(~.,name="Weekly Wages in Shillings",breaks=derive()))+ + scale_x_continuous(breaks=seq(min(table$Year),max(table$Year),10)) + theme(axis.text.x = element_text(angle=45)) +#+end_src + +#+RESULTS: +[[file:/tmp/babel-Oq2fjp/figureJPGcBM.png]] + +Cependant, si cette représentation permet de comparer prix du blé et +salaire hedbomadaire, la prix du blé reste assez volatile et il est +compliqué d'observer l'évolution conjointe de ces deux données. + +Pour ce faire nous allons plutôt utiliser une représentation par nuage +de points et régressions à l'aide des fonctions /geom_point()/ et +/geom_smooth()/. + +#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* +ggplot(n_data,aes(x=Year,y=value, color=variable)) + + geom_point() + + geom_smooth() + + ylab("Price of the Quarter of Wheat in Shillings") + + scale_y_continuous(breaks=seq(0,100,5),sec.axis=sec_axis(~.,name="Weekly Wages in Shillings",breaks=derive()))+ + scale_x_continuous(breaks=seq(min(table$Year),max(table$Year),10)) + theme(axis.text.x = element_text(angle=45)) +#+end_src + +#+RESULTS: +[[file:/tmp/babel-Oq2fjp/figureQM6mAu.png]] + +Avec cette dernière représentation, nous pouvons observer une +augmentation quasi-linéaire des salaires depuis environ l'année +1700, ainsi qu'une diminution du prix du blé jusqu'à environ l'année +1750, ce qui peut laisser supposer à une augmentation du "pouvoir +d'achat" des salariés. + +Cependant, nous pouvons aussi observer qu'à partir de 1750 (environ), +le prix du blé a augmenté de manière drastiquement plus rapidement que +les salaires hebdomadaire. + +Cette observation remet quelque peu en question l'augmentation du +pouvoir d'achat des salariés décrite par William Playfair.