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( ):
## [1] 2.072223
## [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( ):
## [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( ):
## 0% 25% 50% 75% 100%
## 0.100 1.425 2.200 3.750 6.100
## 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.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:
## [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 :
## [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):
## [1] 0.4436717
Il est aussi possible de calculer l’écart normal \(z\) pour obtenir la probabilité cumulative :
## [1] 0.4436717
On peut calculer le complément, \(P(x > 2.3 \:\mathrm{cm})\):
## [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.
## [1] 0.9750021
## [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:
## [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
## [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
## [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
## [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.