1.2 Statistiques de base avec R

1.2.1 Fonctions statistiques de base

Plusieurs fonctions de base sont disponibles pour réaliser les calculs présentés à la leçon Statistiques descriptives. Par exemple, on peut obtenir la moyenne arithmétique à l’aide de la fonction mean( ):

##On crée un vecteur
variable <- c(1.2, 1.5, 2.3, 2.1, 0.1, 5.4, 6.1, 3.2)
##Moyenne arithmétique
mean(variable)
## [1] 2.7375

On peut calculer l’écart-type d’un échantillon à l’aide de la fonction sd( ), et la variance à l’aide de var( ):

##Écart-type
sd(variable)
## [1] 2.072223
##Écart-type
sqrt(var(variable))
## [1] 2.072223
##Carré moyen des erreurs
MSE <- sum((variable - mean(variable))^2)/(length(variable) - 1)
##Racine-carrée du MSE = écart-type
sqrt(MSE)
## [1] 2.072223

La médiane s’obtient facilement à l’aide de la fonction median( ):

##on calcule la médiane
median(variable)
## [1] 2.2

De façon plus générale, on peut obtenir les quantiles d’un échantillon (quartiles, déciles, percentiles) à l’aide de quantile( ):

##Quartiles
quantile(variable)
##    0%   25%   50%   75%  100% 
## 0.100 1.425 2.200 3.750 6.100
##Déciles
quantile(variable, prob = c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1))
##  10%  20%  30%  40%  50%  60%  70%  80%  90% 100% 
## 0.87 1.32 1.56 1.98 2.20 2.48 3.11 4.52 5.61 6.10
##2.5ième et 97.5ième percentiles
quantile(variable, prob = c(0.025, 0.975))
##   2.5%  97.5% 
## 0.2925 5.9775

Bien qu’il n’existe pas de fonctions toute prête pour calculer l’erreur-type, on peut l’obtenir facilement:

sd(variable)/sqrt(length(variable))
## [1] 0.7326414

1.2.2 Distribution statistiques

R comprend plusieurs distributions statistiques, ce qui rend obsolètes les tables de distributions statistiques que l’on utilisait autrefois. Les noms des fonctions de distributions statistiques commencent typiquement par la lettre “d”, telles que dnorm( ), dchisq( ), dpois( ), pour les fonctions de densité de la distribution normale, du khi-carré et de Poisson, respectivement. Ainsi, l’énoncé \(f(x \: \vert \: \mu, \sigma) = \frac{1}{\sigma \sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x - \mu}{\sigma})^2}\) se traduit dans le langage R par dnorm(x, mean, sd). On peut donc solutionner \(f(x = 3.4 \: \vert \: 4.1, 1.5) = \frac{1}{1.5 \cdot \sqrt{2\pi}}e^{-\frac{1}{2}(\frac{3.4 - 4.1}{1.5})^2}\) avec :

##Calculer densité de probabilité
dnorm(x = 3.4, mean = 4.1, sd = 1.5)
## [1] 0.2385223

1.2.2.1 Probabilité cumulative

On peut obtenir la probabilité cumulative associée à \(P(x \leq 2.3 \:\mathrm{cm})\) dans une population avec N(\(\mu = 4\), \(\sigma = 12\)) directement à l’aide de pnorm(q, mean, sd):

##Probabilité cumulative P(x <  2.3)
pnorm(q = 2.3, mean = 4, sd = 12)
## [1] 0.4436717

Il est aussi possible de calculer l’écart normal \(z\) pour obtenir la probabilité cumulative :

##Probabilité cumulative à partir du z
z <- (2.3 - 4)/12
pnorm(q = z, mean = 0, sd = 1)
## [1] 0.4436717

On peut calculer le complément, \(P(x > 2.3 \:\mathrm{cm})\):

##P(x > 2.3)
1 - pnorm(q = 2.3, mean = 4, sd = 12)
## [1] 0.5563283
##P(x > 2.3) à l'aide de l'argument lower.tail
pnorm(q = 2.3, mean = 4, sd = 12, lower.tail = FALSE)
## [1] 0.5563283

