VaultBy ENSAMIENParrainage
Note

Fiche statistiques avec R

Dans les exemples, data est le tableau de données et X la variable étudiée.

Importer les données

# Fichier texte avec en-tête, séparateur ; et virgule décimale
data <- read.table(file = fichier, header = TRUE, sep = ";", dec = ",")

# CSV classique
data <- read.csv(fichier, header = TRUE)

Accéder à une variable

data$X
data[, "X"]

Identifier le caractère

length(data$X)   # taille n
str(data$X)      # type
summary(data$X)  # résumé : min, quartiles, moyenne, max

Paramètres de position

mean(data$X)       # moyenne
median(data$X)     # médiane
quantile(data$X)   # quartiles

Paramètres de dispersion

range(data$X)              # min et max
diff(range(data$X))        # étendue
var(data$X)                # variance corrigée (divise par n - 1)
sd(data$X)                 # écart-type corrigé
IQR(data$X)                # écart interquartile Q3 - Q1
sd(data$X) / mean(data$X)  # coefficient de variation

var et sd donnent toujours la version corrigée. Pour la variance théorique : mean((data$X - mean(data$X))^2).

Tableau statistique (variable discrète)

eff     <- table(data$X)    # effectifs
freq    <- prop.table(eff)  # fréquences
effCum  <- cumsum(eff)      # effectifs cumulés
freqCum <- cumsum(freq)     # fréquences cumulées

Graphiques

hist(data$X)                         # histogramme (variable continue)
barplot(table(data$X))               # diagramme en bâtons (variable discrète)
boxplot(data$X)                      # boîte à moustaches
boxplot(data$X, horizontal = TRUE)   # boîte à moustaches horizontale

Données groupées en classes

milieux  <- (borne_inf + borne_sup) / 2
mean_est <- weighted.mean(milieux, effectif)   # moyenne estimée

Médiane estimée : on repère la classe médiane, celle où l'effectif cumulé dépasse N/2, puis

Me = L + h × (N/2 − F) / f

avec L la borne inférieure de la classe médiane, h son amplitude, f son effectif, et F l'effectif cumulé avant elle.

Forme de la distribution

library(moments)    # install.packages("moments") une seule fois
skewness(data$X)    # asymétrie : > 0 étalée à droite, < 0 étalée à gauche
kurtosis(data$X)    # aplatissement : 3 pour une loi normale

Moyennes particulières

sqrt(mean(data$X^2))   # moyenne quadratique
1 / mean(1 / data$X)   # moyenne harmonique
exp(mean(log(data$X))) # moyenne géométrique

Statistiques par groupe

aggregate(X ~ Groupe, data, mean)
aggregate(X ~ Groupe, data, sd)
by(data$X, data$Groupe, mean)

Régression linéaire simple

cor(data$X, data$Y)       # coefficient de corrélation
cov(data$X, data$Y)       # covariance
modele <- lm(Y ~ X, data) # droite Y = a + bX
summary(modele)

    Type at least 2 letters. ↑ ↓ to move, Enter to open.