我計算了以下數據的密度函數:給定一個經驗概率密度函數,如何找到密度達到峯值的位置(R)?
> dput(mydat)
c(-20, -13, 30, 4, -4, 34, 27, 19, 13.5, 15, 13, 18, 10, 12,
21, -0.769999999999996, 2.5, -7, 0, -30.6, 6.39999999999999,
-18.6, -0.199999999999989, -20.4, -19.9, 4.60000000000001, -19.4,
4.5, -9, -15, 9, -1, -14, 8, 6, -17, 5, 7)
> myden = density(mydat) # default kernel and bandwidth
,給了我這樣的結果:
我想找到兩個密度峯值的位置。我最初考慮在myden$y
上使用diff()
,然後檢查有符號變化的所有位置,以此作爲選擇X軸值的條件。我在一些測試向量上嘗試了它,但是我沒有得到預期的結果,我懷疑它不是那麼簡單。
有沒有簡單的方法來實現這一目標?我想要一個可重複的解決方案,因爲我將這樣做作爲隨機模擬研究的一部分,並且可能會出現在整個模擬過程中峯值數量不同的情況。
你爲什麼認爲diff()方法不能按預期工作?我剛剛看到差異輸出以及符號從+ ve變爲-ve的位置似乎在峯值附近。差異應近似通常適用於獲得局部最大值的差異類型的邏輯。 – TheComeOnMan
@Thomas謝謝!是的,它是重複的。它將不得不被標記爲這樣,我不知道我是否有權這樣做。 – avg
@Codoremifa在查看鏈接托馬斯張貼後,我記得從微積分類,人們必須測試這與第二個微分.. – avg