Bir olasılık yoğunluk fonksiyonu için yerel maxima bulmaya çalışıyorum (R density
yöntemi kullanılarak bulundu ). Basit bir "komşuların etrafına bakın" yöntemi (burada komşularına göre yerel bir maksimum olup olmadığını görmek için bir noktaya bakar) yapamıyorum çünkü büyük miktarda veri var. Ayrıca, Spline enterpolasyonu gibi bir şey kullanmak ve daha sonra hata toleransı ve diğer parametrelerle bir "komşuların etrafına bakın" ın aksine, 1. türevin köklerini bulmak daha verimli ve genel görünüyor.
Sorularım:
- Bir işlev verildiğinde
splinefun
, yerel maksimumları hangi yöntemler bulacaktır? - Kullanarak döndürülen bir işlevin türevlerini bulmanın kolay / standart bir yolu var mı
splinefun
? - Olasılık yoğunluğu fonksiyonunun yerel maksimum değerini bulmanın daha iyi / standart bir yolu var mı?
Referans olarak, aşağıda yoğunluk fonksiyonumun bir çizimi verilmiştir. Üzerinde çalıştığım diğer yoğunluk işlevleri de benzer. R için yeni olduğumu, ancak programlama konusunda yeni olmadığımı söylemeliyim, bu yüzden ihtiyacım olanı elde etmek için standart bir kütüphane veya paket olabilir.
Yardımın için teşekkürler!!
msExtrema {msProcess}
) ve tolerans ayarları ile oynayarak sadece maksimumları, asla hepsini tanımlayabildim.
msExtrema
basit bir sarıcıdır ; bu, yerel minima değil, yalnızca yerel maxima'yı istiyorsanız doğrudan kullanmaktan daha iyi olur. Neden varsayılanı kullanmanın tüm yerel maksimumları bulamadığını göremiyorum . Ve 2 ^ 15 = 32768, verimliliğin büyük bir endişe olabileceği kadar büyük olmamalıdır. peaks
splus2R
span=3
peaks
buggy gibi görünüyor: max.col
Varsayılan ayarı ile çağırıyor ties.method = "random"
, sadece rastgele bağları koparmakla kalmıyor, aynı zamanda bir kravat bildirmek için 1e-5'e göreceli bir tolerans da ayarlıyor. İlki kafa karıştırıcı, ikincisi kesinlikle burada istediğiniz şey değil. peaks()
ayrıca strict
kötü belgelenmiş bir parametre alır ve işlevin koduna bakarak hiçbir şey yapmaz. Ah, kullanıcı katkısı olan yazılım kütüphanelerinin sevinci! Programlamaya yeni olmadığınızı söylediğiniz gibi, düzeltebilirsiniz
density()
her veri için yoğunluğu tahmin etmez, n değerlerindeki yoğunluğu tahmin eder ; burada n , varsayılan değer n = 512 olan kullanıcı tarafından belirlenen bir parametredir.