更好的方法是在 R 中的 curve() 绘图中调用非线性回归模型?
Better way call a non-linear regression model in curve() drawings in R?
我一直在学习如何在 R 中绘制图形和曲线,并使用 plot()
和 curve()
函数处理一组数据来绘制数据和曲线。但是,我不认为我使用的是最有效的方法。
我所做的是从 data.frame
设置 2 个向量,然后我将一个对象(称为 o
)分配给 nls()
函数,例如 o<-nls(y~I(a*x^3)+I(b*x^2)+I(c*x)+d)
.通过调用 o
,我可以获得 o
(a
、b
、c
、d
)的所有系数值。然后我可以在绘制点后将这些值的近似值插入 curve()
函数。这行得通,但我想知道是否有任何方法可以将 o
直接插入 curve
函数,这样我就不必重新输入每个系数?
请注意,您的函数是多项式,因此其系数是线性的。不管怎样,它对 nls
和 lm
的作用是一样的。指定适合的data.frame:
o <- lm(y ~ poly(x, 3, raw = TRUE), data = DF)
plot(y ~ x, data = DF)
curve(predict(o, newdata = data.frame(x = x)), add = TRUE)
我一直在学习如何在 R 中绘制图形和曲线,并使用 plot()
和 curve()
函数处理一组数据来绘制数据和曲线。但是,我不认为我使用的是最有效的方法。
我所做的是从 data.frame
设置 2 个向量,然后我将一个对象(称为 o
)分配给 nls()
函数,例如 o<-nls(y~I(a*x^3)+I(b*x^2)+I(c*x)+d)
.通过调用 o
,我可以获得 o
(a
、b
、c
、d
)的所有系数值。然后我可以在绘制点后将这些值的近似值插入 curve()
函数。这行得通,但我想知道是否有任何方法可以将 o
直接插入 curve
函数,这样我就不必重新输入每个系数?
请注意,您的函数是多项式,因此其系数是线性的。不管怎样,它对 nls
和 lm
的作用是一样的。指定适合的data.frame:
o <- lm(y ~ poly(x, 3, raw = TRUE), data = DF)
plot(y ~ x, data = DF)
curve(predict(o, newdata = data.frame(x = x)), add = TRUE)