微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 R 中拟合数据并获得定义的最小值数

如何解决在 R 中拟合数据并获得定义的最小值数

我有一个数据集,如下例所示,它有多个峰值。我想要峰值之间的最小值的 x 值。如果我需要定义多少个最小值,那不是问题(即我期望我的数据中有三个峰值,所以我可以告诉代码获得两个最小值。)

我使用 density() 来拟合数据,但我一直在获取多个最小值:

示例数据:

nn <- 1e4
set.seed(1)
betas<-rbeta(nn,3,2)
sims <- c(betas[1:(nn/2)]*2+1,betas[(nn/2+1):nn]*2+3,betas[(nn/2+2):nn]*3+4)

hist(sims)

我应该有一个介于 x 3 和 3.5 之间,以及 x 5 和 5.5 之间的最小值。我可以将结束算作最小值,但不是我的问题的优先级。

enter image description here

感谢任何帮助。

解决方法

density()拟合后

我将 mSTEM 包用于有效的 which.peaks() function

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。