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:
- n- Anzahl fester Versuche mit einem aufgenommenen Datensatz
- mit zwei Ergebnissen Studie
- Das Ergebnis der Wahrscheinlichkeit sollte unabhängig voneinander sein
- 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, 8383178Im 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) 898nrow (qs)
(1) 172Deshalb 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
746/753
(1) 0, 9907039Testset 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, 872093Es 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 -
- Frameworks für maschinelles Lernen
- R gegen Python
- Python-String-Funktionen
- Ist Python eine Skriptsprache?
- Binomialverteilung in R | Syntax
- Regression gegen Klassifikation