Regresja liniowa a nieliniowa

13

Mam zestaw wartości i , które są teoretycznie związanych wykładniczo:xy

y=axb

Jednym ze sposobów uzyskania współczynników jest zastosowanie logarytmów naturalnych po obu stronach i dopasowanie modelu liniowego:

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

Innym sposobem uzyskania tego jest regresja nieliniowa, biorąc pod uwagę teoretyczny zestaw wartości początkowych:

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

Moje testy pokazują lepsze i bardziej związane z teorią wyniki, jeśli zastosuję drugi algorytm. Chciałbym jednak poznać znaczenie statystyczne i implikacje każdej metody.

Który z nich jest lepszy?

Iñigo Hernáez Corres
źródło
3
Proszę spojrzeć na ten post, który dotyczy podobnego pytania. Ten artykuł może być również interesujący.
COOLSerdash
5
„wykładniczy” zwykle implikuje coś opartego na exp(): to, co tu masz, jest bardziej powszechnie nazywane funkcją władzy, prawem mocy lub prawem skalowania. Inne nazwy bez wątpienia istnieją. Nie ma związku z mocą w sensie testowania hipotez.
Nick Cox

Odpowiedzi:

16

„Lepszy” jest funkcją twojego modelu.

Jednym z powodów tego zamieszania jest to, że napisałeś tylko połowę swojego modelu.

Kiedy mówisz , tak naprawdę nie jest to prawdą. Twoje zaobserwowane wartości nie są równe ; mają składnik błędu.y=axbyaxb

Na przykład dwa wspomniane modele (nie jedyne możliwe modele) przyjmują zupełnie inne założenia dotyczące błędu.

Prawdopodobnie czegoś bliżej .E(Y|X=x)=axb

Ale co zatem mówimy o odchyleniu od tego oczekiwania przy danym ? To ma znaczenie!Yx

  • Kiedy dopasowujesz model nieliniowego najmniejszego kwadratu, mówisz, że błędy sumują się, a standardowe odchylenie błędów jest stałe w danych:

    yiN(axib,σ2)

    lub równoważnie

    yi=axib+ei , zvar(ei)=σ2

  • przeciwnie, gdy bierzesz dzienniki i dopasowujesz model liniowy, mówisz, że błąd jest addytywny w skali dziennika i (w skali dziennika) stały w danych. Oznacza to, że w skali obserwacji termin błędu jest multiplikatywny , a zatem błędy są większe, gdy oczekiwane wartości są większe:

    yilogN(loga+blogxi,σ2)

    lub równoważnie

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

    (Zauważ, że nie jest 1. Jeśli jest mała, musisz pozwolić na ten efekt)E(η)σ2

(Możesz robić najmniejszych kwadratów bez zakładania rozkładów normalności / logarytmicznych, ale omawiany centralny problem nadal obowiązuje ... a jeśli nie jesteś w pobliżu normalności, prawdopodobnie powinieneś rozważyć inny model błędu)

To, co jest najlepsze, zależy od tego, jaki model błędu opisuje twoje okoliczności.

[Jeśli robisz jakąś analizę rozpoznawczą z pewnego rodzaju danych, który nie został dotąd, można by rozważyć pytania typu „Co twoje dane wyglądać? (Czyli wykreślono ? Co oznaczają reszty wyglądać przeciwko ? Z drugiej strony, jeśli takie zmienne nie są rzadkie, powinieneś już mieć informacje o ich ogólnym zachowaniu.]yxx

Glen_b - Przywróć Monikę
źródło
9

Kiedy dopasowujesz którykolwiek z modeli, zakładasz, że zbiór reszt (rozbieżności między obserwowanymi a przewidywanymi wartościami Y) jest zgodny z rozkładem Gaussa. Jeśli to założenie jest prawdziwe w przypadku surowych danych (regresja nieliniowa), nie będzie prawdziwe w przypadku wartości przekształconych logarytmicznie (regresja liniowa) i odwrotnie.

Który model jest „lepszy”? Ten, w którym założenia modelu najbardziej pasują do danych.

Harvey Motulsky
źródło