GGSTATPLOT
Le package ggstatsplot est une extension de ggplot2 qui permet de créer
des graphiques enrichis de détails statistiques.
library(ggstatsplot)
# Exemple 1 : Relation entre une variable Qualitative et une variable
Quantitative : test de comparaison de deux moyennes
Les données :
poids.M<-
c(1150,1500,1700,1800,1800,1850,2200,2700,2900,3000,3100,3500,3900,400
0,5400)
n.M<-length(poids.M)
n.M
[1] 15 # 15 mâles
poids.F<-
c(300,700,850,900,1000,1420,1500,1500,1800,1800,1900,2200,2400)
n.F<-length(poids.F)
n.F
[1] 13 # 13 femelles
poids<-c(poids.M,poids.F)
length(poids)
[1] 28
genre<-c(rep("M",n.M),rep("F",n.F))
genre<-as.factor(genre)
length(genre)
[1] 28
don<-data.frame(poids,genre)
summary(don)
poids genre
Min. : 300 F:13
1st Qu.:1480 M:15
Median :1800
Mean :2099
3rd Qu.:2750
Max. :5400
head(don,5)
poids genre
1 1150 M
2 1500 M
3 1700 M
4 1800 M
5 1800 M
Pour une espèce animale, on souhaite savoir si le poids dépend du genre
(M = Male / F = Femelle).
On va supposer que le poids d’un mâle peut être modélisé par une variable
aléatoire distribuée normalement de moyenne 𝑀 et d’écart-type 𝑀 et que
le poids d’une femelle peut être modélisé par une variable aléatoire
distribuée normalement de moyenne 𝐹 et d’écart-type 𝐹 .
Les résultats du test de comparaison de deux variances qui sont indiqués
ci-dessous nous permet de conclure qu’il y a une différence significative
de la variance du poids entre les mâles et les femelles, au risque =
5 % de se tromper. La dispersion des poids n’est pas la même chez les
mâles et les femelles.
var.test(poids~genre,conf.level=0.95,data=don)
F test to compare two variances
data: poids by genre
F = 0.28833, num df = 12, denom df = 14, p-value = 0.03713
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.09452959 0.92444666
sample estimates:
ratio of variances
0.2883299
Les résultats du test de comparaison de deux moyennes qui sont indiqués
ci-dessous nous permettent de conclure que le poids moyen n’est pas le
même chez les mâles et les femelles (𝑀 𝐹 ). Par conséquent le facteur
genre a un effet significatif sur le poids de l’animal.
t.test(poids~genre,alternative="two.sided",conf.level=0.95,var.equal=F
,data=don)
Welch Two Sample t-test
data: poids by genre
t = -3.7496, df = 22.021, p-value = 0.001107
alternative hypothesis: true difference in means between group F and group M is not
equal to 0
95 percent confidence interval:
-2010.624 -578.607
sample estimates:
mean in group F mean in group M
1405.385 2700.000
On peut construire un graphique avec les résultats du test précédent à
l’aide de la fonction ggbetweenstats.
ggbetweenstats(data = don,x = genre,y = poids,type = "parametric",var.equal=F)
# Exemple 2 : Relation entre deux variables Quantitatives : test du
coefficient de corrélation
Les données :
Nous disposons de variables climatiques. On souhaiterait savoir s’il
existe une corrélation entre la variable X « maxO3 » (maximum d’ozone
journalier) et la variable Y « T12 » (température à midi).
don<-read.table(file.choose(),header=T)
names(don)
"maxO3" "T9" "T12" "T15" "Ne9" "Ne12" "Ne15" "Vx9" "Vx12"
"Vx15" "maxO3v" "vent" "pluie"
don1<-don[,c(1,3)]
summary(don1)
maxO3 T12
Min. : 42.00 Min. :14.00
1st Qu.: 70.75 1st Qu.:18.60
Median : 81.50 Median :20.55
Mean : 90.30 Mean :21.53
3rd Qu.:106.00 3rd Qu.:23.55
Max. :166.00 Max. :33.50
On suppose que le couple (X, Y) suit une loi binormale.
Les résultats du test du coefficient de corrélation indiqués ci-dessous
nous permettent de conclure, avec un risque d’erreur inférieur à 5 %,
qu’il y a une corrélation linéaire entre les deux variables étudiées.
resultat <- cor.test(x = don1$T12, y=don1$maxO3, method = "pearson",
alternative = "two.sided")
resultat
Pearson's product-moment correlation
data: don1$T12 and don1$maxO3
t = 13.258, df = 110, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.7006713 0.8466150
sample estimates:
cor
0.7842623
On peut construire un graphique avec les résultats du test précédent à
l’aide de la fonction ggscatterstats.
ggscatterstats(data = don1,x = T12,y = maxO3,type="pearson")
# Exemple 3 : Relation entre deux variables qualitatives : Test du Chi-
carré d’indépendance
Exemple de données
Une entreprise de vente par correspondance vend 5 produits (P1, P2, P3,
P4, P5) dans 4 régions (Ouest, Sud, Est, Nord). L’entreprise cherche à
savoir si la vente des produits dépend (ou ne dépend pas) de la région.
produit<-
c(rep("P1",164),rep("P2",141),rep("P3",175),rep("P4",117),rep("P5",83))
profil.p1<-
c(rep("Ouest",28),rep("Sud",36),rep("Est",21),rep("Nord",79))
profil.p2<-
c(rep("Ouest",14),rep("Sud",21),rep("Est",64),rep("Nord",42))
profil.p3<-
c(rep("Ouest",45),rep("Sud",25),rep("Est",38),rep("Nord",67))
profil.p4<-
c(rep("Ouest",33),rep("Sud",64),rep("Est",11),rep("Nord",9))
profil.p5<-
c(rep("Ouest",12),rep("Sud",23),rep("Est",7),rep("Nord",41))
region<-c(profil.p1,profil.p2,profil.p3,profil.p4,profil.p5)
don<-data.frame(produit,region)
Tableau de contingence :
mat <- table(don$produit,don$region)
mat
Est Nord Ouest Sud
P1 21 79 28 36
P2 64 42 14 21
P3 38 67 45 25
P4 11 9 33 64
P5 7 41 12 23
Les résultats du test du khi-2 d’indépendance indiqués ci-dessous nous
permettent de conclure, avec un risque d’erreur inférieur à 5 %, que la
vente des produits dépend de la région.
test <- chisq.test(mat)
print(test)
Pearson's Chi-squared test
data: mat
X-squared = 171.84, df = 12, p-value < 2.2e-16
On peut construire un graphique avec les résultats du test précédent à
l’aide de la fonction ggbarstats.
ggbarstats(data = don, x = region, y = produit, title = "Test du khi-2 avec ggbarstats")
On constate que chaque produit a un profil bien distinct avec tout de même un profil relativement similaire
entre les produits P1 et P5.