我计算以下数据的密度函数:
> 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
这给了我这个结果:
我想找到两个密度峰值的位置。我最初考虑使用diff()
onmyden$y
然后检查所有有符号变化的位置,以此作为选择 X 轴值的条件。我在一些测试向量上进行了尝试,但没有得到预期的结果,我怀疑它并不是那么简单。
有没有一种简单的方法可以做到这一点?我想要一个可重复的解决方案,因为我将作为随机模拟研究的一部分进行此操作,实现约 e+05 次,并且可能会发生峰值数量在模拟中发生变化的情况。