Comparaison entre Excel et R : Analyses statistiques et graphiques

Vous utilisez Excel pour faire vos graphiques et peut-être même vos analyses statistiques mais vous commencez à avoir marre des difficultés et vous envisagez de passer à R mais vous hésitez, voici des arguments pour arrêter de tergiverser et de sauter le pas 😀

Dans notre dernier article nous avons commencé à comparer Excel et R, nous allons aujourd’hui continuer sur notre lancée en parlant des analyses statistiques de base : test de Student, test du \(\chi\)2 (prononcé Chi ou Khi 2)… et des représentations graphiques : courbe, histogramme…

Les données

Les données utilisées sont les mêmes que dans le dernier article et disponible ici.

Exploration visuelle des données par des graphiques

En fonction du nom du parc

Pour faire une exploration visuelle, nous allons commencer par regarder les données en fonction du nom du parc.
Pour Excel, pas de soucis pour faire un graph de l’année d’ouverture en fonction du nom. Il suffit de sélectionner les colonnes puis Insertion et là vous choisissez le type de graphique, ici nous avons un graphique en courbes auquel la ligne reliant tous les points a été retirée.

Pour R non plus ce n’est pas difficile, même si l’écriture en ggplot2 peut faire peur aux débutants. Pour plus d’infos à propos de cette syntaxe rendez-vous ici et ici pour un aide mémoire de ggplot2 en français.

library(stringr)
library(ggplot2)
ggplot(donnees_parcs_jardins) + geom_point(aes(x=nom_ev, y=annee_ouve)) + scale_x_discrete(labels = substring(donnees_parcs_jardins$nom_ev,1,20)) + theme(axis.text.x = element_text(size = 5, angle=90))

Bon c’est bien beau mais si maintenant je veux le faire pour l’année d’ouverture, l’année de rénovation, l’année ou le nom à changé etc… Comment je fais ?
Et bien avec Excel c’est très simple, il faut tous les faire un par un 😀 !
Avec R il est possible d’automatiser ceci avec deux solutions :
– Faire avec map
– Ecrire une fonction
Les deux solutions sont valables, cela dépend des besoins. La fonction va permettre de rappeler le même format de graphique à nouveau plus tard, le mapping est moins long à écrire.
Il est bien sûre possible de conjuguer les deux 😀 .

library(purrr)
format_de_graphique<-function(df, x, y){
  ggplot(df) + geom_point(aes(x = x, y = y)) + scale_x_discrete(labels = substring(x,1,20)) + theme(axis.text.x = element_text(size = 5, angle=90))
}
map(.x = donnees_parcs_jardins[,c(3:5)], .f = ~ format_de_graphique(df = donnees_parcs_jardins, x = donnees_parcs_jardins$nom_ev, y = .x))
## $annee_ouve

$annee_reno

$annee_chan

Nombre de parcs par arrondissement

Maintenant interéssons nous un peu plus au données, est-il possible d’avoir rapidement et graphiquement le nombre de parcs par arrondissement ?

Pour Excel, j’ai utilisé un histogramme comme graphique. Le soucis c’est que l’on ne voit pas grand chose à part que 410 parcs n’ont pas d’arrondissement de renseigné et que 3 sont “hors-Paris”.

Pour R, on obtient la même chose sauf que l’on peut “zoomer” en fonction des limites que l’on donne à l’axe des abscisses.

ggplot(donnees_parcs_jardins) + geom_histogram(aes(ardt)) + xlim(75000,75020) + theme_minimal()

Nombre de parcs ouverts ou fermés

Maintenant regardons le même genre de graphique, la quantité de parcs ouverts et/ou fermés.
Et là, nous avons perdu Excel, impossible pour lui de faire un graphique simple avec une unique variable qualitative alors que cela ne pose pas de soucis à R !

ggplot(donnees_parcs_jardins) + geom_bar(aes(ouvert_fer)) + theme_minimal()

Personnalisation des graphiques

