Estou tentando encontrar o máximo local para uma função de densidade de probabilidade (encontrada usando o densitymétodo de R ). Não consigo fazer um método simples de "olhar ao redor dos vizinhos" (onde se olha em torno de um ponto para ver se é um máximo local em relação aos vizinhos), pois há um grande volume de dados. Além disso, parece mais eficiente e genérico usar algo como a interpolação Spline e, em seguida, encontrar as raízes da 1ª derivada, em vez de criar um "olhar ao redor dos vizinhos" com tolerância a falhas e outros parâmetros.
Então, minhas perguntas:
- Dada uma função de
splinefun, quais métodos encontrarão os máximos locais? - Existe uma maneira fácil / padrão de encontrar derivadas de uma função retornada usando
splinefun? - Existe uma maneira melhor / padrão de encontrar os máximos locais de uma função de densidade de probabilidade?
Para referência, abaixo está um gráfico da minha função de densidade. Outras funções de densidade com as quais estou trabalhando são semelhantes em forma. Devo dizer que sou novo no R, mas não sou novo na programação; portanto, pode haver uma biblioteca ou pacote padrão para alcançar o que eu preciso.

Obrigado pela ajuda!!
msExtrema {msProcess}) e só consegui identificar alguns dos máximos, nunca todos, jogando com as configurações de tolerância.
msExtrema, é um invólucro simples para peakso splus2Rpacote, que seria melhor usar diretamente se você quiser apenas o máximo local e não o mínimo local. Não vejo por que usar o padrão span=3não encontraria todos os máximos locais. E 2 ^ 15 = 32768 não deve ser grande o suficiente para que a eficiência seja uma grande preocupação.
peaksparece estar com erros: chama max.colcom a configuração padrão de ties.method = "random", que não apenas quebra os vínculos aleatoriamente, mas também define uma tolerância relativa de 1e-5 para declarar um empate. O primeiro é confuso, o último definitivamente não é o que você quer aqui. peaks()também pega um strictparâmetro mal documentado e, olhando o código da função, não faz nada. Ah, as alegrias das bibliotecas de software contribuídas pelos usuários! Você pode corrigi-lo, como diz que não é
density()não estimar a densidade para cada dado, estima a densidade a n valores, onde n é um parâmetro especificado pelo usuário com valor padrão n = 512.