8,27268
17,7308
29,5468
59,4136
149,3741
299,1438
599,297
749,113
750,44
这些是我的数据,我想找到多项式拟合并将其放入函数中。
答案 0 :(得分:0)
如果这是您的样本数据
dd<-data.frame(
x = c(8, 17, 29, 59, 149, 299, 599, 749, 750),
y = c(27268, 7308, 5468, 4136, 3741, 1438, 297, 113, 44)
)
您可以使用poly()
函数为任何顺序拟合多项式。这里我适合三阶多项式
fit <- lm(y~poly(x,3),dd)
# Call:
# lm(formula = y ~ poly(x, 3), data = dd)
#
# Coefficients:
# (Intercept) poly(x, 3)1 poly(x, 3)2 poly(x, 3)3
# 5535 -14073 8504 -6091
现在我可以绘制结果
plot(dd)
x <- seq(min(dd$x), max(dd$x), length.out=100)
lines(x, predict(fit, newdata=data.frame(x=x)))