2010-09-04 7 views
3

Avec la fonction modèle linéaire lm() formules polynomiales peuvent contenir une notation de raccourci comme ceci:R: notation de raccourci polynôme en nls() formule

m <- lm(y ~ poly(x,3)) 

ceci est un raccourci qui empêche l'utilisateur d'avoir à créer x^2 et x^3 variables ou en les tapant dans la formule comme I(x^2) + I(x^3). Y a-t-il une notation comparable pour la fonction non linéaire nls()?

Répondre

5

Réponse courte: oui.

Réponse un peu plus longue: Il est assez bon marché de le tester. Je viens de courir example(nls) pour obtenir un modèle et des données chargées, puis inséré un terme avec poly().

Même plus de réponse: lm() ne sait pas réellement sur poly(), les formules sont résolues avant que le montage ne se produise. Donc, dans le sens où nls() a une interface de formule ... il était tenu d'accepter poly(). Hors sujet et non demandé: Avez-vous étudié les splines ainsi que le livre RMS de Harrell?

+0

j'avais testé le poly() et avait du mal avec elle. Après avoir examiné les exemples dans l'exemple (nls), je vois que j'avais un problème de syntaxe lié à mes coefficients. Je pensais que ça barrait sur "poly" quand c'était vraiment barfant sur mes problèmes syntaxiques. WRT splines et RMS, j'aime beaucoup les splines. Et je me suis embrouillé à travers une grande partie de RMS. Dans cette situation, cependant, j'essaie de recréer un gâchis chaud que quelqu'un a mis en place en utilisant une régression pour Excel. –

+0

Ah, alors vous filmez Mission Impossible III? ;-) –

+0

Je pense que le titre de travail est Dumb and Dumber –

6

poly(x, 3) est un peu plus qu'un simple raccourci pour x + I(x^2) + I(x^3) - il produit effectivement legendre polynomials qui ont la propriété d'être belle Uncorrelated:

options(digits = 2) 
x <- runif(100) 
var(cbind(x, x^2, x^3)) 
#  x    
# x 0.074 0.073 0.064 
# 0.073 0.077 0.071 
# 0.064 0.071 0.067 
zapsmall(var(poly(x, 3))) 
#  1 2 3 
# 1 0.01 0.00 0.00 
# 2 0.00 0.01 0.00 
# 3 0.00 0.00 0.01 
+0

+1 pour le pointeur d'orthogonalité. L'interprétation des estimations de paramètres reste-t-elle la même dans deux cas donnés ci-dessus. Je sais que les valeurs ajustées resteront les mêmes dans un modèle linéaire que dans les deux cas, elles couvrent le même espace. Mais qu'en est-il du cas lorsqu'il est utilisé dans un cadre non linéaire moins carré? – user227290

+1

Laplace ... Série Taylor ... oh merde J'ai besoin d'obtenir ma copie poussiéreuse des méthodes fondamentales de l'économie mathématique. –

+0

Eh bien c'est un raccourci pour x + I (x^2) + I (x^3) si vous ajoutez l'argument raw = TRUE bien sûr (poly (x, 3, raw = TRUE) ... –

Questions connexes