Ungleichgewicht ist nicht unbedingt ein Problem, aber wie Sie dorthin gelangen, kann es sein. Es ist nicht sinnvoll, Ihre Stichprobenstrategie auf die Zielvariable abzustützen. Da diese Variable die Zufälligkeit in Ihr Regressionsmodell einbezieht, werden Sie große Probleme haben, irgendeine Art von Inferenz zu erstellen, wenn Sie darauf aufbauen. Ich bezweifle, dass es möglich ist, diese Probleme "rückgängig zu machen".
Sie können basierend auf den Prädiktorvariablen zu Recht eine Über- oder Untererhebung durchführen . In diesem Fall, vorausgesetzt, Sie überprüfen sorgfältig, ob die Modellannahmen gültig scheinen (z. B. Homoskedastizität, die in dieser Situation als wichtig erachtet wird, wenn Sie eine "normale" Regression mit den üblichen Annahmen haben), glaube ich, dass Sie dies nicht tun müssen machen Sie das Oversampling bei der Vorhersage rückgängig. Ihr Fall ähnelt nun einem Analysten, der ein Experiment explizit so entworfen hat, dass die Prädiktorvariablen einen ausgeglichenen Bereich aufweisen.
Bearbeiten - Hinzufügen - Erweitern, warum es schlecht ist, anhand von Y zu sampeln
Beim Anpassen des Standardregressionsmodells wird erwartet, dass das normal verteilt ist, einen Mittelwert von Null hat und unabhängig und identisch verteilt ist. Wenn Sie Ihre Stichprobe auf der Grundlage des Werts von y (der sowohl einen Beitrag von als auch von ) auswählen, hat das e keinen Mittelwert mehr von Null oder ist identisch verteilt. Beispielsweise ist es weniger wahrscheinlich, dass niedrige Werte von y ausgewählt werden, die sehr niedrige Werte von e enthalten können. Dies ruiniert jegliche Schlussfolgerung, die auf den üblichen Mitteln zur Anpassung solcher Modelle beruht. Korrekturen können ähnlich wie in der Ökonometrie für die Anpassung abgeschnittener Modelle vorgenommen werden, sind jedoch schmerzhaft und erfordern zusätzliche Annahmen und sollten nur angewendet werden, wenn es keine Alternative gibt.y= Xb + eeeXb
Betrachten Sie die extreme Abbildung unten. Wenn Sie Ihre Daten auf einen beliebigen Wert für die Antwortvariable kürzen, führen Sie sehr signifikante Verzerrungen ein. Wenn Sie es für eine erklärende Variable abschneiden, gibt es nicht unbedingt ein Problem. Sie sehen, dass die grüne Linie, basierend auf einer Teilmenge, die aufgrund ihrer Prädiktorwerte ausgewählt wurde, sehr nahe an der tatsächlichen angepassten Linie liegt. Dies kann nicht von der blauen Linie gesagt werden, die nur auf den blauen Punkten basiert.
Dies erstreckt sich auf den weniger schwerwiegenden Fall von Unter- oder Überabtastung (da das Abschneiden als Unterabtastung betrachtet werden kann, die auf ihr logisches Extrem gebracht wird).
# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)
# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
"Fitted - subset based on y"), lty=1, col=1:4, bty="n")
Es ist eine Frage, ob Sie eine Kausalanalyse oder eine Vorhersage durchführen. Lesen Sie http://m.statisticalhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640
Das erneute Abtasten der Zielvariablen für das Training zum Zwecke der Vorhersage funktioniert so lange, wie ein Test an einer nicht erneut abgetasteten Halteprobe durchgeführt wird. Die endgültige Leistungsübersicht muss ausschließlich auf dem Hold-out basieren. Für eine möglichst genaue Bestimmung der Vorhersagbarkeit des Modells sollten Kreuzvalidierungstechniken eingesetzt werden.
Sie "rückgängig machen" durch die endgültige Analyse des Regressionsmodells und des unausgeglichenen Datensatzes.
quelle
Dies ist kein Versuch, eine praktische Lösung für Ihr Problem zu finden, aber ich habe mich ein wenig mit dem Umgang mit unausgeglichenen Datensätzen bei Regressionsproblemen befasst und wollte meine Ergebnisse mitteilen:
quelle
Zuallererst ist die 1:10-Ration überhaupt nicht schlecht. Es gibt einfache Möglichkeiten, Sampling-
1) Für das Klassifizierungsproblem: Wenn Sie eine negative Klasse mit 10 unterabgetastet haben, ist die resultierende Wahrscheinlichkeit 10-mal höher als sie sein sollte. Sie können die resultierende Wahrscheinlichkeit einfach durch 10 dividieren.
2) Facebook nimmt auch Teilstichproben vor (zur Vorhersage von Klicks in der logistischen Regression) und führt eine negative Abwärtsstichprobe durch. Neukalibrierung erfolgt durch einfache Formel p / (p + (1-p) / w); wobei p die Vorhersage bei der Abwärtsabtastung ist, ist nw die negative Abwärtsabtastrate.
quelle
Ich denke, was Ihnen bei Ihrem Problem helfen könnte, ist die Synthetic Minority Over-Sampling-Technik zur Regression (SMOTER). Zu diesem Thema gibt es einige Untersuchungen. Es bleibt jedoch weniger erforscht als sein Klassifizierungsgegenstück, wie Sie wahrscheinlich angetroffen haben.
Je nachdem, wie sehr Sie daran interessiert sind , das unten zitierte Papier (und die Konferenz, die es unter http://proceedings.mlr.press/v74/ hielt ) aus Forschungssicht zu verstehen, kann ich Ihnen vorschlagen, dieses Papier zu verwenden . Ich habe die Einführung des Gaußschen Rauschens bei der Erzeugung der synthetischen Beobachtungen sehr geschätzt.
Wenn Sie mehr an einer praktischen Lösung interessiert sind, hat die erste Autorin eine R-Implementierung auf ihrer Github-Seite. https://github.com/paobranco/SMOGN-LIDTA17
Wenn Sie mehr von Python überzeugen möchten, habe ich kürzlich eine vollständig pythonische Implementierung des SMOGN-Algorithmus verteilt, der jetzt verfügbar ist und derzeit im Unit-Test ist. https://github.com/nickkunz/smogn
Ich hoffe das hat geholfen!
Branco, P., Torgo, L., Ribeiro, R. (2017). "SMOGN: Ein Vorverarbeitungsansatz für unausgeglichene Regression". Proceedings of Machine Learning Research, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .
quelle