À noter que l’argument lower.tail permet de spécifier la partie gauche de la distribution. Par défaut, cet argument prend la valeur TRUE, ce qui veut dire que pnorm() donne la probabilité cumulative associée à \(P(x \leq 2.3 \: \mathrm{cm})\). Si lower.tail = FALSE, c’est la probabilité cumulative pour la portion droite de la distribution qui est calculée, \(P(x > 2.3 \: \mathrm{cm})\).

1.2.2.2 Fonction de quantile

Alors que pnorm() nous donne la probabilité cumulative pour un quantile et N(\(\mu, \sigma)\) donnés, qnorm() permet d’obtenir le quantile associé à une probabilité cumulative et N(\(\mu, \sigma)\) donnés.

##On connaît q, on veut trouver p
pnorm(q = 1.96, mean = 0, sd = 1)
## [1] 0.9750021
##On connaît p, on veut trouver q
qnorm(p = 0.975, mean = 0, sd = 1)
## [1] 1.959964

1.2.2.3 Nombres aléatoires

On peut générer des nombres aléatoires provenant d’une distribution normale avec une moyenne et un écart-type donnés à l’aide de rnorm(). Par exemple, pour générer un échantillon de 30 observations provenant d’une distribution normale avec une moyenne de 5.2 (\(\mu = 5.2\)) et un écart-type de 9.3 (\(\sigma = 9.3)\), on procède ainsi:

rnorm(n = 30, mean = 5.2, sd = 9.3)
##  [1]  13.1015654   3.8738390   2.0262907  25.1906398   6.3453853  12.2407041   9.9600473  16.3554930  15.3004219  15.6653143  -5.2363812
## [12]   2.1361361   0.3011311  14.2673387 -17.7739916  -9.3026133 -11.3246507   6.8461550   3.0471042  13.6141250   2.4075361  17.5214902
## [23]  10.1071673  14.4077108  25.9460656  18.9730143   3.3120000 -11.0342477  -1.2842154  15.6671290
##Un autre échantillon
rnorm(n = 30, mean = 5.2, sd = 9.3)
##  [1]  11.0324419   7.1440206 -11.0511271  18.7920010  11.7094413   8.1519404 -14.1162357   2.9833200   8.4015529  17.3012837  -1.6124270
## [12]  11.4817626   8.4525334  20.8241061   6.0612455   6.3076262   5.5756312   7.0758825   0.2320317  17.5802586 -11.3374816  13.0301788
## [23]   1.6610982  12.3144666   9.8947239   1.9675440   1.5977410  16.0794961   9.2248124   6.3589486
##Un autre échantillon
rnorm(n = 30, mean = 5.2, sd = 9.3)
##  [1]   3.891076   6.437654  13.138934  27.669089  17.389767  13.206080   0.112985   9.177399   6.017124  -6.590139   3.678571   6.841689
## [13]   3.725873   2.247831  11.103295  14.638092  21.593551   9.881414   5.958514  12.310294  19.159532  27.288737  -4.554230  15.513337
## [25]  -1.683616  -6.203075   6.073358 -18.626672  17.349910   5.408616
##Un autre échantillon
rnorm(n = 30, mean = 5.2, sd = 9.3)
##  [1] 19.0235248 19.2177859 -5.0853282 -0.1873660 -1.7421399 11.3806105  0.9224508  6.8150620 23.1308349  0.3419082  7.2135617 15.9216558
## [13]  6.0659350 -1.1036486 -5.2447363 26.4559092  3.1149812  5.3037353 -0.5228139 -0.9207635 12.1369322  9.7821762 12.9507889  9.5936729
## [25] -2.8227169 -8.0050764 -7.6184817  6.4950019 11.1006956  3.7684386

On remarque qu’à chaque fois que l’on utilise rnorm(), on obtient un résultat des observations (aléatoires) différentes.