Programmer en R/Les fonctions statistiques de base

Un livre de Wikilivres.

Moyenne, médiane, variance et écart-type[modifier | modifier le wikicode]

Nom des fonctions[modifier | modifier le wikicode]

R dispose de fonctions pour calculer les paramètres descriptifs d'une variable statistique :

  • mean : Calcul de la moyenne
  • median : Calcul de la médiane
  • sd : Calcul de l'écart-type (standard déviation en anglais)
  • var : Calcul de la variance

La variance et l'écart-type correspondent a et , Attention : les fonctions dans R ne calculent pas directement la variance et l'écart-type, mais leurs estimateurs sans biais : et

Ces fonctions ont une syntaxe similaire :

fonction (x, …)

La variable x désigne un vecteur contenant les données que l'on souhaite traiter. Les données consistent en des nombres entiers, réels ou complexes, le calcul étant également possible sur des dates.

Ces fonctions disposent de paramètres dont la description complète est donnée dans la documentation de R.

Exemples[modifier | modifier le wikicode]

Le plus fréquemment, x est un vecteur, c'est le cas de l'exemple ci-dessous.

> x <- c(1, 6, 3, 4, 9, 6)
> mean (x)
[1] 4.833333
> median (x)
[1] 5
> var (x)
[1] 7.766667
> sd (x)
[1] 2.786874

La fonction median() ne peut pas être utilisée sur un data.frame. Pour les autres fonctions, voilà ce que l'on obtient :

> df <- data.frame (A = c(1, 2, 7, 4), B = c(5, 2, 4, 1))
> mean (df)
  A   B 
3.5 3.0 
> var (df)
           A          B
A  7.0000000 -0.3333333
B -0.3333333  3.3333333
> sd (df)
       A        B 
2.645751 1.825742

La moyenne a donc été calculée sur chacune des colonnes du data.frame, le résultat est un vecteur, indexe par le nom des colonnes de df. Si m <- mean(df), on a alors m[1] = m['A'] = 3,5.

La fonction var() calcule la matrice de covariance des colonnes de df. Le résultat est une matrice dont on accède aux différents coefficients soit par leur numéro de ligne et de colonne, soit par les index 'A' et 'B'.

Pour l'écart-type, on obtient le vecteur correspondant à l'écart-type de chacune des colonnes de df.

Pour terminer, ces fonctions permettent également des calculs sur des matrices :

> m <- matrix (c(1, 3, 4, 5, 6, 7, 7, 8), 4, 2)
> m
     [,1] [,2]
[1,]    1    6
[2,]    3    7
[3,]    4    7
[4,]    5    8
> mean (m)
[1] 5.125
> median (m)
[1] 5.5
> var (m)
         [,1]      [,2]
[1,] 2.916667 1.3333333
[2,] 1.333333 0.6666667
> sd (m)
[1] 1.7078251 0.8164966

La moyenne et la médiane ont été calculées sur l'ensemble des coefficients de la matrice. La fonction var() calcule la matrice de covariance, et la fonction sd() calcule le vecteur des écart-type de chacune des colonne de m.

Que faire si des valeurs sont absentes ?[modifier | modifier le wikicode]

Le paramètre na.rm est un paramètre qui peut prendre les valeurs TRUE ou FALSE, par défaut sa valeur est FALSE.

  • na.rm = TRUE : force le calcul en ne tenant compte que des valeurs présentes ;
  • na.rm = FALSE : interdit le calcul lorsque des valeurs sont absentes.
> x = c(1, 6, 3, NA, 9, 6)
> x
[1]  1  6  3 NA  9  6
> mean (x)
[1] NA
> mean (x, na.rm = TRUE)
[1] 5
> m = matrix (c(1, 3, 4, 5, 6, NA, 7, 8), 4, 2)
> m
     [,1] [,2]
[1,]    1    6
[2,]    3   NA
[3,]    4    7
[4,]    5    8
> var (m, na.rm = TRUE)
         [,1] [,2]
[1,] 4.333333    2
[2,] 2.000000    1

Le calcul mean (x) s'est avéré impossible, alors que la commande mean (x, na.rm = TRUE) a calculé la moyenne des cinq nombres 1, 6, 3, 9, 6. Dans le cas de la matrice m, c'est toute la deuxième ligne qui a été retirée comme on peut le vérifier :

> m = matrix (c(1, 4, 5, 6, 7, 8), 3, 2)
> m
     [,1] [,2]
[1,]    1    6
[2,]    4    7
[3,]    5    8
> var (m)
         [,1] [,2]
[1,] 4.333333    2
[2,] 2.000000    1