2017-05-22 40 views
0

我有一些數據,我已經對使用r進行了7階多項式迴歸;該曲線類似於鐘形曲線。查找並繪製r中曲線的第二個最陡峭部分

我需要找到曲線的兩個最陡的部分。到目前爲止,我已經設法找到並顯示最陡峭的上坡,現在我需要最陡峭的下坡。

這是我到目前爲止有:

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

發佈代碼來加載我們沒有的對象似乎毫無意義,甚至令人討厭。爲了你的任務,爲什麼不分割你正在做的範圍,你在最大值以下和以上搜索2個部分? –

回答

0

我認爲你在這裏有一個問題:

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

在這一行,diff(yv)幾乎是yv的衍生物。通過取其絕對值,你忽略了是否增加或減少yv,所以你會得到最陡峭的上升或下降,但你不知道哪一個。

既然你有興趣在尋找最陡的上升和下降試試這個:

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

首先應該當YV的變化是最大返回true(最陡的上升),第二個它有最陡的下降。

+0

很好的答案,這有很大的幫助。我有另一個關於同一主題的查詢。一些鐘形曲線圖顯示曲線一端或兩端的急劇下降/上升。但是,我只對劇情中心區域的斜坡陡峭感興趣。有沒有辦法可以從命令中排除某些x值,即在上限和下限x範圍內搜索斜率最陡的部分? –