Retour au centre de connaissances
R

Statistique avec R

Maîtrisez R pour l'analyse statistique, la visualisation et la modélisation économétrique. Des fondamentaux aux techniques avancées.

12 modules Débutant → Avancé Auto-formation
Module 01

Introduction à R et RStudio

R est un langage de programmation open-source spécialement conçu pour le calcul statistique et la visualisation graphique. Développé par Ross Ihaka et Robert Gentleman, il est aujourd'hui l'un des outils les plus utilisés par les statisticiens, data scientists et économètres.

R Premiers pas
# Installation de packages essentiels
install.packages("tidyverse")    # Collection d'outils data science
install.packages("ggplot2")      # Visualisation avancée
install.packages("dplyr")        # Manipulation de données

# Chargement des bibliothèques
library(tidyverse)
library(ggplot2)

# Premières opérations
x <- c(10, 20, 30, 40, 50)
mean(x)     # Moyenne : 30
sd(x)       # Écart-type
summary(x)  # Résumé statistique

R est disponible gratuitement sur CRAN (cran.r-project.org). Il est recommandé d'utiliser RStudio comme IDE pour une expérience de développement optimale.

Module 02

Statistiques descriptives

Les statistiques descriptives permettent de résumer et caractériser un jeu de données avant toute modélisation. R offre des fonctions natives très puissantes pour cette étape.

R Statistiques descriptives
# Chargement d'un jeu de données
data(mtcars)

# Dimensions et aperçu
dim(mtcars)       # 32 observations, 11 variables
head(mtcars, 5)   # 5 premières lignes
str(mtcars)       # Structure du dataframe

# Statistiques univariées
summary(mtcars$mpg)
quantile(mtcars$mpg, probs = c(0.25, 0.5, 0.75))

# Tableau de fréquences
table(mtcars$cyl)

# Statistiques par groupe (tidyverse)
mtcars |>
  group_by(cyl) |>
  summarise(
    moy_mpg = mean(mpg),
    sd_mpg  = sd(mpg),
    n       = n()
  )
Module 03

Visualisations avec ggplot2

ggplot2 implémente la "Grammaire des Graphiques" de Wilkinson, permettant de créer des visualisations complexes de manière déclarative et cohérente.

R ggplot2 – Visualisations
library(ggplot2)

# Nuage de points avec régression
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
  geom_point(size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = TRUE) +
  labs(
    title = "Consommation vs Poids",
    x = "Poids (1000 lbs)",
    y = "Miles par gallon",
    color = "Cylindres"
  ) +
  theme_minimal(base_size = 13)

# Histogramme avec densité
ggplot(mtcars, aes(x = mpg)) +
  geom_histogram(aes(y = after_stat(density)),
                 bins = 12, fill = "#276DC3", alpha = 0.7) +
  geom_density(color = "#FFD43B", linewidth = 1.2) +
  theme_classic()
Module 04

Tests d'hypothèses

R Tests statistiques
# Test t de Student (comparaison de deux moyennes)
t.test(mpg ~ am, data = mtcars, var.equal = FALSE)

# Test du Chi-2 d'indépendance
tab <- table(mtcars$cyl, mtcars$am)
chisq.test(tab)

# Test de normalité (Shapiro-Wilk)
shapiro.test(mtcars$mpg)

# ANOVA à un facteur
modele_anova <- aov(mpg ~ factor(cyl), data = mtcars)
summary(modele_anova)
TukeyHSD(modele_anova)  # Tests post-hoc
Module 05

Régression linéaire (MCO)

R Régression – MCO
# Modèle de régression multiple
modele <- lm(mpg ~ wt + hp + am + cyl, data = mtcars)
summary(modele)

# Diagnostics graphiques
par(mfrow = c(2, 2))
plot(modele)

# Test de multicolinéarité (VIF)
library(car)
vif(modele)

# Test de Breusch-Pagan (hétéroscédasticité)
library(lmtest)
bptest(modele)

# Prédictions avec intervalles de confiance
nouveaux_obs <- data.frame(wt=3.0, hp=100, am=1, cyl=4)
predict(modele, nouveaux_obs, interval = "prediction")
Module 06

Régression logistique

R Régression logistique
# Modèle logistique binaire
logit <- glm(am ~ mpg + wt + hp,
             data = mtcars,
             family = binomial(link = "logit"))
summary(logit)

# Odds ratios et IC
exp(cbind(OR = coef(logit), confint(logit)))

# Matrice de confusion
pred_prob <- predict(logit, type = "response")
pred_class <- ifelse(pred_prob > 0.5, 1, 0)
table(Prédit = pred_class, Réel = mtcars$am)

# Courbe ROC
library(pROC)
roc_obj <- roc(mtcars$am, pred_prob)
auc(roc_obj)  # AUC
plot(roc_obj, col = "#276DC3", lwd = 2)