Ist eine logistische Regression voreingenommen, wenn die Ergebnisvariable zwischen 5% und 95% aufgeteilt wird?

10

Ich erstelle ein Neigungsmodell unter Verwendung der logistischen Regression für einen Utility-Client. Ich mache mir Sorgen, dass meine "schlechten" Konten von der Gesamtstichprobe nur 5% betragen und der Rest alle gut sind. Ich sage "schlecht" voraus.

  • Wird das Ergebnis verzerrt sein?
  • Was ist das optimale Verhältnis von schlecht zu gut, um ein gutes Modell zu bauen?
navaneeth
quelle
Ich denke, es ist immer besser, 50% der Waren und 50% der Bads gemäß der Faustregel zu haben. Das Out-of-OG des Modells darf nicht auf die Probe vorgespannt werden.

Antworten:

7

Ich war mit den anderen Antworten in den Kommentaren nicht einverstanden, daher ist es nur fair, dass ich meine eigenen gebe. Sei die Antwort (gute / schlechte Konten) und die Kovariaten.X.YX

Für die logistische Regression lautet das Modell wie folgt:

log(p(Y=1|X=x)p(Y=0|X=x))=α+i=1kxiβi

Überlegen Sie, wie die Daten gesammelt werden könnten:

  • Sie könnten die Beobachtungen zufällig aus einer hypothetischen "Population" auswählen.
  • Sie können die Daten basierend auf auswählen und sehen, welche Werte von auftreten.Y.XY

Beide sind für das obige Modell in Ordnung, da Sie nur die Verteilung von modellieren . Diese würden als prospektive Studie bezeichnet .Y|X

Alternative:

  • Sie können die Beobachtungen basierend auf auswählen (sagen wir jeweils 100) und die relative Prävalenz von (dh Sie schichten auf ). Dies wird als retrospektive oder Fall-Kontroll-Studie bezeichnet .X Y.YXY

(Sie können die Daten auch basierend auf und bestimmten Variablen von auswählen : Dies wäre eine geschichtete Fall-Kontroll-Studie, deren Arbeit viel komplizierter ist, daher werde ich hier nicht darauf eingehen.)X.YX

Aus der Epidemiologie ergibt sich ein schönes Ergebnis (siehe Prentice und Pyke (1979) ), dass für eine Fall-Kontroll-Studie die Schätzungen der maximalen Wahrscheinlichkeit für durch logistische Regression ermittelt werden können, wobei das prospektive Modell für retrospektive Daten verwendet wird.β

Wie ist das für Ihr Problem relevant?

Wenn Sie in der Lage sind, mehr Daten zu sammeln, können Sie sich einfach die fehlerhaften Konten ansehen und trotzdem die logistische Regression verwenden, um die zu schätzen (aber Sie müssten die anpassen , um die Über- berücksichtigen zu berücksichtigen) Darstellung). Angenommen, es kostet 1 US-Dollar für jedes zusätzliche Konto. Dann ist dies möglicherweise kostengünstiger, als wenn Sie nur alle Konten betrachten. αβiα

Wenn Sie jedoch bereits über ALLE möglichen Daten verfügen, macht eine Schichtung keinen Sinn: Sie würden einfach Daten wegwerfen (schlechtere Schätzungen abgeben) und dann das Problem haben, zu schätzen .α

