【发布时间】:2015-04-21 17:35:14
【问题描述】:
我想绘制一个数据框 (X,Y) data 以及一个拟合函数和拟合函数的导数。
fit <- lm(data$Y ~ poly(data$X,32,raw=TRUE))
data$fitted_values <- predict(fit, data.frame(x=data$X))
据我所知,这给了我一个 32 次多项式函数fit,我用它来计算函数值并将它们存储在data$fitted 中。绘制这些系列就像ggplot2 的魅力。
ggplot(data, aes(x=X)) +
geom_line(aes(y = Y), colour="red") +
geom_line(aes(y = predict), colour="blue")
到目前为止一切顺利。但我也想绘制拟合函数fit 的一阶导数data$Y'。我感兴趣的是拟合函数的梯度。
我的问题:如何获得fit的导数函数?
我假设我可以“预测”之后绘制的绝对值。对吗?
【问题讨论】:
-
您能否提供一个可重现的示例,例如通过执行
dput(data)并在结果中进行编辑?这将使演示解决方案变得更加容易。 (顺便说一句,您可能希望将Y显示为geom_point而不是geom_line!) -
您可以使用this answer 逐点估算导数。或者,由于您知道拟合的形式(系数为
coef(fit)的 32 次多项式),您可以编写一个简单的函数来手动求导,这对于多项式来说非常简单。
标签: r plot derivative