Vollständige Offenlegung: Dies sind Hausaufgaben. Ich habe einen Link zum Datensatz hinzugefügt ( http://www.bertelsen.ca/R/logistic-regression.sav )
Mein Ziel ist es, die Vorhersage der Kreditausfälle in diesem Datensatz zu maximieren.
Jedes Modell, das ich mir bisher ausgedacht habe, sagt> 90% der Nichtausfälle voraus, aber <40% der Ausfälle, wodurch die Klassifizierungseffizienz insgesamt ~ 80% beträgt. Ich frage mich also, ob es Interaktionseffekte zwischen den Variablen gibt. Gibt es innerhalb einer logistischen Regression außer dem Testen jeder möglichen Kombination eine Möglichkeit, mögliche Interaktionseffekte zu identifizieren? Oder alternativ ein Weg, um die Effizienz der Klassifizierung von Säumigen zu steigern.
Ich stecke fest, alle Empfehlungen wären hilfreich für Ihre Wortwahl, R-Code oder SPSS-Syntax.
Meine primären Variablen sind im folgenden Histogramm und Streudiagramm dargestellt (mit Ausnahme der dichotomen Variablen).
Eine Beschreibung der primären Variablen:
age: Age in years
employ: Years with current employer
address: Years at current address
income: Household income in thousands
debtinc: Debt to income ratio (x100)
creddebt: Credit card debt in thousands
othdebt: Other debt in thousands
default: Previously defaulted (dichotomous, yes/no, 0/1)
ed: Level of education (No HS, HS, Some College, College, Post-grad)
Zusätzliche Variablen sind nur Transformationen der oben genannten. Ich habe auch versucht, einige der stetigen Variablen in kategoriale Variablen umzuwandeln und in das Modell zu implementieren.
Wenn Sie es schnell in R einfügen möchten, finden Sie es hier:
## R Code
df <- read.spss(file="http://www.bertelsen.ca/R/logistic-regression.sav", use.value.labels=T, to.data.frame=T)
quelle
Antworten:
In solchen unausgeglichenen Datensätzen können Sie normalerweise die Klassifizierungsleistung verbessern, indem Sie nicht mehr eine angepasste Wahrscheinlichkeit von 0,5 als Grenzwert für die Klassifizierung von Fällen in säumige und nicht säumige Fälle verwenden. Zum Beispiel erhalte ich korrekte Klassifizierungsraten von .88 und .58 mit einem Cutpoint von .4 für einen glm mit allen Interaktionen 2. Ordnung. (Was wahrscheinlich zu Überanpassung führt und einige Rangprobleme zu haben scheint, aber das ist eine andere Geschichte.)
Code:
Teilleistung:
quelle
Ich bin kein Experte für logistische Regressionen, aber liegt es nicht nur an unausgeglichenen Daten? Wahrscheinlich haben Sie viel mehr Nicht-Säumige als Säumige, was die Vorhersage möglicherweise dahingehend verschiebt, dass Sie mit größeren Klassen besser umgehen können. Versuchen Sie einige Nicht-Säumige rauszuschmeißen und sehen Sie, was passiert.
quelle
In der logistischen Regression, bei stark verzerrten Verteilungen von Ergebnisvariablen (wo es viel mehr Nichtereignisse zu Ereignissen gibt oder umgekehrt), muss der Schnittpunkt oder der Wahrscheinlichkeitstrigger angepasst werden, aber dies hat keinen großen Einfluss auf die Gesamtklassifizierung Effizienz. Dies wird immer in etwa gleich bleiben, aber Sie klassifizieren Ereignisse derzeit zu wenig, da die Wahrscheinlichkeit "zufällig" in einem solchen Datensatz die Wahrscheinlichkeit erhöht, dass Sie in Nichtereignisse klassifiziert werden. Dies muss angepasst werden. Tatsächlich ist es in einer solchen Situation nicht ungewöhnlich, dass die Gesamteffizienz der Klassifizierung abnimmt, da sie zuvor durch eine zufällige Fehleinschätzung aufgeblasen wurde.
Stellen Sie sich das so vor: Wenn Sie ein Ereignis haben, bei dem 90% es nicht tun und 10% es tun, dann erhalten Sie automatisch 90% richtig war, ohne es zu versuchen, nur ein reiner Zufall, aufgeblasen von der Schiefe seiner Verteilung.
Die Frage der Wechselwirkungen hat nichts mit dieser Verzerrung zu tun und sollte von der Theorie bestimmt werden. Sie werden die Klassifizierung höchstwahrscheinlich immer verbessern, indem Sie zusätzliche Begriffe hinzufügen, einschließlich des Hinzufügens von Interaktionen. Sie tun dies jedoch, indem Sie das Modell häufig überpassen. Sie müssen dann zurückgehen und dies interpretieren können.
Matt P Datenanalyst, University of Illinois Urbana Champaign
quelle
Sie können auch versuchen, alle Interaktionseffekte einzuschließen. Sie können dann die L1 / L2-regulierte logistische Regression verwenden, um Überanpassungen zu minimieren und alle hilfreichen Funktionen zu nutzen. Ich mag Hastie / Tibshiranis glmnet-Paket (http://cran.r-project.org/web/packages/glmnet/index.html) sehr.
quelle
Ich weiß, dass es bei Ihrer Frage um logistische Regression geht. Da es sich um eine Hausaufgabe handelt, kann Ihr Ansatz eingeschränkt sein. Wenn Sie jedoch an Interaktionen und der Genauigkeit der Klassifizierung interessiert sind, ist es möglicherweise interessant, CART zu verwenden, um dies zu modellieren.
Hier ist ein R-Code, um den Grundbaum zu erzeugen. Ich habe hier rpart auf den gesamten Datenrahmen gesetzt. Vielleicht nicht der beste Ansatz ohne Vorkenntnisse und eine Kreuzvalidierungsmethode:
Ich bin mir nicht sicher, wie ich die Klassifikationstabelle erstellen soll. Ausgehend von den vorhergesagten Werten des Modellobjekts und den ursprünglichen Werten sollte es nicht zu schwierig sein. Hat jemand hier irgendwelche Tipps?
quelle
predict
Methode zur Vorhersage,table(originalClasses,predictedClasses)
für die Tischkonstruktion. Ich habe RF ausprobiert (normalerweise hat es Genauigkeit wie in einem überladenen CART, aber keine Überanpassung) und das Ergebnis war nicht viel besser alsglm
.