Simon Byrne
quelle
Dies gilt jedoch nur, wenn Sie über genügend Daten verfügen, um die Minderheitsklasse angemessen darzustellen (was normalerweise das Problem ist, wenn ein großes Klassenungleichgewicht vorliegt - das Problem ist das Ungleichgewicht an sich, aber Sie haben nicht genügend Stichproben aus der Minderheit Klasse). In diesem Fall wäre eine Kreuzvalidierungs-basierte Differenzgewichtung der positiven und negativen Klassen, eine Anpassung des Alphas oder eine multiplikative Anpassung (alle äquivalenten IIRC) eine gute Idee, um die Minderheitsklasse zu stärken. Eine Schichtung der Daten wäre ein billiges und fröhliches Äquivalent.
Dikran Beuteltier
@Dikran: Ich sehe nicht, wie dies in diesem Fall nicht zutrifft: Sie müssen nicht die Minderheitsklasse repräsentieren, sondern nur den relativen Unterschied zur Mehrheit. Wenn Sie nicht genügend Daten dafür haben, hilft es nicht, Beobachtungen von der Mehrheit wegzuwerfen.
Simon Byrne
@ Simon, ich habe Ihnen zugestimmt, dass eine Schichtung keine gute Idee ist, es sei denn, Sie möchten Alpha nicht anpassen, die Muster neu gewichten oder die Ausgabe des Modells anpassen. Wie gesagt, das Problem mit dem Klassenungleichgewicht ist nicht das Ungleichgewicht an sich, sondern dass es nicht genügend Daten für die Minderheitsklasse gibt, um den "relativen Unterschied zur Mehrheit" angemessen zu definieren. Wenn dies geschieht, wird die Ausgabe im Durchschnitt in Richtung der Mehrheitsklasse verschoben, und daher ist es hilfreich, etwas zu tun, um diese Verzerrung zu kompensieren. Schichtung ist eine Möglichkeit, aber bei weitem nicht die beste.
Dikran Beuteltier
@ Simon, übrigens danke für die Referenz von Prentice und Pyke, es sieht nützlich aus.
Dikran Beuteltier
1
@ Dikran: Es mag für andere Modelle voreingenommen sein, aber NICHT für logistische Regression, das ist der springende Punkt.
Simon Byrne
3

Asymptotisch ist das Verhältnis von positiven zu negativen Mustern im Wesentlichen irrelevant. Das Problem tritt hauptsächlich dann auf, wenn Sie zu wenige Stichproben der Minderheitsklasse haben, um ihre statistische Verteilung angemessen zu beschreiben. Durch Vergrößern des Datensatzes wird das Problem im Allgemeinen gelöst (sofern dies möglich ist).

Wenn dies nicht möglich ist, ist es am besten, die Daten erneut abzutasten, um einen ausgeglichenen Datensatz zu erhalten, und dann eine multiplikative Anpassung an die Ausgabe des Klassifikators vorzunehmen, um den Unterschied zwischen dem Trainingssatz und den betrieblichen relativen Klassenfrequenzen auszugleichen. Während Sie den (asymptotisch) optimalen Anpassungsfaktor berechnen können, ist es in der Praxis am besten, die Anpassung mithilfe einer Kreuzvalidierung abzustimmen (da es sich eher um einen endlichen praktischen als um einen asymptotischen Fall handelt).

In solchen Situationen verwende ich häufig ein Modellkomitee, in dem jedes auf alle Minderheitenmuster und eine andere Zufallsstichprobe der Mehrheitsmuster mit der gleichen Größe wie die Minderheitenmuster trainiert wird. Dies schützt vor Pech bei der Auswahl einer einzelnen Teilmenge der Mehrheitsmuster.

Dikran Beuteltier
quelle
2
Aber ist dies für die logistische Regression relevant? Wir müssen nicht die statistische Verteilung beider Klassen beschreiben, sondern nur die relativen Quotenverhältnisse (siehe meinen Kommentar zu @Henry).
Simon Byrne
In einem univariaten Beispiel vielleicht, aber wenn Sie mehr als eine erklärende Variable haben, benötigen Sie Informationen über die Verteilung von Mustern, um die "Diskriminante" korrekt auszurichten.
Dikran Beuteltier
Wäre es nicht besser, die multiplikative Anpassung im Log Odds Space anzuwenden, bevor die Logistikfunktion angewendet wird?
rm999
IIRC, die assymptitisch optimale Anpassung besteht darin, mit dem Verhältnis von Betriebs- zu Trainingssatzklassenfrequenzen zu multiplizieren. Dies basiert auf der Bayes-Regel und wird daher eher auf die Wahrscheinlichkeiten als auf das Log-Odds-Verhältnis angewendet. Da wir jedoch nur versuchen, eine mathematisch unlösbare Unzulänglichkeit in der Schätzung zu korrigieren, spielt es wahrscheinlich keine große Rolle, wie die Anpassung vorgenommen wird, es ist wirklich nur ein "Fudge-Faktor".
Dikran Beuteltier
@ Dikran: Ich verstehe nicht, was du damit meinst, die "Diskriminante" richtig auszurichten. Selbst im multivariaten Fall berechnet die logistische Regression immer noch nur die relativen Quotenverhältnisse.
Simon Byrne
1

