Régression logistique dans R : Dérivation d'équations [avec exemple]
Publié: 2020-07-28Dans cet article, nous aborderons l'un des concepts les plus courants mais les plus difficiles de l'apprentissage automatique, la régression logistique. Vous trouverez ce qu'est la régression logistique et la dérivation de l'équation de régression logistique dans cet article détaillé.
Nous avons également partagé un exemple de régression logistique dans R pour comprendre le concept avec beaucoup de facilité. Cependant, assurez-vous de bien connaître toutes les idées avant de travailler sur l'exemple. Il serait utile que vous connaissiez la régression linéaire , car ces deux concepts sont liés.
Table des matières
Qu'est-ce que la régression logistique ?
La régression logistique prédit un résultat binaire selon un ensemble de variables indépendantes. Il s'agit d'un algorithme de classification qui prédit la probabilité d'occurrence d'un événement à l'aide d'une fonction logit et en y ajustant les données. La régression logistique est différente de la régression linéaire car elle peut prédire la probabilité d'un résultat qui ne peut avoir que deux valeurs. L'utilisation de la régression linéaire n'est pas adaptée lorsque vous avez une variable binaire car :
- La régression linéaire prédirait des valeurs en dehors de la plage requise
- La régression peut ne pas répartir les deux avantages sur une ligne prédite
La régression logistique ne produit pas de ligne comme le fait une régression linéaire. Il fournit une courbe logistique comprise entre 0 et une valeur supérieure à 1.
Apprenez des cours en ligne sur la science des données dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Consultez : Idées de projets R
Dérivation de l'équation de régression logistique
Nous pouvons dériver l'équation de régression logistique de l'équation de régression linéaire. La régression logistique appartient à la classe des algorithmes glm (modèle linéaire généralisé). Nelder et Wedderburn ont introduit ce modèle en 1972 comme méthode d'utilisation de la régression linéaire pour résoudre des problèmes qu'il ne pouvait pas résoudre auparavant. Ils avaient proposé une classe de modèles séparés et avaient ajouté la régression logistique comme modèle spécial.
On sait que l'équation d'un modèle linéaire généralisé est la suivante :
g(e<y) = a + bx1
g() représente la fonction de lien, E(y) représente l'espérance de la variable cible et le RHS (côté droit) est le prédicteur linéaire. La fonction de lien « relie » l'espérance de y au prédicteur linéaire.
Supposons que nous ayons des données sur 100 clients et que nous devions prédire si un client achètera un produit spécifique ou non. Comme nous avons une variable de résultat catégorique, nous devons utiliser la régression logistique.
Commençons par une équation de régression linéaire :
g(y) = o+(revenu) — (1)
Ici, nous avons conservé la variable indépendante comme « revenu » pour faciliter la compréhension.
Nous nous concentrons sur la probabilité de la variable dépendante résultante (le client achètera-t-il ou non ?). Comme nous l'avons déjà vu, g() est notre fonction de lien, et elle est basée sur la probabilité de succès (p) et la probabilité d'échec (1-p). p doit avoir les qualités suivantes :
- p doit toujours être positif
- p doit toujours être inférieur ou égal à 1
Maintenant, nous allons noter g() avec 'p' et dériver notre équation de régression logistique.
Comme la probabilité est toujours positive, nous couvrirons l'équation linéaire sous sa forme exponentielle et obtiendrons le résultat suivant :
p = exp(0+(revenu)) = e((0+(revenu)) — (2)
Nous devrons diviser p par un nombre supérieur à p pour rendre la probabilité inférieure à 1 :
p = exp(0+(revenu)) / (0+(revenu)) + 1 = e(0+(revenu)) / (0+(revenu)) + 1 — (3)
En utilisant l'éq. (1), (2) et (3), nous pouvons définir p comme :
p = ey /1 + ey — (4)
Ici, p est la probabilité de succès, donc 1-p doit être la probabilité d'échec :
q = 1 – p = 1 -(ey /1 + ey) — (5)
Divisons maintenant (4) par (5) :
p / 1 – p = ey
Si nous prenons log des deux côtés, nous obtenons ce qui suit :
log (p / 1 – p) = y
C'est la fonction de lien. Lorsque nous substituons la valeur de y que nous avions établie précédemment, nous obtenons :
log(p / 1 – p) = o + (revenu)
Et voilà, l'équation de régression logistique. Comme il fournit la probabilité d'un résultat, sa valeur reste toujours comprise entre 0 et au-dessus de 1.
Lisez à propos de : 9 idées et sujets de projets de régression linéaire intéressants pour les débutants
Exemple de régression logistique dans R
Dans notre cas de régression logistique dans R, nous utilisons des données de l'UCLA (Université de Californie, Los Angeles). Ici, nous devons créer un modèle qui prédit les chances d'être admis en fonction des données dont nous disposons. Nous avons quatre variables, y compris GPA, score GRE, le rang du collège de premier cycle de l'étudiant et avouer.
df <- read.csv(“https://stats.idre.ucla.edu/stat/data/binary.csv”)
chaîne(df)
## 'data.frame' : 400 obs. de 4 variables :
## $ admettre : int 0 1 1 1 0 1 1 0 1 0 …
## $ gre : int 380 660 800 640 520 760 560 400 540 700 …
## $ gpa : nombre 3.61 3.67 4 3.19 2.93 3 2.98 3.08 3.39 3.92 …
## $ rang : int 3 3 1 4 4 2 1 2 3 2 …
Les variables sont soit des nombres soit des nombres entiers :
somme(is.na(df))
## [dix
Nous constatons également qu'il n'y a pas de valeurs nulles et qu'il y a plus d'événements de rejets que d'acceptations car la moyenne de la variable limite est inférieure à 0,5.

Vous devez vous assurer que le système distribue les admissions de manière appropriée dans chaque catégorie de rang. Supposons qu'un rang n'ait que 5 rejets (ou admettent des informations), alors vous n'avez pas nécessairement à utiliser ce rang dans votre analyse.
xtabs(~ admettre +rang ,data=df)
## rang
## admettre 1 2 3 4
## 0 28 97 93 55
## 1 33 54 28 12
Exécutons notre fonction maintenant :
df$rank <- as.factor(df$rank)
logit <- glm(admit ~ gre+gpa+rank,data=df,family=”binomial”)
résumé (logit)
##
## Appel:
## glm(formula = admit ~ gre + gpa + rank, family = "binomial",
## données = df)
##
## Résidus de déviance :
## Min 1Q Médiane 3Q Max
## -1.6268 -0.8662 -0.6388 1.1490 2.0790
##
## Coefficients :
## Estimation Std. Valeur d'erreur z Pr(>|z|)
## (Interception) -3,989979 1,139951 -3,500 0,000465 ***
## gr 0.002264 0.001094 2.070 0.038465 *
## gpa 0.804038 0.331819 2.423 0.015388 *
## rang2 -0,675443 0,316490 -2,134 0,032829 *
## rang3 -1.340204 0.345306 -3.881 0.000104 ***
## rang4 -1,551464 0,417832 -3,713 0,000205 ***
## —
## Signif. code : 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Paramètre de dispersion pour la famille binomiale pris égal à 1)
##
## Déviance nulle : 499,98 sur 399 degrés de liberté
## Écart résiduel : 458,52 sur 394 degrés de liberté
## CIA : 470,52
##
## Nombre d'itérations de Fisher Scoring : 4
Vous avez dû remarquer que nous avons converti la variable de rang en facteur à partir d'un nombre entier avant d'exécuter la fonction. Assurez-vous de faire de même.
Résultat final:
Supposons que le GPA d'un étudiant soit de 3,8, un score GRE de 790 et qu'il ait étudié dans un collège de rang 1. Trouvons ses chances d'être admis dans le futur en utilisant notre modèle :
x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))
p<- prédire(logit,x)
p
## 1
## 0.85426
Notre modèle prédit que le garçon a 85 % de chances d'être admis à l'avenir.
Lisez aussi : Idées de projets d'apprentissage automatique
Dernières pensées
Voilà pour cet article. Nous sommes convaincus que vous l'auriez trouvé très utile. Si vous avez des questions ou des réflexions sur la régression logistique et ses sujets connexes, veuillez les partager dans la section des commentaires ci-dessous.
Si vous êtes curieux d'en savoir plus sur R, tout sur la science des données, consultez le programme exécutif PG de IIIT-B & upGrad en science des données qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, du mentorat avec experts de l'industrie, 1-on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.
En quoi la régression logistique et la régression linéaire sont-elles différentes l'une de l'autre ?
L'objectif de la régression linéaire est d'identifier la ligne la mieux ajustée, mais la régression logistique va encore plus loin et adapte les valeurs de la ligne à la courbe sigmoïde. La principale différence entre ces deux méthodes est que la régression logistique est appliquée lorsque la variable dépendante est binaire. Lorsque la variable dépendante est continue et que la droite de régression est linéaire, la régression linéaire est utilisée. Alors que la technique des moindres carrés ordinaires est utilisée pour estimer la régression linéaire, la méthode d'estimation du maximum de vraisemblance est utilisée pour estimer la régression logistique. La sortie de la régression linéaire est continue, mais celle de la régression logistique n'a qu'un nombre restreint de valeurs potentielles discrètes.
Quand l'utilisation de la régression logistique est-elle utile ?
La variable dépendante catégorielle est prédite à l'aide d'une régression logistique. Lorsque les données dont nous disposons peuvent être mesurées à l'échelle infinie, nous pouvons appliquer une régression logistique. Pour estimer la probabilité d'un événement, une analyse de régression logistique est utile. Il aide à déterminer la probabilité de deux classes. Seuls les résultats de classification et de probabilité peuvent être prédits à l'aide de la régression logistique. Il peut être utilisé pour résoudre divers problèmes de classification tels que la détection de spam, la prédiction du diabète, le diagnostic du cancer, etc.
Quelles sont les limites de l'utilisation de la régression logistique ?
1. Étant donné que la régression logistique a une surface de décision linéaire, elle ne peut pas résoudre les problèmes non linéaires.
2. L'algorithme de régression logistique est sensible aux valeurs aberrantes.
3. Comme la mise à l'échelle et la normalisation sont des critères clés de la régression logistique, la préparation des données peut prendre du temps.
4. S'il existe une fonctionnalité qui sépare complètement deux classes, le modèle ne peut plus être entraîné. C'est ce qu'on appelle une «séparation complète».
5. Si le nombre d'observations est inférieur au nombre d'entités, la régression logistique ne doit pas être appliquée car elle peut entraîner un surajustement.
6. Un autre inconvénient est que chaque point de données dans la régression logistique doit être indépendant de tous les autres points de données. Lorsque les observations sont connectées, le modèle a tendance à surestimer la pertinence de ces observations.
