用R找出双峰分布的最小值

时间:2014-11-03 03:50:00

标签: r

在你问之前,是的,我做了彻底的搜索,包括在StackExchange中。我查看了这个问题Find local minimum in bimodal distribution with r;它有用,但不会一直用于我。

以下是我的数据:https://www.dropbox.com/s/ulsw5cfwjnh6tdu/output?dl=0

实际上,我有数千个这样的文件 - 数据被组织成我需要绘制的列向量。然后,对于每个图,我必须弄清楚分布是否是双峰的,如果是,则找到该最小值的x值。在上面的文件中,第2列中的数据似乎具有双峰分布。

此代码似乎有效,但我必须手动指定最小值的位置:

datafile <- read.table("output")
data <- datafile$V2
d <- density(data) # returns the density data with defaults
hist(data,prob=TRUE)
lines(d) 
optimize(approxfun(d$x,d$y),interval=c(5,10))$minimum

最后一句话(我是从Find local minimum in bimodal distribution with r得到的)返回

[1] 6.841577

这似乎是正确的。但是,我必须对间隔= c(5,10)进行硬编码,即我必须查看图表并告诉它在哪里寻找最小值。如果我做

  

优化(approxfun(d $ X,d $ y)时,间隔=范围(X $ V2))$最小

我得到了

[1] 25.30096

这不是我想要的。

我有成千上万的情节,所以这不是一个选择。有没有办法自动化这个过程?请帮忙,我绝对绝望。

P.S。我没有足够的声誉来发布情节。遗憾。

0 个答案:

没有答案