Theoretisch können Sie besser unterscheiden, wenn die Anteile von "gut" und "schlecht" ungefähr gleich groß sind. Möglicherweise können Sie dies erreichen, indem Sie eine geschichtete Stichprobe erstellen, schlechte Fälle überabtasten und dann neu gewichten, um später zu den tatsächlichen Proportionen zurückzukehren.

Dies birgt einige Risiken. Insbesondere wird Ihr Modell wahrscheinlich Personen als "potenziell schlecht" kennzeichnen - vermutlich diejenigen, die ihre Stromrechnungen bei Fälligkeit möglicherweise nicht bezahlen. Es ist wichtig, dass die Auswirkungen von Fehlern dabei richtig erkannt werden: Insbesondere, wie viele "gute Kunden" vom Modell als "potenziell schlecht" eingestuft werden, und es ist weniger wahrscheinlich, dass Sie die Neugewichtung falsch verstehen, wenn Sie Ihre nicht verzerrt haben Modell durch geschichtete Stichprobe.

Henry
quelle
Eigentlich glaube ich nicht, dass dies für die logistische Regression zutrifft: Der Odds-Ratio-Parameter (der die Diskriminierung durchführt) ist für die Schichtung der Antwortvariablen unveränderlich. Aus diesem Grund kann es für Fall-Kontroll-Studien verwendet werden.
Simon Byrne
@Simon: Ich bin mit Ihrem Kommentar zum Odds Ratio nicht einverstanden, aber ich habe gesehen, dass die Leute dies nach einer geschichteten Stichprobe nicht korrekt auf die Konsequenzen für die Bevölkerung zurückführen, wenn sie dies in anderen Fällen getan haben. Wenn Sie beispielsweise feststellen, dass Personen, für die Faktor A zutrifft, doppelt so häufig "schlecht" sind wie Personen ohne Faktor A, sollte sich dies bei einer geschichteten Stichprobe nicht ändern. Wenn Sie jedoch wissen möchten, wie hoch der Bevölkerungsanteil sein wird Unnötig betroffen, wenn Sie auf diejenigen mit Faktor A abzielen, müssen Sie die Informationen aus Ihren Proben sorgfältig gewichten.
Henry
Entschuldigung, das war nicht das bisschen, mit dem ich nicht einverstanden war. Es war das erste Bit: Eine Konsequenz der Invarianz ist, dass Sie, sobald Sie die Daten haben, keinen Sinn mehr haben, sie zu schichten, sondern einfach Daten wegwerfen. (Die Geschichte ist anders, wenn es um die Kosten für die Datenerfassung geht, daher gibt es Fall-Kontroll-Studien).
Simon Byrne
@ Simon: Wenn Sie "Fall-Kontroll-Studie" sagen, meinen Sie damit, dass Sie ursprünglich vorhaben, eine Stichprobe von "schlechten" Fällen und eine Stichprobe von "guten" Fällen zu entnehmen? Mit einem höheren Anteil an "schlechten" Fällen als dem geringen Anteil in der Bevölkerung? Wenn ja, habe ich dies in meiner Antwort mit "geschichtete Stichprobe, Überabtastung schlechter Fälle" beabsichtigt.
Henry
Ja, genau das habe ich auch gemeint. Die Frage schien darauf hinzudeuten, dass sie bereits Daten haben, daher wäre eine Schichtung sinnlos.
Simon Byrne
0

Es gibt viele Möglichkeiten, wie Sie sich logistische Regressionen vorstellen können. Am liebsten denke ich, dass Ihre Antwortvariable einer Bernoulli-Verteilung mit der Wahrscheinlichkeit folgt . Ein wiederum ist eine Funktion einiger Prädiktoren. Formeller:p i p iyipipi

P i = logit - 1 ( a + b 1 x 1 + . . . + b n x n ) logit - 1 = exp ( X )

yiBernoulli(pi)
pi=logit1(a+b1x1+...+bnxn)
wobeilogit1=exp(X)1+exp(x)

