Introduction Régression logistique dans R

Régression logistique dans R également connue sous le nom de problèmes de classification binaire. Ils sont utilisés pour prédire un résultat comme (1 ou 0 oui / non) pour une variable indépendante. Pour comprendre la régression logistique dans R, il est important de connaître la régression linéaire de base, fonctionne avec la variable de résultat continue. Plus précisément, nous pouvons dire que c'est une extension de la régression linéaire. Dans cet article, nous discuterons des différentes méthodes utilisées pour calculer le modèle et l'évaluation. La régression logistique est utilisée pour résoudre les problèmes de classification dans l'apprentissage automatique.

Comment fonctionne la régression logistique dans R?

La régression logistique est une technique utilisée dans le domaine des statistiques mesurant la différence entre une variable dépendante et indépendante avec le guide de la fonction logistique en estimant les différentes occurrences de probabilités. Ils peuvent être soit binomiaux (a un résultat oui ou non), soit multinomiaux (passables vs pauvres très pauvres). Les valeurs de probabilité se situent entre 0 et 1 et la variable doit être positive (<1). Il cible la variable dépendante et a les étapes suivantes à suivre:

  1. n- n ° d'essais fixes sur un ensemble de données prélevé
  2. avec essai à deux résultats
  3. le résultat de la probabilité doit être indépendant les uns des autres
  4. La probabilité de succès et d'échecs doit être la même à chaque essai.

En cela, nous considérons un exemple en prenant le package ISLR, qui fournit divers ensembles de données pour la formation. Pour ajuster le modèle, la fonction de modèle linéaire généralisé (glm) est utilisée ici. Pour construire une fonction de régression logistique glm est préférable et obtient les détails à l'aide d'un résumé pour la tâche d'analyse.

Étapes de travail:

Les étapes de travail sur la régression logistique suivent certains éléments de terme comme

  • Modéliser la probabilité ou faire une estimation de probabilité
  • prédiction
  • Initialisation de la valeur seuil (spécificité élevée ou faible)
  • Matrice de confusion
  • La zone de traçage sous la courbe (AUC)

Exemples

Voici quelques exemples de régression logistique dans R:

Chargement des données:

Installation du package ISLR.

exiger (ISLR)

Chargement du package requis: ISLR

Pour cet article, nous allons utiliser un ensemble de données 'Weekly' dans RStudio. L'ensemble de données implique les détails récapitulatifs du stock hebdomadaire de 1990 à 2010.

exiger (ISLR)

noms (JO)

Production:

(1) «Achat» «WeekofPurchase» «StoreID» «PriceCH»

(5) «PriceMM» «DiscCH» «DiscMM» «SpecialCH»

(9) «SpecialMM» «LoyalCH» «SalePriceMM» «SalePriceCH»

(13) «PriceDiff» «Store7» «PctDiscMM» «PctDiscCH»

(17) ”ListPriceDiff” “MAGASIN”

str (JO)

Affiche 1070 observations de 18 variables.

Notre ensemble de données comprend 1070 observations et 18 variables différentes. nous avons ici un MM spécial et un CH spécial a un résultat dépendant. Prenons un attribut MM spécial pour avoir une observation correcte et une précision de 84%.

tableau (OJ $ SpecialMM)

0 1

897 173

Ensuite pour trouver la probabilité

897/1070

(1) 0, 8383178

À l'étape suivante pour un meilleur échantillon La division de l'ensemble de données en ensemble de données de formation et de test est une erreur

bibliothèque (caTools)

set.seed (88)

split = sample.split (OJ $ SpecialMM, SplitRatio = 0.84)

Considérant que qt a un ensemble d'apprentissage et qs a des données d'échantillons d'ensemble de tests.

qt = sous-ensemble (OJ, split == TRUE)

qs = sous-ensemble (OJ, split == FALSE)

nrow (qt)

(1) 898

nrow (qs)

(1) 172

Nous avons donc 898 kits de formation et 172 échantillons de test.

Ensuite, l'utilisation de Summary () donne les détails de la déviance et des tableaux de coefficients pour l'analyse de régression.

QualityLog = glm (SpecialMM ~ SalePriceMM + WeekofPurchase, data = qt, family = binomial)

résumé (QualityLog)

Production:

Appel:

glm (formule = SpecialMM ~ SalePriceMM + WeekofPurchase, family = binomial,

données = qt)

Résidus de déviance:

Min 1Q Médian 3Q Max

-1, 2790 -0, 4182 -0, 3687 -0, 2640 2, 4284

Coefficients:

Estimer Std. Erreur valeur z Pr (> | z |)

