Logiciel R/ Rstudio
Enseignant
Mr Harouna Noël BADO
Data Scientist/ Ingénieur de Recherche
January 16, 2025
www.centre-muraz.bf
PLAN
- Introduction à R
- Principaux objets R
- Principales fonctions R
- Exploration d’un jeu de
données
- Questions spécifiques
www.centre-muraz.bf
Introduction à R
Présentation de R
• R est un langage de programmation et
un logiciel libre dédié aux statistiques et à
la science des données soutenu par la R
Foundation for Statistical Computing;
• R fait partie de la liste des paquets GNU et est
écrit en C (langage), Fortran et R;
• Le langage R est largement utilisé par
les statisticiens, les data miner, data
scientist pour le développement de logiciels
statistiques et l'analyse des données.
www.centre-muraz.bf
Un peu d’histoire
• R est une implémentation du langage de
programmation S;
• Le langage S a été développé par John
Chambers et ses collègues au sein
des laboratoires Bell
• Le projet R naît en 1993 comme un projet de
recherche de Ross Ihaka et Robert
Gentleman à l'université d'Auckland(Nouvelle-
Zélande)
www.centre-muraz.bf
• Depuis 1997, une vingtaine de développeurs
forment l'équipe de développement de R (R
Development Core team);
• Les membres de cette équipe ont les droits
d'écriture sur le code source;
• La version R 1.0.0, première version officielle du
langage R, est publiée le 29 février 2000;
• La version 2.0 est publiée le 4 octobre 2004 et la
version 3.0 le 3 avril 2013;
www.centre-muraz.bf
• En 2015, plusieurs acteurs économiques
importants comme IBM, Microsoft ou encore la
société RStudio créent le R Consortium pour
soutenir la communauté R et financer des
projets autour de ce langage;
• La dernière version disponible de R est la
version 4.3.3 publiée en février 2024.
www.centre-muraz.bf
Pourquoi utiliser R?
• R est Open Source, évolutif, référence
scientifique, en augmentation constante
• Utilisation dans le domaine de l’analyse de
données : R 40 %, SAS + SPSS 30 % (Rexer
Analytics);
• Documentation en plein essor : Plus de 110
livres disponibles sur :
http://www.r-project.org/doc/bib/R-books.html
www.centre-muraz.bf
Principaux objets R
PRINCIPAUX OBJETS R
L’opérateur d’assignation <- est une façon
implicite de créer un objet ;
le mode et le type de l’objet sont en effet
automatiquement déterminés;
Exemple:
> x <- 2
> y <- x
>y
[1] 2 : signifie que y a la valeur 2
www.centre-muraz.bf
Les principaux objets R
– vecteur : suite d’éléments (une dimension),
– tableau : tableau à k dimensions,
– matrice : tableau à 2 dimensions,
– facteur : suite d’éléments catégoriels avec les
différents niveaux possibles,
– liste : liste d’objets
www.centre-muraz.bf
Comment créer les objets R
• Création d’un vecteur:
L’opérateur d’assemblage c() est une façon implicite
pour créer un vecteur
> x <- c(1, 3, 5, 7, 9)
>x
[1] 1 3 5 7 9
• Création d’un tableau de données:
Un tableau de données est une collection de
vecteurs de même longueur; on crée ce genre
d’objet en utilisant la fonction data.frame()
www.centre-muraz.bf
• Exemple:
> seq1 <- c(0.2, 0.3, 0.4, 0.1)
> seq2 <- c(0.25, 0.35, 0.15, 0.25)
> df <- data.frame(seq1, seq2)
> df
seq1 seq2
1 0.2 0.25
2 0.3 0.35
3 0.4 0.15
4 0.1 0.25
www.centre-muraz.bf
• Création d’une matrice:
Une matrice est un tableau à 2 dimensions, elle est
créée à l’aide de la fonction matrix()
> x <- matrix(data = c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
>x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
En remarque, on peut combiner des fonctions
www.centre-muraz.bf
• Création d’un facteur
Un facteur est une suite d’éléments catégoriels
avec les différents niveaux possibles; un facteur
est utilisé pour stocker généralement des variables
qualitatives
Pour créer un facteur on utilise la fonction factor()
Exemple:
> notes <- factor(c(‘’A’’,’’B’’,’’C’’)); notes
[1] A B C
www.centre-muraz.bf
• Création d’une liste:
Une liste est une collection d’objet ,elle s’obtient par la
fonction list().
Exemple:
> seq1 <- c(0.2, 0.3, 0.4, 0.1)
> L1 <- 58402
> res <- list(L1, seq1)
> res
[[1]]
[1] 58402
[[2]]
[1] 0.2 0.3 0.4 0.1
www.centre-muraz.bf
Le mode de stockage des objets
• Les éléments stockés dans un objet peuvent être
de 4 modes différents :
– numérique,
– caractère (entre guillemets),
– complexe,
– logique (TRUE ou FALSE),
Pour connaître le mode d’un objet x, on utilise la
fonction mode()
www.centre-muraz.bf
• Exemple:
> x <- 0
> mode(x)
[1] "numeric"
> titre <- "coucou"
> mode(titre)
[1] "character"
www.centre-muraz.bf
PRINCIPALES FONCTIONS R
R contient plusieurs types de fonctions
• Fonctions numériques
• Fonctions statistiques
• Fonctions graphiques
• D'autres fonctions
www.centre-muraz.bf
Fonctions numériques
• abs(x) : Valeur absolue
• sqrt(x) : Racine carré
• round(x, digits=n) : arrondir, round(3.475,
digits=2) est 3.48
• signif(x, digits=n) : arrondir, signif(3.475, digits=2)
est 3.5
• log(x) : logarithme népérien
• log10(x) : log base 10
• exp(x) : exponentiel de x
www.centre-muraz.bf
• sum(x), prod(x) : somme, produit des éléments
de x,
– min(x), max(x) : minimum, maximum des
éléments de x,
– which.min(x), which.max(x) : indice du min,
max des éléments de x,
– length(x) : nombre d’éléments de x,
– rev(x) : inverse l’ordre des éléments de x,
– sort(x) : trie les éléments de x dans l’ordre
croissant,
– choose(n,k) : combinaisons de k éléments
parmi n.
www.centre-muraz.bf
> x <- choose(6, 0:6)
>x
[1] 1 6 15 20 15 6 1
> sum(x)
[1] 64
> max(x)
[1] 20
> which.max(x)
[1] 4
> sort(x, decreasing = TRUE)
[1] 20 15 15 6 6 1 1
www.centre-muraz.bf
Fonctions statistiques
• mean(x) # moyenne de x
• sd(x) # écart type de x
• median(x) # médiane de x
• quantile(x, probs) # quantile de x , probs étant un
vecteur numérique de probabilités comprise entre
0 et 1.
• range(x) # l'étendue de x. Retourne un vecteur
contenant le minimum et le maximum de x.
www.centre-muraz.bf
• min(x) # minimum de x
• max(x) # maximum de x
• scale(x, center=TRUE, scale=TRUE) #centrer et
réduire les colonnes d'une matrice
• summary(x): donne les statistiques descriptives
d’un objet
• table(x) ou table(x,y): construit un tableau
simple ou de contingence avec les objets en
arguments.
www.centre-muraz.bf
• lm() : permet de faire des régressions linéaires
(simple ou multivariée)
• Exemple:
lm.D9 <- lm(taille ~ poids)
lm.D9 <- lm(taille ~ age + poids, data = base)
chisq.test : test de khi-2
fisher.test: test de Fisher
shapiro.test: test de normalité de Shapiro-Wilks
www.centre-muraz.bf
• Exemple:
chisq.test(base$Convert_TIG,base$Propoz_Client)
fisher.test(base$HSV_Convert,base$Propoz_Client)
www.centre-muraz.bf
Fonctions graphiques
• hist(): construit un histogramme
• barplot(): construit un diagramme en barres
• pie(): construit un diagramme circulaire
• curve(): construit une courbe
• plot(): fonction générique de graphique
• boxplot(): construit une boite à moustaches
• abline(): ajoute une ligne à un graphique
• points(): place un point dans un repère
• text(): place un texte dans un graphique
www.centre-muraz.bf
• Exemple:
barplot(pro, main = "Repartition selon la profession",
xlab = "Profession", ylab = "Fréquence")
hist(Age, main= " Histogramme", xlab = "Classe
d’age", ylab = "Fréquence")
www.centre-muraz.bf
Autres fonctions
• cbind() : ajoute une colonne à une matrice ou un
tableau de données
> x <- matrix(data = c(1, 2, 3, 4, 5, 6), nrow=2,ncol=3)
> cbind(x, c(7, 7))
[,1] [,2] [,3] [,4]
[1,] 1 2 3 7
[2,] 4 5 6 7
www.centre-muraz.bf
• rbind(): ajoute une ligne à une matrice ou un
tableau de données
> rbind(x, c(8, 8, 8))
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 8 8 8
• dim(x) :renvoie la dimension de x
[1] 2 3 #2 lignes 3 colonnes
www.centre-muraz.bf
• rep() crée un vecteur dont les éléments sont
identiques ou répétés
> rep(1, times = 10)
[1] 1 1 1 1 1 1 1 1 1 1
> rep(1:5, times = 3)
[1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
• seq() peut générer des suites régulières de
nombres de deux manières différentes:
• soit en lui spécifiant, le début, la fin, puis le pas
(argument by)
> seq(from = 2, to = 20, by = 2)
[1] 2 4 6 8 10 12 14 16 18 20
www.centre-muraz.bf
• soit en lui spécifiant le début, la fin et le nombre
d’éléments (argument length)
> seq(1, 5, length = 10)
[1] 1.000000 1.444444 1.888889 2.333333
[5] 2.777778 3.222222 3.666667 4.111111
[9] 4.555556 5.000000
www.centre-muraz.bf
• On peut générer des nombres suivants les lois
de probabilité
gaussienne rnorm(n, mean=0, sd=1)
uniforme runif(n, min=0, max=1)
Poisson rpois(n,lambda)
exponentielle rexp(n, rate=1)
binomiale rbinom(n,size,prob)
www.centre-muraz.bf
• read.table(): permet de lire des données contenu
dans un fichier.
• On peut aussi utiliser read.csv()/read.csv2() en
fonction du format du fichier contenant les
données.
• Exemple:
• base <-
read.csv2("E:/Stage/BaseC1/MaBaseCSV.csv",
dec = ",", na.strings = "")
www.centre-muraz.bf
• write.table(montableau,file="montableau.txt")
permet de sauvegarder le tableau
de données montableau sous un format .txt.
• On peut enregistrer le tableau sous n’importe
quel format.
• save(monobjet,file="monobjet.rdata") permet
de sauver l’objet monobjet sous le format R. Il
est aussi possible de sauver plusieurs objets
dans le même fichier.
• Par exemple :
save(objet1,objet2,file="mesobjets.rdata")
www.centre-muraz.bf
• load("mesobjets.rdata") permet de recharger
des objets sauvegardés au cours d’une
session précédente.
• Il existe une aide directement disponible dans R :
on y accède en utilisant le ? suivi du
nom de la fonction, ou bien help(nom.fonction) .
• NB: chacune des fonctions de R est incluse dans
une bibliothèque précise appelée package; pour
charger un package on utilise l’instruction
library(nom.package).
www.centre-muraz.bf
• Exemple: library(FactoMiner)
• Il est impossible d’accéder à une fonction dont le
package n’est pas chargé.
• Certains packages ne sont pas disponibles
directement sur R et on doit les télécharger avant
de pouvoir les utilisés en utilisant la fonction
install.packages(nom.package)
Le logiciel R et tous les packages R sont
disponibles sur le site du CRAN :
https://cran.r-project.org/
• La fonction search() affiche tous les packages
déjà chargés
www.centre-muraz.bf
Interface de R
January 16, 2025
www.centre-muraz.bf
Stratégies de travail sur R
January 16, 2025
www.centre-muraz.bf
En mode invites de commande
• On entre des expressions à la ligne de commande
pour les évaluer immédiatement.
>2+3
[1] 5
• On peut également créer des objets contenant le
résultat d’un calcul
> x <- exp(2)
>x
[1] 7.389056
www.centre-muraz.bf
•Lorsque la session de travail est terminée, on
sauvegarde une image de l’espace de travail sur le
disque dur de l’ordinateur afin de pouvoir conserver les
objets pour une future séance de travail
> save.image()
Pas très pratique comme méthode
www.centre-muraz.bf
Editeurs de texte intégrés
La seconde méthode plus conviviale consiste à
utiliser l’éditeur de texte intégré à R.
Dans R:
• Fichier
• Nouveau script
• Ecrire son code dans la fenêtre qui apparait et
l’exécuter après.
www.centre-muraz.bf
Editeurs de texte intégrés
## Fichier de script simple contenant des expressions R
## pour faire des calculs et créer des objets.
2+3
## Probabilité d'une loi de Poisson(10)
x <- 7
10^x * exp(-10) / factorial(x)
## Petite fonction qui fait un calcul trivial
f <- function(x) x^2
## Évaluation de la fonction
f(2)
www.centre-muraz.bf
Editeurs compatibles avec R
• Il s’agit de logiciels différents de R mais qui en
facilite l’utilisation.
• On les installe en plus de R
• Ils rendent le travail sur R beaucoup plus facile
www.centre-muraz.bf
Editeurs compatibles avec R
• Emacs
• R Studio
• Notepad
• NppToR
• WinEdt
• Etc.
www.centre-muraz.bf
Interface de R Studio
www.centre-muraz.bf
Anatomie d’une session de travail sur R
• Démarrer R Studio
• Ouvrir un fichier de script ou en créer un
• Bâtir graduellement son script en y inscrivant le
code R qu’il faut et les commentaires pour s’y
retrouver ; sauvegarder fréquemment.
• Sauvegarder son fichier et quitter R Studio.
www.centre-muraz.bf
Répertoire de travail
• C’est le dossier par défaut où R va chercher les
fichiers de scripts ou de données;
• Sauvegarder des images de session
• Etc.
www.centre-muraz.bf
L’aide sur R
• Il est possible d’avoir de l’aide sur les fonctions de
R directement sur R.
• Plusieurs possiblités:
➢?summary
➢help(summary)
www.centre-muraz.bf
Opérations et fonctions
January 16, 2025
www.centre-muraz.bf
Opérations
www.centre-muraz.bf
> c(1, 2, 3) + c(4, 5, 6)
[1] 5 7 9
> 1:3
[1] 1 2 3
> 4:6
[1] 4 5 6
> 1:3 * 4:6
[1] 4 10 18
> 1:3 + 2
[1] 3 4 5
www.centre-muraz.bf
> 3==2
[1] FALSE
> 3>2
[1] TRUE
www.centre-muraz.bf
• > Equipe <- c("Washington", "Dallas", "Chicago","Los Angeles",
"St-Louis", "Détroit","Montréal", "Boston")
• > MJ <- c(55, 56, 57, 58, 56, 57, 56, 57)
• > V <- c(36, 32, 30, 30, 25, 25, 22, 24)
• > D <- c(16, 19, 21, 22, 19, 21, 27, 31)
• > DP <- c( 3, 5, 6, 6, 12, 11, 7, 2)
• > PTS <- c(75, 69, 66, 66, 62, 61, 51, 50)
• > Equipes<- list(Equipe = Equipe, MJ = MJ, V = V, D = D,DP =
DP, PTS = PTS)
• > Equipes$V
• [1] 36 32 30 30 25 25 22 24
• > Equipes$DP
• [1] 3 5 6 6 12 11 7 2
www.centre-muraz.bf
Fonctions
• R contient énormément de fonctions. Quelques
fonctions utiles pour la manipulation de données
sont:
• La fonction sort qui permet de trier un ensemble de
données (variable par exemple)
> sort(c(4, -1, 2, 6))
[1] -1 2 4 6
> sort(c(4, -1, 2, 6),decreasing = TRUE)
[1] 6 4 2 -1
www.centre-muraz.bf
• La fonction head qui renvoie les n premiers
éléments d’un ensemble de données.
> head(1:10, n = 3)
[1] 1 2 3
• La function tail qui est contraire de head. Elle
renvoie les n derniers éléments.
> tail(1:10, 3)
[1] 8 9 10
www.centre-muraz.bf
• La fonction round pour arrondir à digits chiffres
après la virgule.
> a<-seq(0,1,0.1)+0.2457258
>a
[1] 0.2457258 0.3457258 0.4457258 0.5457258
0.6457258 0.7457258 0.8457258
[8] 0.9457258 1.0457258 1.1457258 1.2457258
> round(a,digits = 2)
[1] 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95 1.05 1.15
1.25
www.centre-muraz.bf
• sum et prod pour la somme et le produit des
éléments d’un vecteur
> x<-seq(1,100)
> sum(x)
[1] 5050
> prod(x)
[1] 9.332622e+157
www.centre-muraz.bf
Manipulations de Base de données
• La fonctions read.csv, read.csv2, read.table pour
importer une base de données dans R
> data1<-read.csv("C:/Users/USER/Desktop/Formation
R/data1.csv", sep = ";", dec = "." , header = TRUE)
• La fonction View pour afficher une base de données
> View(data1)
www.centre-muraz.bf
• Les fonctions write.csv, write.table pour exporter une
base de données dans R
> write.csv(data1, file =
"C:/Users/USER/Desktop/Projet_R/data_2.csv")
• La fonction attach pour indiquer à R qu’on ne veut
travailler que sur la base indiquée
> attach(data1)
• La fonction detach est le contraire de attach
www.centre-muraz.bf
• La fonction names affiche le nom des variables de
la base
> names(data1)
• La fonction str affiche le type des variables de la
base
> str(data1)
www.centre-muraz.bf
• La fonction merge pour fusionner 2 bases de
données. L’option by permet de spécifier la colonne
dont la valeur est unique pour chaque ligne de la
base; il s’agit très souvent des numéros
d’identification.
> data3<-merge(data1, data2, by = «PassengerId")
www.centre-muraz.bf
Manipulation de variable
• Renommer une variable
> colnames(data)[1]<-"Id"
> which(colnames(data3)=="Age")
> colnames(data3)
[which(colnames(data3)=="PassengerId")] <- "Id"
• Supprimer une variable
> data$vide <- NULL
• Créer une nouvelle variable avec des opérations
> data3$vide <- 0
> data3$Age2 <- data3$Age*2
www.centre-muraz.bf
• Création de variable avec des fonctions
> data3$vide <- sqrt(data3$Age)
> data3$Age2 <- exp(data3$Age)
• Création de variable en recodant d’autres variables
> data3$classage <- cut(data3$Age, breaks =
seq(0,100,25), labels = c("0-25","26-50","51-75","76-
100"))
www.centre-muraz.bf
> data3$Survived2[data3$Survived == 0] <- 1
> data3$Survived2[data3$Survived == 1] <- 2
• Labéliser une variable : factor
> data3$Survived<-factor(data3$Survived, labels =
c("Non","Oui"))
• La fonction length pour la taille (nombre d’éléments)
d’un vecteur
> length(data3$Age)
www.centre-muraz.bf
Sélection de variables et/ou d’observations
• Sélection de variables
> data3_2 <- data3[,c("Age","Survived","Parch")]
> data3_2 <- data3[,c(4,2,6)]
• Sélections d’observations
> data3_survived1 <- data3[data3$Survived==1,]
> data3_age25 <- data3[data3$Age>25,]
> data3_3 <-
data3[data3$Survived==1,c("Age","Parch")]
www.centre-muraz.bf
Fonctions statistiques
• La fonction mean donne la moyenne arithmétique
d’un vecteur
> mean(data3$Age, na.rm = TRUE)
• Les fonctions var et sd pour la variance et l’écart-
type
> var(data3$Age, na.rm = TRUE)
> sd(data3$Age, na.rm = TRUE)
www.centre-muraz.bf
• Les fonctions min et max pour les valeurs
minimum et maximum d’un vecteur
> min(data3$Age, na.rm = TRUE)
> max(data3$Age, na.rm = TRUE)
• La fonction median pour la médiane
> median(data3$Age, na.rm = TRUE)
www.centre-muraz.bf
• La fonction summary pour les statistiques
descriptives élémentaires d’un vecteur numérique
> summary(data3$Age)
• La fonction table pour les effectifs d’une variable
catégorielle
> table(data$Survived)
• La fonction prop.table pour afficher des proportions
> prop.table(table(data$Survived))*100
www.centre-muraz.bf
• Pour une table de contigence
> table(data$Survived,data$Sex)
> prop.table(table(data$Survived,data$Sex))*100
• La fonction cov pour calculer la covariance
> cov(data3$Age,data3$SibSp, use = "complete.obs")
• La fonction cor pour le coefficient de corrélation entre
2 variables
> cor(data3$Age,data3$SibSp, use = "complete.obs")
www.centre-muraz.bf
Tests statistiques
• Test de Student : H0 : moyenne = mu
> t.test(data3$Age)
> t.test(data3$Age, mu = 10)
• Test de normalité de shapiro-wilk : H0 : normalité
> shapiro.test(data3$Age)
• Test de Khi2 d’indépendance et de Fisher exact
> fisher.test(data3$Survived, data3$Pclass)
> chisq.test(data3$Survived, data3$Pclass)
www.centre-muraz.bf
Autres tests
• Test de rang de Wilcox : wilcox.test
• Test d’égalité de proportion : prop.test
• Analyse de variance :
> summary(aov(data3$Survived~data3$Age))
• Test de corrélation : cor.test
www.centre-muraz.bf
Graphiques avec R
January 16, 2025
www.centre-muraz.bf
Graphiques univariés
• Nuage de points d’une variable en fonction des
observations de la base de données
> plot(data3$Age)
• Diagramme en bâtons d’une variable catégorielle
> barplot(table(data3$Pclass))
• Diagramme circulaire d’une variable catégorielle
> pie(table(data3$Pclass))
www.centre-muraz.bf
• Boites à moustaches
> boxplot(data3$Age)
• Histogramme
> hist(data3$Age)
• Courbes
> plot(data3$Age, type = "l")
www.centre-muraz.bf
www.centre-muraz.bf
Graphiques bivariés
• Nuages de points
> plot(data3$Parch,data3$Age)
• Boites à moustaches
> boxplot(data3$Age~data3$Survived)
www.centre-muraz.bf
Personnalisation de graphiques
• Titre du graphique
> plot(data3$Age, main = "Nuage de points simple
pour la variable Age")
• Titre des axes
> plot(data3$Age, type = "l", main = "Courbe", xlab =
"Individus", ylab = "Age")
www.centre-muraz.bf
Couleur du graphique
• Avec des numéros
> pie(table(data3$Pclass), main = "Diagramme
circulaire", col = 1:3)
• Ils y a plus de 650 couleurs différentes. Les plus
fréquentes sont numérotées de 1 à 8 et sont visibles
avec la commande palette()
• Avec les noms des couleurs
> barplot(table(data3$Pclass), col =
c("red","blue","green"))
www.centre-muraz.bf
Légende
• La fonction legend permet d’intégrer une légende à un
graphique. Elle suit directement le code de création du
graphique
> pie(table(data3$Survived), col = c("red","blue"))
> legend("topleft", legend = c("Non","Oui"), col =
c("red","blue"), cex = 1, pch = 20)
www.centre-muraz.bf
Sauvegarder un graphique
• Bouton export dans l’onglet plot
www.centre-muraz.bf
Régression linéaire
January 16, 2025
www.centre-muraz.bf
Régression linéaire
• Méthode mathématique qui cherche à établir une
relation linéaire entre une variable à expliquer
numérique et une ou plusieurs variables
explicatives.
• Utilisée depuis 1750
www.centre-muraz.bf
• S’écrit sous la forme :
Y = a1X1 + a2X2 + a3X3 + … + b
• Y : variable à expliquer
• Xi : variables explicatives
• ai : les coefficients de régression
• b : l’intercept
www.centre-muraz.bf
• Plusieurs applications:
✓Expliquer (l’évolution) d’un phénomène par un (d’) autre(s)
❖Exemple : la quantité des récoltes selon la taille des champs
✓Prédire un phénomène
❖Exemple : Prédire le PIB en fonction des exportations
✓Décrire l’effet d’un phénomène sur un autre
❖L’effet du nombre de policiers sur la criminalité dans une ville
www.centre-muraz.bf
• Domaines d’applications
❑ Economie
❑ Santé
❑ Géographie
❑ Météorologie
❑ Politique
❑ Psychologie
❑ Etc.
www.centre-muraz.bf
Régression linéaire simple
• Modèle de régression avec une seule variable
explicative
• Sous la forme
Y = a1X1 + b
www.centre-muraz.bf
Régression linéaire multiple
• Modèle de régression avec plusieurs variables
explicative
• Sous la forme
Y = a1X1 + a2X2 + a3X3 + … + b
www.centre-muraz.bf
Sur R
• La fonction lm permet de faire la régression linéaire
sur R.
• La syntaxe :
lm(formula, data)
• formula = il s’agit de l’équation du modèle. On y
insère la variable dépendante et la ou les variables
explicatives en séparant les 2 groupes par ~.
Exemple : formula = Y~X1+X2+X3…
www.centre-muraz.bf
• L’option data permet de spécifier le jeu de données
dans lequel les variables sont.
• Elle n’est pas obligatoire mais fortement conseillée
surtout quand on a plusieurs bases de données
chargées dans R.
www.centre-muraz.bf
• Il faut toujours stocker les résultats d’une
régression linéaire dans une variable.
Exemple : res<-lm(formula = data$taille~data$poids,
data = data)
• Ensuite on fait un summary de la variable contenant
les résultats.
Exemple : summary(res)
www.centre-muraz.bf
Cas pratique : linéaire simple
• Utilisation de la base cars du package datasets de
R
> View(datasets::cars)
• Il s’agit d’une base de données contenant la
vitesse (Speed) et la distance d’arrêt (Dist) de
voitures
• Nous allons régresser la vitesse par rapport à la
distance d’arrêt.
www.centre-muraz.bf
> res <- lm(speed~dist, data = cars)
> summary(res)
www.centre-muraz.bf
Prédictions
• Faisable avec la fonction predict sur une base de
données de test.
> test <- data.frame(dist = c(10,29,42,30))
> pred <- predict(res,newdata = test, interval =
"confidence")
> pred
www.centre-muraz.bf
Cas pratique : linéaire multiple
• Avec la base voitures.csv régresser la vitesse
maximale (v.max) en fonction de la puissance, du
poids, de la longueur et de largeur.
www.centre-muraz.bf
www.centre-muraz.bf
Régression logistique
January 16, 2025
www.centre-muraz.bf
Régression logistique
• Méthode mathématique permettant d’évaluer et de
caractériser une variable binaire (Oui/Non ;
Mort/Vivant; Malade/Non malade; Echec/Succès;…)
avec par une ou plusieurs variables explicatives.
• Première mention en 1944
www.centre-muraz.bf
• S’écrit sous la forme :
Y = a1X1 + a2X2 + a3X3 + … + b
• Y : variable à expliquer
• Xi : variables explicatives
• ai : les coefficients de régression
• b : l’intercept
www.centre-muraz.bf
• Plusieurs applications:
✓Expliquer un phénomène par un (d’) autre(s)
❖Exemple : la présence d’une maladie selon la taille des poids
des patients
✓Prédire un phénomène
❖Exemple : Prédire l’apparition d’une anomalie chez un enfant
en fonction des mesures d’une échographie
✓Décrire l’effet d’un phénomène sur un autre
❖L’effet d’un vaccin sur une la prévalence maladie
www.centre-muraz.bf
• Domaines d’applications
❑ Economie
❑ Santé
❑ Géographie
❑ Météorologie
❑ Politique
❑ Psychologie
❑ Etc.
www.centre-muraz.bf
Régression logistique univariée
• Modèle de régression avec une seule variable
explicative
• Sous la forme
Y = a1X1 + b
www.centre-muraz.bf
Régression logistique multivariée
• Modèle de régression avec plusieurs variables
explicative
• Sous la forme
Y = a1X1 + a2X2 + a3X3 + … + b
www.centre-muraz.bf
Sur R
• La fonction glm permet de faire la régression
logistique sur R.
• La syntaxe :
glm(formula, family = binomial, data)
• formula = il s’agit de l’équation du modèle. On y
insère la variable dépendante et la ou les variables
explicatives en séparant les 2 groupes par ~.
Exemple : formula = Y~X1+X2+X3…
www.centre-muraz.bf
• Les options sont les mêmes qu’avec la
régression linéaire.
• family : cette option indique à R de quel type de
régression il s’agit parce que la fonction glm
permet de faire un nombre important de types de
régression (poisson, binomial négative, …)
www.centre-muraz.bf
> data3$Sex <- factor(data3$Sex, labels =
c("Homme","Femme"))
> data3$Pclass <- factor(data3$Pclass, labels =
c("Classe 1","Classe 2","Classe 3"))
www.centre-muraz.bf
Exemple
> res_log <- glm(Survived~Sex+Pclass, family = "binomial", data = data3)
> summary(res_log)
www.centre-muraz.bf
#Odds ratio
exp(coef(res_log))
#Intervalles de confiance des OR
exp(confint(res_log,level = 0.95))
# OR et leur intervalles de confiance
exp(cbind(coef(res_log), confint(res_log)))
www.centre-muraz.bf
Prédiction
> Sex <- c(1,2,2,2,1,1,2,1,1,1)
> Pclass <- c(1,2,3,1,1,2,2,3,2,1)
> Sex <- factor(Sex, labels = c("Homme","Femme"))
> Pclass <- factor(Pclass, labels = c("Classe 1","Classe
2","Classe 3"))
> test <- data.frame(Sex,Pclass)
> pred_log <- predict(res_log, newdata = test, type =
"response")
> pred_log
www.centre-muraz.bf