Régression linéaire vs non linéaire

13

J'ai un ensemble de valeurs x et y qui sont théoriquement liées de façon exponentielle:

y=axb

Une façon d'obtenir les coefficients consiste à appliquer des logarithmes naturels des deux côtés et à ajuster un modèle linéaire:

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

Une autre façon d'obtenir cela consiste à utiliser une régression non linéaire, étant donné un ensemble théorique de valeurs de départ:

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

Mes tests montrent de meilleurs résultats et plus liés à la théorie si j'applique le deuxième algorithme. Cependant, j'aimerais connaître la signification statistique et les implications de chaque méthode.

Lequel d'entre eux est le meilleur?

Iñigo Hernáez Corres
la source
3
Veuillez jeter un œil à cet article qui traite d'une question similaire. Ce document pourrait également être intéressant.
COOLSerdash
5
"exponentielle" implique généralement quelque chose basé sur exp(): ce que vous avez ici est plus communément appelé fonction de puissance, loi de puissance ou loi d'échelle. Il existe sans doute d'autres noms. Il n'y a aucun lien avec le pouvoir au sens du test d'hypothèse.
Nick Cox

Réponses:

16

"Mieux" est fonction de votre modèle.

Une partie de la raison de votre confusion est que vous n'avez écrit que la moitié de votre modèle.

Lorsque vous dites , ce n'est pas vraiment vrai. Votre observéy=axbvaleurs ynesont paségales à a x b ; ils ont un composant d'erreur.yaxb

Par exemple, les deux modèles que vous mentionnez (et non les seuls modèles possibles par tous les moyens) font des hypothèses entièrement différentes sur l'erreur.

Vous voulez probablement dire quelque chose de plus proche de E(Y|X=x)=axb.

Mais alors, que dit-on de la variation de par rapport à cette attente à un x donné? Cela compte!Yx

  • Lorsque vous ajustez le modèle des moindres carrés non linéaires, vous dites que les erreurs sont additives et que l'écart-type des erreurs est constant dans les données:

    yiN(axib,σ2)

    ou équivalent

    , avec var ( e i )yi=axib+eivar(ei)=σ2

  • en revanche, lorsque vous prenez des journaux et ajustez un modèle linéaire, vous dites que l'erreur est additive sur l'échelle logarithmique et (sur l'échelle logarithmique) constante dans les données. Cela signifie qu'à l'échelle des observations, le terme d'erreur est multiplicatif , et donc les erreurs sont plus grandes lorsque les valeurs attendues sont plus grandes:

    yilogN(loga+blogxi,σ2)

    ou équivalent

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

    E(η)σ2

(Vous pouvez faire des moindres carrés sans supposer des distributions de normalité / lognormale, mais le problème central discuté s'applique toujours ... et si vous n'êtes pas du tout proche de la normalité, vous devriez probablement envisager un modèle d'erreur différent de toute façon)

Le meilleur dépend donc du type de modèle d'erreur qui décrit votre situation.

yxx

Glen_b -Reinstate Monica
la source
9

Lorsque vous ajustez l'un ou l'autre modèle, vous supposez que l'ensemble des résidus (écarts entre les valeurs observées et prévues de Y) suit une distribution gaussienne. Si cette hypothèse est vraie avec vos données brutes (régression non linéaire), alors ce ne sera pas le cas pour les valeurs transformées en log (régression linéaire), et vice versa.

Quel modèle est "meilleur"? Celui où les hypothèses du modèle correspondent le mieux aux données.

Harvey Motulsky
la source