(Interception) 2, 910774 1, 616328 1, 801 0, 07173.

Prix ​​de venteMM -4.538464 0.405808 -11.184 <2e-16 ***

Semaine d'achat 0, 015546 0, 005831 2, 666 0, 00767 **

-

Déviance nulle: 794, 01 sur 897 degrés de liberté

Déviance résiduelle: 636, 13 sur 895 degrés de liberté

AIC: 642.13

Nombre d'itérations de notation de Fisher: 5

D'après l'analyse ci-dessus, il est dit que le tableau des coefficients donne des valeurs positives pour WeekofPurchase et qu'ils ont au moins deux étoiles, ce qui implique qu'ils sont les codes significatifs du modèle.

Technique de prédiction:

Ici, nous utiliserons la fonction prédire Train dans ce package R et fournirons des probabilités que nous utilisons un argument nommé type = response. Voyons la prédiction appliquée à l'ensemble d'apprentissage (qt). Le R prédit le résultat sous la forme de P (y = 1 | X) avec une probabilité limite de 0, 5.

prédireTrain = prédire (QualityLog, type = ”réponse”)

Le résumé donne une valeur médiane, moyenne et min, max.

résumé (preditrain) L'exécution donne

Min. 1ère Qu.Moyenne Moyenne 3ème Qu.Max.

0, 02192 0, 03342 0, 07799 0, 16147 0, 25395 0, 89038

tapply (preditrain, qt $ SpecialMM)

Pour calculer la moyenne des vrais probabilités, la fonction tapply () est utilisée.

tapply (preditrain, qt $ SpecialMM, moyenne)

0 1

0, 1224444 0, 3641334

Par conséquent, nous trouvons dans l'énoncé ci-dessus que la possibilité d'une vraie valeur SpecialMM signifie 0, 34 et pour une valeur vraiment mauvaise est 0, 12.

Calcul du seuil:

si P est> T– la prédiction est mauvaise MM spécial

si P est

Matrice de classification:

table (qt $ SpecialMM, preditTrain> 0, 5)

FAUX VRAI

0 746 7

1 105 40

Pour calculer la sensibilité et la spécificité

40/145

(1) 0, 2758621

746/753

(1) 0, 9907039

Ensemble de test Prediction

PredictTest = Predict (QualityLog, type = “response”, newdata = qs)

table (qs $ SpecialMM, preditTest> = 0, 3)

FAUX VRAI

0 130 14

1 10 18

table (qs $ SpecialMM, preditTest> = 0, 5)

FAUX VRAI

0 140 4

1 18 10

Calcul de la précision

150/172

(1) 0, 872093

Il y a 172 cas dont 144 sont bons et 28 sont pauvres.

Tracer la courbe ROC:

Il s'agit de la dernière étape en traçant la courbe ROC pour les mesures de performances. Une bonne valeur AUC devrait être plus proche de 1 et non de 0, 5. Vérification avec les probabilités 0, 5, 0, 7, 0, 2 pour prédire comment la valeur seuil augmente et diminue. Cela se fait en traçant les valeurs de seuil simultanément dans la courbe ROC. Un bon choix consiste à choisir une sensibilité plus élevée.

Techniques de régression logistique

Voyons une implémentation de la logistique en utilisant R, car cela rend très facile l'ajustement du modèle. Il existe deux types de techniques:

  • Régression logistique multinomiale
  • Régression logistique ordinale

Former fonctionne avec des variables de réponse lorsqu'elles ont plus ou égal à deux classes. fonctionne plus tard lorsque la commande est importante.

Conclusion

Par conséquent, nous avons appris la logique de base de la régression parallèlement à la mise en œuvre de la régression logistique sur un ensemble de données particulier de R. Une régression binomiale ou binaire mesure les valeurs catégorielles des réponses binaires et des variables prédictives. Ils jouent un rôle vital dans l'analyse où les experts de l'industrie s'attendent à connaître la régression linéaire et logistique. Ils ont leurs propres défis et dans l'exemple pratique, nous avons terminé les étapes de nettoyage des données, de prétraitement. Dans l'ensemble, nous avons vu comment la régression logistique résout un problème de résultat catégorique de manière simple et facile.

Articles recommandés

Cela a été un guide pour la régression logistique dans R. Ici, nous discutons du travail, des différentes techniques et des explications générales sur les différentes méthodes utilisées dans la régression logistique dans R. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Cadres d'apprentissage automatique
  2. R vs Python
  3. Fonctions de chaîne Python
  4. Python est-il un langage de script
  5. Distribution binomiale en R | Syntaxe
  6. Régression vs classification

Catégorie: