Lineare vs. nichtlineare Regression

13

Ich habe eine Menge von Werten und y, die theoretisch exponentiell zusammenhängen:xy

y=axb

Eine Möglichkeit, die Koeffizienten zu erhalten, besteht darin, natürliche Logarithmen auf beiden Seiten anzuwenden und ein lineares Modell zu erstellen:

> fit <- lm(log(y)~log(x))
> a <- exp(fit$coefficients[1])
> b <- fit$coefficients[2]

Ein anderer Weg, dies zu erreichen, ist die Verwendung einer nichtlinearen Regression, wenn eine theoretische Menge von Startwerten gegeben ist:

> fit <- nls(y~a*x^b, start=c(a=50, b=1.3))

Meine Tests zeigen bessere und theoretischere Ergebnisse, wenn ich den zweiten Algorithmus anwende. Ich möchte jedoch die statistische Bedeutung und die Auswirkungen jeder Methode kennen.

Welcher von ihnen ist besser?

Iñigo Hernáez Corres
quelle
3
Bitte werfen Sie einen Blick auf diesen Beitrag , der sich mit einer ähnlichen Frage befasst. Dieses Papier könnte auch von Interesse sein.
COOLSerdash
5
"Exponentiell" impliziert normalerweise etwas basierend auf exp(): Was Sie hier haben, wird allgemeiner als Potenzfunktion, Potenzgesetz oder Skalierungsgesetz bezeichnet. Andere Namen existieren zweifellos. Es besteht kein Zusammenhang mit Macht im Sinne einer Hypothesentestung.
Nick Cox

Antworten:

16

"Besser" ist eine Funktion Ihres Modells.

Ein Grund für Ihre Verwirrung ist, dass Sie nur die Hälfte Ihres Modells geschrieben haben.

y=axbyaxb

Beispielsweise gehen die beiden von Ihnen genannten Modelle (keineswegs die einzig möglichen Modelle) von völlig unterschiedlichen Annahmen über den Fehler aus.

E(Y|X=x)=axb.

Yx

  • Wenn Sie das nichtlineare Modell der kleinsten Quadrate anpassen, sagen Sie, dass die Fehler additiv sind und die Standardabweichung der Fehler über die Daten hinweg konstant ist:

    yiN(axib,σ2)

    oder äquivalent

    yi=axib+eivar(ei)=σ2

  • Wenn Sie dagegen Protokolle erstellen und ein lineares Modell anpassen, wird der Fehler auf der Protokollskala addiert und (auf der Protokollskala) für alle Daten als konstant angegeben. Dies bedeutet, dass auf der Skala der Beobachtungen der Fehlerterm multiplikativ ist und die Fehler daher größer sind, wenn die erwarteten Werte größer sind:

    yilogN(loga+blogxi,σ2)

    oder äquivalent

    yi=axibηiηilogN(0,σ2)

    E(η)σ2

(Sie können kleinste Fehlerquadrate ohne die Annahme von Normal- / Lognormalverteilungen erstellen, aber das zentrale Problem, das diskutiert wird, gilt weiterhin ... und wenn Sie sich der Normalität nicht annähern, sollten Sie wahrscheinlich ohnehin ein anderes Fehlermodell in Betracht ziehen.)

Was am besten ist, hängt davon ab, welches Fehlermodell Ihre Umstände beschreibt.

yxx

Glen_b - Setzen Sie Monica wieder ein
quelle
9

Wenn Sie eines der Modelle anpassen, gehen Sie davon aus, dass die Menge der Residuen (Diskrepanzen zwischen den beobachteten und vorhergesagten Werten von Y) einer Gaußschen Verteilung folgt. Wenn diese Annahme für Ihre Rohdaten zutrifft (nichtlineare Regression), gilt dies nicht für die logarithmisch transformierten Werte (lineare Regression) und umgekehrt.

Welches Modell ist "besser"? Diejenige, bei der die Annahmen des Modells am ehesten mit den Daten übereinstimmen.

Harvey Motulsky
quelle