Ist es jetzt wichtig, dass Sie einen geringen Anteil an Fehlern haben (schlechte Konten)? Nicht wirklich, solange Ihre Beispieldaten ausgewogen sind, wie einige Leute bereits gezeigt haben. Wenn Ihre Daten jedoch nicht ausgewogen sind, kann das Abrufen weiterer Daten fast unbrauchbar sein, wenn einige Auswahleffekte nicht berücksichtigt werden. In diesem Fall sollten Sie Matching verwenden, aber das mangelnde Gleichgewicht kann Matching ziemlich nutzlos machen. Eine andere Strategie besteht darin, ein natürliches Experiment zu finden, sodass Sie instrumentelles Variablen- oder Regressionsdiskontinuitätsdesign verwenden können.

Zu guter Letzt, wenn Sie eine ausgewogene Stichprobe haben oder keine Auswahlverzerrung vorliegt, sind Sie möglicherweise besorgt darüber, dass das schlechte Konto selten ist. Ich denke nicht, dass 5% selten sind, aber für den Fall, werfen Sie einen Blick auf die Zeitung von Gary King über die Durchführung einer Logistik für seltene Ereignisse. Im Zelig-Paket können Sie in R eine Logistik für seltene Ereignisse ausführen.

Manoel Galdino
quelle
0

Okay, ich arbeite in der Betrugserkennung, daher ist diese Art von Problem für mich nicht neu. Ich denke, die Community für maschinelles Lernen hat einiges über unausgeglichene Daten zu sagen (wie in Klassen, die unausgeglichen sind). Es gibt also ein paar absolut einfache Strategien, von denen ich denke, dass sie bereits erwähnt wurden, und ein paar nette Ideen und einen Ausweg. Ich werde nicht einmal so tun, als ob ich wüsste, was dies für die Asymptotiker für Ihr Problem bedeutet, aber es scheint mir immer vernünftige Ergebnisse bei der logistischen Regression zu liefern. Möglicherweise ist irgendwo ein Papier drin, aber nicht sicher.

Hier sind Ihre Optionen, wie ich es sehe:

  1. Überprobe die Minderheitsklasse. Dies entspricht einer Stichprobe der Minderheitsklasse mit Ersatz, bis Sie die gleiche Anzahl von Beobachtungen wie die Mehrheitsklasse haben. Es gibt ausgefallene Möglichkeiten, dies zu tun, damit Sie beispielsweise die Beobachtungswerte zittern lassen, so dass Sie Werte nahe am Original haben, aber keine perfekten Kopien usw. sind.
  2. Unterabtastung: Hier nehmen Sie eine Unterabtastung der Mehrheitsklasse. Wieder ausgefallene Möglichkeiten, dies zu tun, damit Sie Mehrheits-Samples entfernen, die den Minority-Samples am nächsten sind, und dabei Algorithmen für den nächsten Nachbarn usw. verwenden.
  3. Gewichten Sie die Klassen neu. Für die logistische Regression mache ich das so. Im Wesentlichen ändern Sie die Verlustfunktion, um einen falsch klassifizierten Minderheitsfall viel stärker zu bestrafen als eine falsch klassifizierte Mehrheitsklasse. Andererseits machen Sie technisch gesehen nicht die maximale Wahrscheinlichkeit.
  4. Daten simulieren. Viele nette Ideen, mit denen ich hier gespielt habe. Sie können SMOTE verwenden, um Daten zu generieren, Generative Adversarial Networks, Autoencoder, die den generativen Teil verwenden, Kernel-Dichteschätzer, um neue Stichproben zu zeichnen.

Auf jeden Fall habe ich alle diese Methoden verwendet, aber ich finde es am einfachsten, das Problem für die logistische Regression trotzdem neu zu gewichten. Eine Sache, die Sie tun können, um Ihr Modell zu überprüfen, ist:

-Intercept/beta

Dies sollte die Entscheidungsgrenze (50% Wahrscheinlichkeit, in einer der Klassen zu sein) für eine bestimmte Variable ceteris paribus sein . Wenn es keinen Sinn macht, z. B. die Entscheidungsgrenze eine negative Zahl für eine streng positive Variable ist, haben Sie eine Verzerrung in Ihrer logistischen Regression, die korrigiert werden muss.

Ryan
quelle