Sonntag, 19. August 2012

MLR und lineare Abhängigkeiten

Letzte Woche schaute ein Studierender bei mir vorbei, mit einer Frage die ihn irgendwie nicht locker ließ. Es ging darum, dass er bei einer Messanlage, die einen neuartigen Prozess überwachte, alle paar Minuten ca. 20 Variablen ermittelte, von denen einige ziemlich stark korrelierten. Diese Variablen dienten zur Überprüfung der Ausbeute des Prozesses; letztendlich will er ein statistisches Modell erstellen, das ihm die Möglichkeit gibt, die Einflüsse der einzelnen Prozessparameter (=Variablen aus der Messanlage) auf die Ausbeute besser zu verstehen (und diese in der Folge zu optimieren).

Der Studierende experimentierte seit einiger Zeit mit multipler lineare Regression (MLR) und hatte das Problem, dass die MLR-Koeffizienten dreier Variablen einfach nicht stabil waren (von Versuch zu Versuch).

Meine erste Vermutung, dass diese Variablen multikollinear sind, führte zuerst mal zu Stirnrunzeln und dann zu zwei Kaffees aus unserer Kaffeemaschine (das ist die, die der Herr Clooney erfunden und gebaut hat, nachdem ihm das Filmbusiness vermutlich zu eintönig wurde).

Ich zeigte dem Studierenden ein kleines Beispiel, in dem ich in DataLab drei Variablen so erzeugte, dass die erste und die zweite einfach mit normalverteilten Zufallszahlen belegt wurden, die dritte war die Summe der beiden anderen plus eine kleine Zufallszahl. Außerdem erzeugte ich eine weitere Variable (C5, siehe Skript unten), die die gewichtete Summe der drei Variablen plus einen kleinen zufälligen Anteil enthielt.

Hier das DataLab-Skript zum Nachvollziehen (öffnen Sie dazu in DataLab den Skript-Editor und kopieren Sie das Skript in den Editor; durch Klick auf "Ausführen" werden die Daten entsprechend erzeugt):

Initialize
MATH
C1=gauss
c2=gauss
c3=c1+c2+0.1*gauss
c5=3*c1+2*C2+c3+0.5*gauss
/MATH
MLRCalc

Rechnet man mit diesen Daten die MLR für die Variable C5, so sollten die ermittelten Koeffizienten den Faktoren der gewichteten Summe entsprechen (also 3.0, 2.0 und 1.0 sein). Die realen Koeffizienten weichen aber sehr stark davon ab, obwohl das Ergebnis sehr gut aussieht. Schlimmer noch: Wiederholt man das Experiment, so bekommt man jedesmal gänzlich andere Koeffizienten!

Die Erklärung für dieses sonderbare Verhalten liegt in der Tatsache, dass bei (multi)kollinearen Variablen die geschätzten Regressionsparameter praktisch "Hausnummern" sind. Das ist eine mathematische Eigenheit von MLR, die unbedingt zu beachten ist.

Am einfachsten hilft man sich durch Berechnung des "variance inflation factor" (VIF), der für keine Variable den Wert 10 überschreiten sollte. Tut er dies dennoch, dann können Sie davon ausgehen, dass die Regressionsparameter nicht mehr interpretierbar sind, da sie nicht mehr stabil sind.

Zuletzt noch ein Hinweis: Man kann den VIF in DataLab bequem berechnen. Klicken Sie einfach den Knopf VIF und wählen Sie am besten alle Variablen (wenn es nicht zu viele sind) aus. Variablen, bei denen der VIF zu hoch ist, darf man nicht für das MLR-Modell einsetzen. In vielen Fällen kann man sich so helfen, dass man die Variable mit dem höchsten VIF aus dem Datensatz rausnimmt. Dadurch ändern sich die Multikollinearitäten und damit die VIFs aller anderen Variablen. Dieses Spiel kann man dann so lange fortsetzen, bis bei allen verbleibenden Variablen die VIFs unter 10 gefallen sind.

Einfach, oder? Auf jeden Fall hat sich der Studierende nicht nur für den Kaffee bedankt. Ist doch eine Freude, wenn man nicht nur den Kreislauf sondern auch noch die Wirtschaft ankurbelt....

Keine Kommentare:

Kommentar veröffentlichen