如果我明確定義參數(下例中的「a」和「b」),我可以在R處運行nls
迴歸。然而,我怎樣才能在poly
函數中用nls
代入一般變量/更高的增量?R - 非線性迴歸(nls)和多項式相互作用(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))
試圖代碼,與lm
功能完成的,是不可能的:
nls(var1 ~ poly(var2, degree = 2), data = df, start = list(a = 1, b = 2)) #=> Error
這基本上是在https://stackoverflow.com/questions/3643606/r-polynomial-shortcut-notation-in-nls-formula中提出的問題(它沒有直接的答案) – Frank