Opérations statistiques de base avec R
L'essentiel de cette page !
Calculer une moyenne avec mean(), une médiane avec median(), un écart-type avec sd(), des quartiles avec summary() ou des corrélations avec cor() ou, mieux encore, cor.test()...
Voici quelques fonctions statistiques de bases.
Attention : pour les calculs complexes de moyennes (dont les moyennes pondérées par itération pour écarter les valeurs aberrantes), des moyennes multiples par modalité ou encore les intervalles de confiance : il faut aller voir cette page !
Fonctions de base pour calculer ou faire des statistiques avec R.
Encadré : variance, écart-type (n, n-1) ou erreur standard
On utilise souvent ces termes de variance, d'écart-type (où on divise parfois par n ou n-1). On parle aussi d'erreur standard.
Attention, tous ces termes sont différents (voir sources externes en bas de page).
Ce qu'on doit retenir :
Un écart-type est la racine carrée de la variance
La variance est la somme des carrés des différences entre chaque valeurs et la moyenne divisé par n ou n-1
On divise par n quand on calcule la moyenne à partir d'une population complète
Sinon on divisera par n-1 : il s'agit ici du cas général !
L'erreur standard est l'intervalle de confiance ! cf. page pour calculer les intervalles de confiance !
ATTENTION : lorsqu'on fait un graphique avec des barres d'erreur, on comme souvent l'erreur de mettre les écart-types alors que l'erreur standard (intervalle de confiance à 95%) serait plus pertinent.
Moyenne : Obtenir la moyenne d'un vecteur x.
mean(x)
mean(x, na.rm = TRUE) # s'il y a des valeurs vides NA
Médiane : Obtenir la valeur médiane d'un vecteur x
median(x)
Ecart-type : Obtenir l'écart-type d'un vecteur x.
sd(x)
sd(x, na.rm = TRUE) # s'il y a des valeurs vides NA
Variance : Obtenir la variance d'un vecteur x.
var(x)
Maximum : La valeur maximale de x.
max(x)
Minimum : La valeur minimale de x.
min(x)
Minimum & Maximum :
range(x)
Trier les valeurs d'un vecteur dans l'ordre croissant ou décroissant
#Ordre croissant
sort(x)
#Ordre décroissant
sort(x, TRUE)
Caractéristiques statistiques : Obtenir diverses données statistiques.
summary(x)
Déterminer le coefficient de corrélation entre deux vecteur x et y.
cor(x, y)
Déterminer le coefficient de corrélation entre deux vecteur x et y associé à une p-value. Test de corrélation de Pearson.
cor.test(x, y)
# Ex : même si cor = 0.5 si p-value très faible : corrélation très significative !
Mettre en relation des données de deux listes (création d'une matrice)
table(x, y)
Établir les données connues à deux échantillons
x <- rnorm(1000,20,3) # population
ech_1 <- sample(x,100) # échantillon 1
ech_2 <- sample(x,100) # échantillon 2
commun <- intersect(ech_1,ech_2)# Partie commune
length(ech_1)*length(ech_2)/length(commun) # estimation de la taille de la population x (qui fait 1000 en réalité)
Une méthode très performante pour appliquer n'importe quel calcul (moyenne ou autre) à chaque catégorie ou en croisant les catégories : fonction by()
val <- rnorm(20)
val2 <- rnorm(200,20,3)
sx <- c(rep("F",100),rep("M",100))
sport <- c(rep("S",20),rep("NO",120),rep("S",60))
data <- data.frame(val,val2,sx,sport)
result <- by(data[,2],data[,3:4],mean) ; result # J'ai ainsi la moyenne de la variable 2 pour les filles, les garçons qu'ils soient sportifs ou non.
barplot(result,beside=T)
3- Décrire les données d'un tableau de façon rapide et efficace
Afficher un bilan statistique complet pour chaque variable et chaque catégorie
data(iris)
summary_by_species <- aggregate(iris[,1:4], by=list(Species=iris$Species), summary)
summary_by_species
install.packages("pastecs") ;
library("pastecs")
stat.desc(iris)
# Pour appliquer une fonction systématique en fonction d'un critère
data(iris)
as.numeric(names(by(iris[,1],iris$Sepal.Length,mean)))
plot(as.numeric(names(by(iris[,2],iris$Sepal.Length,mean))) , by(iris[,2],iris$Sepal.Length,mean))