2014-09-05 60 views
0

我有一個不平滑的曲線,需要確定模式。對於爲此我使用smooth.spline(X,Y)函數平滑的數據,現在我想要計算平滑數據平滑數據並在R中找到最大值

x<-vect.1 
y<-vect.2 
plot(x,y,type='l') 
smth<-smooth.spline(x,y) 
lines(smth,col='red',lwd=2) 

data graph along with its smoothed curve

我目前的做法的模式或最大簡直是查找這個x給了我最大的y,它不那麼準確。有沒有更好的方法來做到這一點?

回答

0
psmth <- predict(smth, x= seq(1,100, by=0.1)) 
mode_psmth <- psmth$y[ which.max(psmth$y) ] 

甚至:

mode_psmth <- max(psmth$y) 

如果這不是 「足夠準確」,然後請解釋原因。

+0

謝謝我認爲它應該是psmth $'x'[which.max(psmth $'y')]去工作,你可能知道主管很難說服,他們希望計算機能夠告訴數字不是眼睛! – user3015703 2014-09-05 05:11:31

+0

對......它可能應該是不同的東西,但我認爲'psmth $ y'將是模式。還有我認爲使用'max(psmth $ y)'會更容易嗎?當我提供可複製的測試用例時,我測試我的代碼。 – 2014-09-05 16:02:55

相關問題