Einführung Logistische Regression in R

Logistische Regression in R auch als binäre Klassifizierungsprobleme bekannt. Sie werden verwendet, um ein Ergebnis als (1 oder 0, entweder Ja / Nein) für eine unabhängige Variable vorherzusagen. Um die logistische Regression in R zu verstehen, ist es wichtig, die grundlegende lineare Regression zu kennen, die mit der kontinuierlichen Ergebnisvariablen arbeitet. Genauer gesagt kann man sagen, dass es sich um eine Erweiterung der linearen Regression handelt. In diesem Artikel werden verschiedene Methoden zur Berechnung des Modells und zur Bewertung erörtert. Die logistische Regression wird zur Lösung von Klassifizierungsproblemen beim maschinellen Lernen verwendet.

Wie funktioniert die logistische Regression in R?

Die logistische Regression ist eine statistische Methode, mit der die Differenz zwischen einer abhängigen und einer unabhängigen Variablen unter Berücksichtigung der logistischen Funktion durch Schätzung des unterschiedlichen Auftretens von Wahrscheinlichkeiten gemessen wird. Sie können entweder binomial (mit Ja oder Nein) oder multinomial (fair oder schlecht, sehr schlecht) sein. Die Wahrscheinlichkeitswerte liegen zwischen 0 und 1 und die Variable sollte positiv sein (<1). Es zielt auf die abhängige Variable ab und umfasst die folgenden Schritte:

  1. n- Anzahl fester Versuche mit einem aufgenommenen Datensatz
  2. mit zwei Ergebnissen Studie
  3. Das Ergebnis der Wahrscheinlichkeit sollte unabhängig voneinander sein
  4. Die Wahrscheinlichkeit für Erfolg und Misserfolg muss bei jedem Versuch gleich sein.

In diesem Beispiel betrachten wir das ISLR-Paket, das verschiedene Datensätze für das Training bereitstellt. Zur Anpassung des Modells wird hier die generalisierte lineare Modellfunktion (glm) verwendet. Um eine logistische Regression zu erstellen, wird die Funktion glm bevorzugt. Sie ermittelt die Details anhand einer Zusammenfassung für die Analyseaufgabe.

Arbeitsschritte:

Die Arbeitsschritte zur logistischen Regression folgen bestimmten Begriffselementen wie

  • Modellierung der Wahrscheinlichkeit oder Wahrscheinlichkeitsschätzung
  • Prognose
  • Initialisierungsschwellenwert (hohe oder niedrige Spezifität)
  • Verwirrung Matrix
  • Der Darstellungsbereich unter der Kurve (AUC)

Beispiele

Im Folgenden finden Sie ein Beispiel für die logistische Regression in R:

Daten werden geladen:

Installieren des ISLR-Pakets.

erfordern (ISLR)

Erforderliches Paket wird geladen: ISLR

Für diesen Artikel verwenden wir einen Datensatz 'Wöchentlich' in RStudio. Der Datensatz beinhaltet die Zusammenfassung der wöchentlichen Bestände von 1990 bis 2010.

erfordern (ISLR)

Namen (ABl.)

Ausgabe:

(1) "Purchase" "WeekofPurchase" "StoreID" "PriceCH"

(5) "PriceMM" "DiscCH" "DiscMM" "SpecialCH"

(9) "SpecialMM" "LoyalCH" "SalePriceMM" "SalePriceCH"

(13) "PriceDiff" "Store7" "PctDiscMM" "PctDiscCH"

(17) "ListPriceDiff" "STORE"

str (ABl.)

Zeigt 1070 Beobachtungen von 18 Variablen.

Unser Datensatz enthält 1070 Beobachtungen und 18 verschiedene Variablen. Hier haben wir spezielle MM und spezielle CH hat ein abhängiges Ergebnis. Nehmen wir ein spezielles MM-Attribut, um eine korrekte Beobachtung und eine Genauigkeit von 84% zu erhalten.

Tabelle (ABl. $ SpecialMM)

0 1

897 173

Weiter, um die Wahrscheinlichkeit zu finden

897/1070

(1) 0, 8383178

Im nächsten Schritt für eine bessere Stichprobe ist die Aufteilung des Datensatzes in Trainings- und Testdaten ein Kinderspiel

Bibliothek (caTools)

Saatgut (88)

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

Berücksichtigt man, dass qt ein Trainingsset und qs Testset-Beispieldaten hat.

qt = Teilmenge (OJ, split == TRUE)

qs = Teilmenge (OJ, split == FALSE)

nrow (qt)

(1) 898

nrow (qs)

(1) 172

Deshalb haben wir 898 Trainingsgeräte und 172 Testmuster.

Die nächste Verwendung von Summary () gibt die Details der Abweichungs- und Koeffiziententabellen für die Regressionsanalyse an.

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

Zusammenfassung (QualityLog)

Ausgabe:

Anruf:

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

data = qt)

Abweichungsreste:

Min 1Q Median 3Q Max

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

Koeffizienten:

Schätzung Std. Fehler z Wert Pr (> | z |)

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

