使用线性模型函数 lm() 多项式公式可以包含这样的快捷符号:
m <- lm(y ~ poly(x,3))
这是一个快捷方式,可以让用户不必创建 x^2 和 x^3 变量或将它们输入到公式中,例如
I(x^2) + I(x^3)
.非线性函数是否有类似的表示法 nls()
?
最佳答案
poly(x, 3)
不仅仅是 x + I(x ^ 2) + I(x ^ 3)
的快捷方式- 它实际上产生 legendre polynomials具有不相关的良好属性:
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
关于R:nls() 公式中的多项式快捷符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3643606/