Lineare Regression nicht lineare Variable?

Ich muss für eine Ausarbeitung für die Uni eine lineare Regression durchführen. Meine Frage dabei ist ob ich im Rahmen einer linearen Regression eine nicht lineare Variable modellieren kann? Konkret hab ich den Verdacht, dass einer der unabhängigen Variablen sich positiv auf die unabhängige Variable auswirkt wenn der Wert der Variable besonders groß oder besonders klein ist. Kann mir da jemand einen Rat geben wie ich sowas bei SPSS berücksichtigen kann?

Hi,

wenn du eine nichtlineare abhängigkeit hast, wäre es besser, diese auch entsprechend zu modellieren. wie du aber auf die „richtige“ funktion kommst ist ein langer Weg, der viel Anpassung, Korrektur, Residuen anschauen und inhaltliches Hintergrundwissen … erfordert.
Grob kann man über die Residuen anschätzen, was dahinter steckt: bei z.B. größeren Residuen bei größeren Werten liegt potenziell eine Autokorreltaion bzw. Heteroskedastizität vor.
Bereinigen kann man das ggf. mit weiteren Variablen oder einer Gewichtung (1/Varianz).

Grüße,
JPL

Meine Frage dabei ist ob ich im Rahmen
einer linearen Regression eine nicht lineare Variable
modellieren kann?

Ja, das geht. Bei einer linearen Regression gehen ja nur die Parameter linear in das Modell ein und nicht unbedingt die unabhängigen Variablen. Ganz allgemein gilt also

y \approx \sum\limits_i {p_i \cdot f_i \left( x \right)}

wobei Du die Funktionen fi beliebig wählen kannst.

Vielen Dank für die schnellen Antworten. Habt ihr vielleicht auch eine Idee wie ich das konkret in SPSS programmieren kann?

Hi,

Vielen Dank für die schnellen Antworten. Habt ihr vielleicht
auch eine Idee wie ich das konkret in SPSS programmieren kann?

Für lineare Regression gibts in SPSS wohl einen eigene Button. Ob es für nicht-lineare Regression auch einen gibt, weiß ich nicht. ansonsten müsste man das über die Syntax programmieren.
Auch den dr.stupid recht hat, dass man auch nicht-lineare Reg mit linReg-Mehoden berechnen kann (beide verwenden i.a. die Minimierung der Residuenquadrate zur Berechnung der Parameter), rate ich denoch davon ab, dies zu tun. Für eine linReg (y=a0 + a1*x1 + … + an*x) gibt es eine explizite Lösung, die berechnet werden kann. Demhingegen ist das bei nicht-lin Reg (z.B. y=a0 + a1*x^2 + a2*sin(x2)) nicht der Fall und die Berechnung erfolgt iterativ. Ich wage zu bezweifeln, dass vorimplementierte Verfahren für linReg erkennen, ob sie eine linReg vor sich haben oder nicht und einfach die Lösung analytisch berechnen.
Von daher müsstest du in dem Fall die Variablen so transfomieren wie sie in die analyse eingehen sollen und dann eine linReg durchführen. Was für kompliziertere formeln allerdings etwas aufwändig werden kann.

Grüße,
JPL

Für eine
linReg (y=a0 + a1*x1 + … + an*x) gibt es eine explizite
Lösung, die berechnet werden kann. Demhingegen ist das bei
nicht-lin Reg (z.B. y=a0 + a1*x^2 + a2*sin(x2)) nicht der Fall
und die Berechnung erfolgt iterativ.

Was Du da fälschlicherweise als Beispiel für eine nichtlineare Regression nennst, ist eine lineare Regression, weil alle Parameter ai linear in das Modell eingehen. Wenn es für ein solches Problem eine Lösung gibt, dann kann die auch explizit berechnet werden. Ist fk ein Zeilenvektor mit den Fuktionswerten fi(xk) und a ein Spaltenvektor mit den Parametern ai, dann gilt

a = \left[{\sum\limits_k {f_k^T \cdot f_k } } \right]^{ - 1} \cdot \sum\limits_k {f_k^T \cdot y_k }

Das habe ich auch schon mal in JavaScript umgesetzt:

http://www.drstupid.de/NLR.html
http://www.drstupid.de/NLA.html

Stimmt, das war ein falsches Bsp. Danke für die Korrekrur.
ein besseres wäre gewesen:
y = \frac{E_{max}*x^n}{(ED_{50}+x)^n}

Trotzdem bin ich der Meinung, dass es einfacher ist, nichtlineare Variablen ebenfalls mit hilfe nichtlinearer regression zu analysieren.

Viele Grüße,
JPL