R - Régression Logistique

Créer un Modèle de Régression

Bienvenue dans le monde de la régression logistique en R ! Dans ce tutoriel, nous vous guiderons à travers les bases de la création d'un modèle de régression logistique en utilisant R. Nous commencerons par quelques concepts de base puis nous plongerons dans le code. Souvenez-vous, cela est conçu pour les débutants qui n'ont aucune expérience en programmation, donc ne vous inquiétez pas si vous vous sentez un peu perdus au début. Commençons !

R - Logistic Regression

Qu'est-ce que la Régression Logistique ?

La régression logistique est une méthode statistique utilisée pour analyser les données et faire des prédictions basées sur une ou plusieurs variables prédictives. Elle est souvent utilisée pour les problèmes de classification binaire, où le résultat peut être soit "oui" (1) soit "non" (0). La différence clé entre la régression logistique et la régression linéaire est que la régression logistique prédit la probabilité d'un événement, tandis que la régression linéaire prédit une valeur continue.

Pourquoi Utiliser la Régression Logistique ?

La régression logistique est largement utilisée dans divers domaines, y compris la santé, la finance, le marketing et les sciences sociales. Elle est particulièrement utile lorsque vous souhaitez comprendre la relation entre un résultat binaire et une ou plusieurs variables prédictives. Par exemple, vous pourriez utiliser la régression logistique pour prédire si un client achètera un produit en fonction de son âge, de son revenu et de son historique d'achats.

Créer un Modèle de Régression Logistique en R

Pour créer un modèle de régression logistique en R, nous utiliserons la fonction glm(), qui signifie Generalized Linear Models (Modèles Linéaires Généralisés). Voici un guide étape par étape :

Étape 1 : Installer et Charger les Bibliothèques Nécessaires

Tout d'abord, vous devez installer et charger les bibliothèques nécessaires. Nous utiliserons la bibliothèque tidyverse pour la manipulation et la visualisation des données, et la bibliothèque caret pour le modélisation.

install.packages("tidyverse")
install.packages("caret")

library(tidyverse)
library(caret)

Étape 2 : Charger les Données

Ensuite, chargeons un jeu de données. Pour cet exemple, nous utiliserons le jeu de données intégré mtcars, qui contient des informations sur divers modèles de voitures. Nous nous concentrerons sur la prédiction de savoir si une voiture est une voiture de sport en fonction de son poids et de sa puissance.

data(mtcars)
head(mtcars)

Étape 3 : Prétraiter les Données

Avant de construire le modèle de régression logistique, nous devons prétraiter les données. Cela inclut l'encodage des variables catégorielles, la gestion des valeurs manquantes et l'échelonnement des caractéristiques. Dans notre cas, nous n'avons que des variables numériques, donc nous n'avons pas besoin de faire d'encodage ou d'échelonnement. Cependant, nous créerons une nouvelle variable binaire appelée is_sports_car pour indiquer si une voiture est une voiture de sport ou non.

mtcars <- mtcars %>%
mutate(is_sports_car = ifelse(hp > 150, 1, 0))

Étape 4 : Diviser les Données en Ensembles d'Entraînement et de Test

Il est important de diviser les données en ensembles d'entraînement et de test pour évaluer la performance de notre modèle. Nous utiliserons la fonction createDataPartition() du package caret pour créer une partition.

set.seed(123)
trainIndex <- createDataPartition(mtcars$is_sports_car, p = 0.8, list = FALSE)
trainSet <- mtcars[trainIndex, ]
testSet <- mtcars[-trainIndex, ]

Étape 5 : Construire le Modèle de Régression Logistique

Nous sommes maintenant prêts à construire notre modèle de régression logistique. Nous utiliserons la fonction glm() avec l'argument family défini sur binomial pour spécifier que nous voulons effectuer une régression logistique.

model <- glm(is_sports_car ~ wt + hp, data = trainSet, family = binomial)
summary(model)

La fonction summary() fournit un aperçu du modèle, y compris les coefficients, les erreurs standards, les valeurs z et les valeurs p. Ces statistiques nous aident à comprendre l'importance de chaque variable prédictive et si elles sont statistiquement significatives.

Étape 6 : Faire des Prédictions et Évaluer le Modèle

Une fois que nous avons notre modèle, nous pouvons l'utiliser pour faire des prédictions sur l'ensemble de test et évaluer sa performance. Nous utiliserons la fonction predict() pour générer des probabilités prédictives, puis les convertir en résultats binaires en utilisant un seuil de 0.5.

predictions <- predict(model, newdata = testSet, type = "response")
predicted_classes <- ifelse(predictions > 0.5, 1, 0)

Maintenant, calculons la précision de notre modèle en comparant les classes prédictes aux classes réelles de l'ensemble de test.

accuracy <- mean(predicted_classes == testSet$is_sports_car) * 100
cat("Précision:", accuracy, "%")

Et voilà ! Vous avez réussi à créer un modèle de régression logistique en R en utilisant la fonction glm(). Souvenez-vous, ceci est juste un exemple de base, et il y a de nombreux autres facteurs à considérer lors de la construction et l'évaluation d'un modèle de régression logistique, tels que la sélection des caractéristiques, la régularisation et l'ajustement du modèle. Mais cela devrait vous donner un bon point de départ pour votre voyage dans le monde de la régression logistique en R.

Credits: Image by storyset