# 🧪 TD n°1 – Pratique des tests statistiques avec R (R1) --- ## 🎯 Objectifs du TD Ce premier TD a pour objectif de : - se familiariser avec **R et RStudio** dans un contexte pratique ; - comprendre la notion **d’objet** et le rôle central des **fonctions** en R ; - manipuler les **types de base** (numérique, caractère, logique) ; - créer et exploiter des **vecteurs**, **matrices** et **data frames** ; - calculer des **statistiques descriptives simples** (moyenne, écart-type) ; - apprendre à **sélectionner et explorer** des données. ⚠️ **Important** : les TD sont liés entre eux. Le script créé lors de ce TD devra être **sauvegardé** et réutilisé lors des TD suivants. --- ## 📌 Rappels essentiels ### 🔹 Dialoguer avec R : objets et fonctions R fonctionne selon une logique simple : > **des objets** → passés à **des fonctions** → produisent **des résultats** Exemples : ```r x <- 10 sqrt(x) # applique la fonction racine carrée à l'objet x sum(1, 2, 3) # somme de plusieurs objets numériques ``` --- ### 🔹 Objets et affectation Un **objet** est une entité qui stocke une information (nombre, texte, vecteur, tableau…). ```r x <- "Hello World" x ``` - `<-` est l’opérateur d’affectation standard en R. - Le nom de l’objet est **libre**, mais **sensible à la casse** : ```r bonjour <- "Hello" Bonjour <- "Hi" ``` 👉 `bonjour` et `Bonjour` sont deux objets différents. ⚠️ Réaffecter un objet **écrase** sa valeur précédente. --- ### 🔹 Types d’objets Types simples les plus courants : |Type R|Exemple|Interprétation| |---|---|---| |`numeric`|`12`, `3.5`|variable quantitative| |`logical`|`TRUE`, `FALSE`|booléen| |`character`|`"Bonjour"`|texte| |`factor`|catégories|variable qualitative| Fonctions utiles : ```r class(x) str(x) ``` --- ### 🔹 La fonction `c()` et les vecteurs Un **vecteur** est un tableau à une dimension contenant des valeurs **du même type**. ```r v <- c(2, 6, 7, 9, 8) v ``` Sélection dans un vecteur : ```r v[1] # premier élément v[-2] # tous sauf le deuxième v[c(2,5)] # éléments 2 et 5 ``` --- ## 🧪 Exercice 1 – Manipulation d’objets et fonctions 1. Créer un objet `x` prenant la valeur **10**. 2. Créer un second objet `y` prenant la valeur **2 × x**. 3. Créer un troisième objet `z` correspondant à la **somme de x et y** (via une fonction). 4. Donner la **classe** de l’objet `z`. 5. Créer un vecteur `v` contenant **vos tailles (en cm)**. 6. Calculer la **moyenne** et l’**écart-type** de ce vecteur. --- ## ✅ Corrigé – Exercice 1 ```r x <- 10 y <- 2 * x z <- sum(x, y) class(z) # "numeric" v <- c(170, 175, 168) # exemple mean(v) sd(v) ``` --- ## 🧪 Exercice 2 – Calculs statistiques sur un vecteur On considère le vecteur suivant : ```r NOTE1 <- c(17, 8, 9, 18, 15, 14.5, 13, 12, 17.5, 10) ``` 1. Calculer la **moyenne** et l’**écart-type** de `NOTE1` **sans utiliser** les fonctions `mean()` et `sd()`. 2. Refaire les calculs **avec** `mean()` et `sd()`. 3. Vérifier que les deux méthodes donnent le **même résultat**. --- ### 🔢 Rappels mathématiques - Moyenne : $ \bar{x} = \frac{1}{n} \sum_{i=1}^n x_i$ - Écart-type (échantillon) : $ s = \sqrt{ \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2 } $ --- ## ✅ Corrigé – Exercice 2 ```r MOYENNE_NOTE1 <- sum(NOTE1) / length(NOTE1) SD_NOTE1 <- sqrt(sum((NOTE1 - MOYENNE_NOTE1)^2) / (length(NOTE1) - 1)) MOYENNE_FCTN <- mean(NOTE1) SD_FCTN <- sd(NOTE1) MOYENNE_NOTE1 == MOYENNE_FCTN SD_NOTE1 == SD_FCTN ``` 👉 Les deux méthodes donnent bien les **mêmes résultats**. --- ## 🧪 Exercice 3 – Vecteurs, matrices et tableaux 1. Créer un vecteur `NOTE2` : ```r 15, 2, 15, 20, 12, 13.5, 11, 12.75, 17, 9 ``` 2. Calculer la moyenne et l’écart-type de `NOTE2`. 3. Créer une **matrice** `NOTE_ETUDE` contenant `NOTE1` et `NOTE2`. 4. Nommer les colonnes. 5. Vérifier la **classe** et la **structure** de l’objet. --- ## ✅ Corrigé – Exercice 3 ```r NOTE2 <- c(15, 2, 15, 20, 12, 13.5, 11, 12.75, 17, 9) mean(NOTE2) sd(NOTE2) NOTE_ETUDE <- matrix(c(NOTE1, NOTE2), ncol = 2) colnames(NOTE_ETUDE) <- c("NOTE1", "NOTE2") class(NOTE_ETUDE) str(NOTE_ETUDE) ``` --- ## 📊 Statistiques rapides ### 🔹 Fonction `apply()` ```r apply(NOTE_ETUDE, margin = 1, mean) # par ligne apply(NOTE_ETUDE, margin = 2, sd) # par colonne ``` - `margin = 1` → lignes - `margin = 2` → colonnes --- ### 🔹 Fonction `summary()` ```r summary(NOTE1) summary(NOTE_ETUDE) ``` ⚠️ `summary()` **ne fournit pas l’écart-type**. --- ## 🔑 Points clés à retenir - Tout en R est **objet**. - Les **fonctions** attendent des objets du **bon type**. - Les vecteurs sont à la base de toutes les structures. - `mean()` et `sd()` automatisent des calculs statistiques classiques. - Les matrices permettent de regrouper plusieurs vecteurs numériques. - `apply()` et `summary()` offrent une exploration rapide des données. --- ## 📜 Historique - Dernière mise à jour : `30 janvier 2026` - Rédigé par : [[Jizhen CAI]]