我有一些数据,我使用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))))])
有人知道如何找到斜坡最陡的下降部分吗?
由于
答案 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,而当它具有最陡的下降时,第一个应该返回。