Jusqu’à présent nous nous sommes intéressé aux graphiques basiques mais grâce aux compétences de R nous pouvons faire des graphiques bien plus poussées mais nous ne les détaillerons pas ici.
Maintenant on va regarder un peu les statistiques que l’on peut faire sur les données.

Analyse statistique

Statistiques univariées

Les statistiques univariées ont pour but de décrire une variable.

Variables qualitatives

Pour les variables qualitatives on peut regarder la nombre qu’il y a dans chaque catégorie.
Si R le fait très facilement avec par exemple la fonction table du package de base pour Excel encore une fois, c’est plus compliqué.
Il faut utiliser la fonction NB.SI(Plage = donnes_a_lire, Critère) et faire chaque catégorie une par une. Par exemple pour connaître le nombre de parcs “ouverts”, “fermés”, non-renseigné et “ouverts et fermé”, il faut marquer les formules suivantes dans 4 cellules différentes :
NB.SI(Plage = I:I, "O")NB.SI(Plage = I:I, "F")NB.SI(Plage = I:I, "")NB.SI(Plage = I:I, "O et F")

Quatre c’est encore faisable, pour faire tous les arrondissements c’est l’horreur et si vous voulez croiser les deux je vous laisse imaginer le travail (avec la fonction NB.SI.ENS() si vous voulez vous amuser…).

Variables quantitatives

Là ça va mieux pour Excel, trouver le minimum (MIN()) ou le maximum (MAX()) calculer une moyenne (MOYENNE()), la variance(VAR()), l’écart-type (ECARTYPE.PEARSON()), une médiane (MEDIANE()), des quartiles (QUARTILES()), il sait faire.
Il faut le faire un paramètre à la fois, mais ça va.
Bon évidement R le fais mieux 🙂 avec min(), max(), mean(), var, sd(), median(), quantile() du package {base}.

Statistiques bivariées

Corrélation

Excel a une fonction qui permet de donner la covariance entre deux variables COEFFICIENT.CORRELATION() mais elle ne donne ni le degré de liberté ni la statistique de test associé.
Avec R il existe deux fonction du package {stats}, cor() qui donne la même chose que la fonction Excel et cor.test() qui donne plus d’informations.
L’avantage de R par rapport à Excel, c’est que l’on peut modifier le niveau de confiance, la méthode utilisée…

cor(donnees_parcs_jardins$annee_ouve, donnees_parcs_jardins$annee_reno)
## [1] 0.2007289
cor.test(donnees_parcs_jardins$annee_ouve, donnees_parcs_jardins$annee_reno)
 
##  Pearson's product-moment correlation
## data:  donnees_parcs_jardins$annee_ouve and donnees_parcs_jardins$annee_reno
## t = 6.2821, df = 940, p-value = 5.101e-10
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1386325 0.2612532
## sample estimates:
## 0.2007289

Les autres tests

Comme précédemment, Excel et R peut faire des tests statistiques simples : test de Student (T.TEST() et t.test()), test du Chi 2 (CHISQ.TEST() et chisq.test()), comparaison de deux variances (F.TEST() et var.test).
A chaque fois Excel donne la valeur simple sans autre information quand R est plus généreux.

Statistiques multivariés

En téléchargeant l’utilitaire d’analyse Analysis ToolPak dans Excel il est possible de faire quelques tests multivariés comme des ANOVA mais c’est moins puissant qu’Excel.
Par exemple, l’ANOVA est limité à une facteur explicatif qualitatif et un quantitatif.
A vous de voir en fonction de vos besoin 😀 .

Vous avez encore des doutes sur le fait d’abandonner Excel pour R, allez voir le tweet d’Ettore Rizza.

Voici pour le deuxième et dernier article de comparaison d’Excel et de R dans Rstudio. En espérant que ça vous ai encore plus donné envie de pratiquer R 😉 .
Si vous avez des questions n’hésitez pas à nous en faire part dans les commentaires.


Commentaires


À lire également