Je peux exécuter une régression nls
en R si je définis explicitement les paramètres ("a" et "b" dans l'exemple ci-dessous). Cependant, comment pourrais-je coder le nls
avec un nombre générique de variables/degress plus élevé dans la fonction poly
?R - régression non linéaire (nls) et interactions polynomiales (poly)
df <- data.frame(var1 = rnorm(100), var2 = rnorm(100))
p <- as.data.frame(poly(df$var2, degree = 2))
names(p) <- paste0("poly", names(p))
df <- cbind(df, p)
nls(var1 ~ a*poly1 + b*poly2, data = df, start = list(a = 1, b = 2))
Essayer le code, comme cela se fait avec la fonction lm
, n'est pas possible:
nls(var1 ~ poly(var2, degree = 2), data = df, start = list(a = 1, b = 2)) #=> Error
Ceci est fondamentalement la même question posée dans https://stackoverflow.com/questions/3643606/r-polynomial-shortcut-notation-in-nls-formula (qui n'a pas de réponse directe) – Frank