Lineare Regression zur Minimierung von MAD in sklearn

7

Das standardmäßige lineare sklearn-Regressionsklasse findet eine angenäherte lineare Beziehung zwischen Variate und Kovariaten, die den mittleren quadratischen Fehler (MSE) minimiert. Insbesondere lassenN.Seien Sie die Anzahl der Beobachtungen und lassen Sie uns den Abschnitt der Einfachheit halber ignorieren. Lassenyj sei der Variationswert des j-te Beobachtung und x1,j,,xn,j seien die Werte der n Kovariaten der j-te Beobachtung. Die lineare Beziehung hat die Form

y=β1x1+βnxn;;
wo die Koeffizienten β1,,βn sind gegeben durch
β1,,βn=einrGmichnβ~1,,β~n(j=1N.(yj- -β~1x1,j- -- -β~nxn,j)2).

Ich möchte nun die Koeffizienten finden, die die mittlere absolute Abweichung (MAD) anstelle des mittleren quadratischen Fehlers minimieren. Ich möchte nämlich die Koeffizienten von

β1,,βn=einrGmichnβ~1,,β~n(j=1N.|yj- -β~1x1,j- -- -β~nxn,j|).

Ich verstehe, dass im scharfen Gegensatz zum MSE-Fall die mangelnde Differenzierbarkeit der Absolutwertfunktion bei 0impliziert, dass es keine analytische Lösung für den MAD-Fall gibt. Letzteres ist jedoch immer noch ein konvexes Optimierungsproblem und kann nach dieser Antwort leicht durch lineare Programmierung gelöst werden.

Ist es möglich, diese lineare Regression in sklearn zu implementieren? Was ist mit anderen Statistik-Toolkits?

Giovanni De Gaetano
quelle
5
Ich habe dies gerade für die Wiedereröffnung nominiert. Ja, die Frage ist, wie eine Aufgabe in sklearn oder Python im Allgemeinen ausgeführt wird. Aber es braucht statistisches Fachwissen zu verstehen oder Antwort , die ist ausdrücklich beim Thema .
Stephan Kolassa
1
@StephanKolassa Ich stimme Ihnen zu - die Frage sollte wieder geöffnet werden ..
James Phillips

Antworten:

12

Die erwartete MAD wird durch den Median der Verteilung minimiert ( Hanley, 2001, The American Statistician ). Daher suchen Sie nach einem Modell, das den bedingten Median anstelle des bedingten Mittelwerts liefert .

Dies ist ein Sonderfall von speziell für das 50% Quantil. Roger Koenker ist der Hauptguru für die Quantilregression . siehe insbesondere sein gleichnamiges Buch .

Es gibt Möglichkeiten, in Python eine Quantilregression durchzuführen. Dieses Tutorial kann hilfreich sein. Wenn Sie offen für die Verwendung von R sind, können Sie das quantregPaket verwenden.

Stephan Kolassa
quelle
2
In Python ist es vis statsmodels statsmodels.org/dev/generated/…
Tim
1
Vielen Dank! Es ist eine einfache Möglichkeit, das Problem in der Tat zu betrachten ...
Giovanni De Gaetano