查找并绘制r

时间:2017-05-22 02:52:37

标签: r polynomials differentiation

我有一些数据,我使用r进行了7阶多项式回归;情节类似于钟形曲线。

我需要找到曲线的两个最陡峭的部分。到目前为止,我已经设法找到并显示最陡的上坡,现在我需要最陡的下坡。

这是我到目前为止所做的:

attach(DATA1)
names(DATA1)

"dist"  "ohms"

plot(dist,ohms)
reg<-lm(ohms~poly(dist,7))
summary(reg)
lines(smooth.spline(dist,predict(reg)))
xv<-seq(min(dist),max(dist),0.02)
yv<-predict(reg,list(dist=xv))
lines(xv,yv,lwd=2)
plot(xv,yv,type="l")
xv[which(abs(diff(yv))==max(abs(diff(yv))))]
abline(v=xv[which(abs(diff(yv))==max(abs(diff(yv))))])

有人知道如何找到斜坡最陡的下降部分吗?

由于

1 个答案:

答案 0 :(得分:0)

我认为你在这里有问题:

abs(diff(yv))==max(abs(diff(yv)))

在这一行中,diff(yv)几乎是yv的衍生物。通过获取它的绝对值,你忽略yv是增加还是减少,这样你就可以获得最陡峭的上升或下降,但你不会知道哪一个。

由于您有兴趣找到最陡峭的上升和下降,请尝试这样做:

diff(yv) == max(diff(yv))
diff(yv) == min(diff(yv))

当yv的变化最大(最陡的上升)时,第一个应该返回true,而当它具有最陡的下降时,第一个应该返回。