我已经建立了密度函数,现在我想计算一个新数据点“落入”选定间隔的概率(例如,a = 3,b = 7)。所以,我在寻找:

P(a<x<=b)


一些样本数据:

df<- data.frame(x=c(sample(6:9, 50, replace=TRUE), sample(18:23, 25, replace=TRUE)))

dens<- density(df$x)


我很高兴听到任何解决方案,但最好在base r

先感谢您

最佳答案

您需要获取密度作为函数(使用approxfun),然后在所需的限制范围内对函数进行积分。

integrate(approxfun(dens), lower=3, upper=7)
0.258064 with absolute error < 3.7e-05

## Consistency check
integrate(approxfun(dens), lower=0, upper=30)
0.9996092 with absolute error < 1.8e-05

08-18 04:31