Helfen Sie mir, diese nichtlineare multiple Regression anzupassen, die sich allen bisherigen Bemühungen widersetzt hat

9

EDIT: Seit diesem Beitrag machen, ich habe mit einem zusätzlichen Beitrag verfolgt hier .

Zusammenfassung des folgenden Textes: Ich arbeite an einem Modell und habe lineare Regression, Box Cox-Transformationen und GAM ausprobiert, aber keine großen Fortschritte erzielt

Mit Rarbeite ich derzeit an einem Modell, um den Erfolg von Baseballspielern der Minor League auf der Ebene der Major League (MLB) vorherzusagen. Die abhängige Variable "Offensivkarriere gewinnt über Ersatz" (oWAR) ist ein Proxy für den Erfolg auf MLB-Ebene und wird als Summe der Offensivbeiträge für jedes Spiel gemessen, an dem der Spieler im Laufe seiner Karriere beteiligt ist (Details hier - http : //www.fangraphs.com/library/misc/war/). Die unabhängigen Variablen sind Z-Score-Offensivvariablen für kleinere Ligen für Statistiken, die als wichtige Prädiktoren für den Erfolg auf der Ebene der Hauptliga gelten, einschließlich des Alters (Spieler mit mehr Erfolg in einem jüngeren Alter sind tendenziell bessere Aussichten), Streikrate [SOPct ], Gehrate [BBrate] und angepasste Produktion (ein globales Maß für offensive Produktion). Da es mehrere Ebenen der kleinen Ligen gibt, habe ich außerdem Dummy-Variablen für die Ebene der kleinen Ligen aufgenommen (Double A, High A, Low A, Rookie und Short Season mit Triple A [die höchste Ebene vor den großen Ligen]). als Referenzvariable]). Hinweis: Ich habe WAR neu skaliert, um eine Variable zu sein, die von 0 auf 1 geht.

Das variable Streudiagramm ist wie folgt:

Streudiagramm

Als Referenz hat die abhängige Variable oWAR das folgende Diagramm:

abhängiges Variablendiagramm

Ich begann mit einer linearen Regression oWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeasonund erhielt die folgenden Diagnosediagramme:

linearRegressionDiagnostics

Es gibt klare Probleme mit einem Mangel an Unparteilichkeit der Residuen und einem Mangel an zufälliger Variation. Außerdem sind die Residuen nicht normal. Die Ergebnisse der Regression sind nachstehend aufgeführt:

linearRegressionResults

Nach den Ratschlägen in einem früheren Thread habe ich eine Box-Cox-Transformation ohne Erfolg versucht. Als nächstes habe ich ein GAM mit einem Protokolllink ausprobiert und diese Diagramme erhalten:

Splines

Original diagnostisches CheckGAM

Neues Diagnosediagramm GAMDiag

Es sieht so aus, als hätten die Splines dazu beigetragen, die Daten anzupassen, aber die Diagnosediagramme zeigen immer noch eine schlechte Anpassung. EDIT: Ich dachte, ich würde die Residuen gegen angepasste Werte ursprünglich betrachten, aber ich war falsch. Das ursprünglich gezeigte Diagramm ist als Original (oben) markiert, und das Diagramm, das ich anschließend hochgeladen habe, ist als neues Diagnosediagramm (ebenfalls oben) markiert.

GAMResults

Der des Modells hat zugenommenR2

Aber die Ergebnisse des Befehls gam.check(myregression, k.rep = 1000)sind nicht so vielversprechend.

GAMResults2

Kann jemand einen nächsten Schritt für dieses Modell vorschlagen? Gerne stelle ich Ihnen weitere Informationen zur Verfügung, die Ihrer Meinung nach hilfreich sein könnten, um die bisherigen Fortschritte zu verstehen. Vielen Dank für jede Hilfe, die Sie leisten können.

zgall1
quelle
2
Ich fand den Code in diesem ausgezeichneten Primer auf GAM in R - www3.nd.edu/~mclark19/learn/GAMS.pdf. Der Code: library (car) dispersplotMatrix (mydata [, c (1,1: 8)], pch = 19, cex = 0,5, reg.line = F, lwd.smooth = 1,25, Ausbreitung = F, Ellipse = T, col = c ('grey60', '# 2957FF', '# FF8000'), col.axis = 'grey50')
zgall1
1
Können Sie Ihren Datensatz teilen? Außerdem +1 für diese Streudiagrammmatrix. Es ist exzellent.
Zach
1
Das ist schade, es sieht aus wie ein interessanter Datensatz. Mein Vorschlag wäre, einige andere Algorithmen für maschinelles Lernen auszuprobieren, z. B. eine zufällige Gesamtstruktur.
Zach
2
Zufällige Wälder basieren auf Entscheidungsbäumen. Schauen Sie sich das randomForest-Paket in R und die Wikipedia-Seite für zufällige Wälder an: en.wikipedia.org/wiki/Random_forest
Zach
2
"Die abhängige Variable ... wird als Summe der offensiven Beiträge für jedes Spiel gemessen, an dem der Spieler im Laufe seiner Karriere beteiligt ist." Das springt mir raus. Ein schwerwiegender Störfaktor hierbei ist, wie lange ein Spieler gespielt hat. Beides bedeutet, dass [a] längere Spielzeit mehr Zeit zum "Sammeln" von oWAR bedeutet. [B] Bessere Spieler werden wahrscheinlich längere Zeit spielen.
Affine

Antworten:

6

Sehr gute Arbeit. Ich denke, diese Situation ist ein Kandidat für das semiparametrische ordinale logistische Modell mit proportionalen Gewinnchancen. Die lrmFunktion im R- rmsPaket passt zum Modell. Im Moment möchten Sie vielleicht runden , um nur 100-200 Level zu haben. In Kürze wird eine neue Version von mit einer neuen Funktion veröffentlicht , die Tausende von Abschnitten im Modell effizient ermöglicht, dh vollständig ununterbrochen ermöglicht [Update: dies erschien 2014]. Das Proportional-Odds-Modell s ist unveränderlich für die Transformation vonDas heißt, Quantile sind auch invariant. Wenn Sie einen vorhergesagten Mittelwert wünschen, wird angenommen, dass auf der richtigen Intervallskala liegt.Y β Y Y.YrmsormYβYY

Frank Harrell
quelle
1
Mit Levels meinen Sie, die Y-Variable in 100-200 Buckets zu unterteilen? Wenn ja, gibt es eine bevorzugte Methode zur Auswahl der Behältergröße? Sollten sie gleich groß sein?
zgall1
1
Führen Sie das Binning nur vorübergehend durch, es sei denn, wir haben die kontinuierliche Lösung. Sie können in 100 Perzentile einteilen, zBrequire(Hmisc); cut2(y, g=100, levels.mean=TRUE)
Frank Harrell
Wenn Sie sagen, rmsdass bald eine neue Version von veröffentlicht wird, haben Sie eine Idee, wann dies sein könnte?
zgall1
Wenn Sie Linux verwenden, kann ich es Ihnen jetzt geben, andernfalls erwarten Sie 2 Wochen.
Frank Harrell
Ich benutze kein Linux, also muss ich wohl warten. Bitte lassen Sie mich wissen, wann es verfügbar ist.
zgall1
1

Ich denke, dass die Überarbeitung der abhängigen Variablen und des Modells hier fruchtbar sein kann. Wenn Sie sich Ihre Residuen aus dem lm()ansehen, scheint es, dass das Hauptproblem bei den Spielern mit einem hohen Karriere-WAR liegt (den Sie als Summe aller WAR definiert haben). Beachten Sie, dass Ihr höchster vorhergesagter (skalierter) WAR 0,15 von maximal 1 ist! Ich denke, es gibt zwei Dinge bei dieser abhängigen Variablen, die dieses Problem verschärfen:

  • Spieler, die einfach länger spielen, haben mehr Zeit, um WAR zu sammeln
  • Gute Spieler werden in der Regel länger in der Nähe bleiben und haben somit die Möglichkeit, diese längere Zeit zum Sammeln von WAR zu haben

Im Zusammenhang mit der Vorhersage ist es jedoch kontraproduktiv, die Zeit explizit als Kontrolle zu spielen (in irgendeiner Weise, ob als Gewicht oder als Nenner bei der Berechnung des durchschnittlichen Karriere-WAR) (auch ich vermute, dass ihre Wirkung auch nicht linear wäre). Daher schlage ich vor, die Modellierungszeit in einem gemischten Modell mit lme4oder etwas weniger explizit zu verwenden nlme.

Ihre abhängige Variable wäre saisonale WAR, und Sie hätten eine andere Anzahl von Jahreszeiten pro Spieler . Das Modell hätte einen Spieler als zufälligen Effekt und wäre wie folgt: ij=mii

sWARij=α+σi2+<other stuff>+εij

Mit lme4würde das ungefähr so ​​aussehen
lmer(sWAR ~ <other stuff> + (1|Player), data=mydata)

Möglicherweise müssen Sie noch auf transformieren , aber ich denke, dies wird in dieser Rückkopplungsschleife hilfreich sein.sWAR

Affin
quelle
Ich bin mir nicht sicher, ob ich das wirklich verstehe. Wenn die abhängige Variable saisonale WAR ist, welche unabhängigen Variablen sind das? Eine identische Minor-League-Statistik für jeden Spieler? Wollen wir im Wesentlichen sagen, dass die Nebenliga-Statistiklinie A zu den Hauptliga-Kriegen B, C, D und E führen kann?
zgall1
Seit ich dieses Modell gepostet habe
möchten