SalePriceMM -4.538464 0.405808 -11.184 <2e-16 ***

WeekofPurchase 0.015546 0.005831 2.666 0.00767 **

-

Nullabweichung: 794, 01 bei 897 Freiheitsgraden

Restabweichung: 636, 13 bei 895 Freiheitsgraden

AIC: 642, 13

Anzahl der Fisher-Scoring-Iterationen: 5

Aus der obigen Analyse geht hervor, dass die Koeffiziententabelle positive Werte für WeekofPurchase enthält und mindestens zwei Sterne aufweist, was impliziert, dass es sich um die signifikanten Codes für das Modell handelt.

Vorhersage-Technik:

Hier werden wir die Predict Train-Funktion in diesem R-Paket verwenden und Wahrscheinlichkeiten angeben, die wir mit dem Argument type = response verwenden. Sehen wir uns die Vorhersage an, die auf das Trainingsset (qt) angewendet wird. Das R sagt das Ergebnis in Form von P (y = 1 | X) mit der Grenzwahrscheinlichkeit von 0, 5 voraus.

predictTrain = predict (QualityLog, type = ”response”)

Die Zusammenfassung ergibt einen Median, einen Mittelwert und einen Minimal- und Maximalwert.

Zusammenfassung (predictTrain) Die Ausführung gibt

Mindest. 1st Qu.Median Mean 3rd Qu.Max.

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

tapply (predictTrain, qt $ SpecialMM)

Um den Durchschnitt für die wahren Wahrscheinlichkeiten zu berechnen, wird die Funktion tapply () verwendet.

tapply (predictTrain, qt $ SpecialMM, mean)

0 1

0, 1224444 0, 3641334

Daher stellen wir in der obigen Aussage fest, dass die Möglichkeit eines wahren SpecialMM-Mittelwerts 0, 34 und eines wahren schlechten Werts 0, 12 beträgt.

Berechnung des Schwellenwertes:

Wenn P> T ist, ist die Vorhersage schlecht

wenn P ist

Klassifizierungsmatrix:

Tabelle (qt $ SpecialMM, predictTrain> 0.5)

FALSCH RICHTIG

0 746 7

1 105 40

Sensitivität und Spezifität berechnen

40/145

(1) 0, 2758621

746/753

(1) 0, 9907039

Testset Vorhersage

predictTest = predict (QualityLog, type = "response", newdata = qs)

Tabelle (qs $ SpecialMM, predictTest> = 0.3)

FALSCH RICHTIG

0 130 14

1 10 18

Tabelle (qs $ SpecialMM, predictTest> = 0, 5)

FALSCH RICHTIG

0 140 4

1 18 10

Berechnungsgenauigkeit

150/172

(1) 0, 872093

Es gibt 172 Fälle, von denen 144 gut und 28 schlecht sind.

Zeichnen der ROC-Kurve:

Dies ist der letzte Schritt durch Auftragen der ROC-Kurve für Leistungsmessungen. Ein guter AUC-Wert sollte näher bei 1 liegen als bei 0, 5. Überprüfung mit den Wahrscheinlichkeiten 0, 5, 0, 7, 0, 2, um vorherzusagen, wie der Schwellenwert zunimmt und abnimmt. Dies erfolgt durch gleichzeitiges Auftragen von Schwellenwerten in die ROC-Kurve. Eine gute Wahl ist die Auswahl unter Berücksichtigung einer höheren Empfindlichkeit.

Logistische Regressionstechniken

Sehen wir uns eine Implementierung der Logistik mit R an, da es sehr einfach ist, das Modell anzupassen. Es gibt zwei Arten von Techniken:

  • Multinomial Logistic Regression
  • Ordinale logistische Regression

Früher wird mit Antwortvariablen gearbeitet, wenn sie mehr als oder gleich zwei Klassen haben. später funktioniert, wenn die Reihenfolge wichtig ist.

Fazit

Daher haben wir die grundlegende Logik hinter der Regression gelernt und gleichzeitig die logistische Regression für einen bestimmten Datensatz von R implementiert. Eine binomische oder binäre Regression misst kategoriale Werte von binären Antworten und Prädiktorvariablen. Sie spielen eine wichtige Rolle in der Analytik, bei der Branchenexperten erwarten, dass sie die lineare und logistische Regression kennen. Sie haben ihre eigenen Herausforderungen und im praktischen Beispiel haben wir die Schritte zur Datenbereinigung und Vorverarbeitung durchgeführt. Insgesamt haben wir gesehen, wie die logistische Regression auf einfache und einfache Weise das Problem des kategorialen Ergebnisses löst.

Empfohlene Artikel

Dies war ein Leitfaden für die logistische Regression in R. Hier diskutieren wir die Arbeitsweise, verschiedene Techniken und umfassende Erklärungen zu verschiedenen Methoden, die in der logistischen Regression in R verwendet werden. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Frameworks für maschinelles Lernen
  2. R gegen Python
  3. Python-String-Funktionen
  4. Ist Python eine Skriptsprache?
  5. Binomialverteilung in R | Syntax
  6. Regression gegen Klassifikation

Kategorie: