r - 在R中找到两个密度的交点

标签 r

如附图所示,我有两个重叠的密度。我想知道两条线的交汇点。我该怎么做呢?

Density Plot

这是生成图像的代码:

... #reading in files etc.
pdf("test-plot.pdf")
d1 <- density(somedata) 

d2 <- density(someotherdata)

plot(d1)

par(col="red")
lines(d2)

dev.off()

原始数据只是两个一维向量,所以我感兴趣的是它们密度的交点。

我尝试使用 here 中显示的解决方案,但不幸的是,它既没有给我一个数字,也没有正确地画线:

Doesn't work for me

编辑: I have found what I was looking for

最佳答案

# create and plot example data
set.seed(1)
plotrange <- c(-1,8)
d1 <- density(rchisq(1000, df=2), from=plotrange[1], to=plotrange[2])
d2 <- density(rchisq(1000, df=3)-1, from=plotrange[1], to=plotrange[2])
plot(d1)
lines(d2)

# look for points of intersection
poi <- which(diff(d1$y > d2$y) != 0) 

# Mark those points with a circle:
points(x=d1$x[poi], y=d1$y[poi], col="red")

# or with lines:
abline(v=d1$x[poi], col="orange", lty=2)
abline(h=d1$y[poi], col="orange", lty=2)

关于r - 在R中找到两个密度的交点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212352/

相关文章:

arrays - 标准化数组

r - 在 R 中使用多个匹配条件对数据框进行子集化

r - 如何将与具有随机效应的变量名称相关的公式正确传递到 `R` 中的拟合回归模型中?

r - Rscript 和 Littler 之间的区别

r - 带值的热图(ggplot2)

regex - 比 r 中的 gsub 更快的方法

r - 使用 optim 找到最小化,同时也强制参数总和为 1

r - 具有不同颜色负值的条形图

r - 如何绘制具有不连续 y 轴的面

r - RandomForest 包中的预测函数使用 xtest 和 ytest 选项给出与 randomForest 不同的结果