4
我对我的数据learningTime
(见下图)有一个密度估计(使用density
函数),我需要找到概率Pr(learningTime > c)
,即密度曲线下面积给定数字c
(红色垂直线)到曲线末端。任何想法?密度估计曲线下的计算面积,即概率
我对我的数据learningTime
(见下图)有一个密度估计(使用density
函数),我需要找到概率Pr(learningTime > c)
,即密度曲线下面积给定数字c
(红色垂直线)到曲线末端。任何想法?密度估计曲线下的计算面积,即概率
这不是一个困难的工作。假设我们有一些观测到的数据x
(您TMESAL$learningTime
),作为一个重复的例子,我简单地生成1000个标准正常随机样本:
set.seed(0)
x <- rnorm(1000)
现在我们进行密度估计,一些定制:
d <- density.default(x, n = 512, cut = 3)
str(d)
# List of 7
# $ x : num [1:512] -3.91 -3.9 -3.88 -3.87 -3.85 ...
# $ y : num [1:512] 2.23e-05 2.74e-05 3.35e-05 4.07e-05 4.93e-05 ...
# ... truncated ...
我们拿出d$x
和d$y
:
xx <- d$x ## 512 evenly spaced points on [min(x) - 3 * d$bw, max(x) + 3 * d$bw]
dx <- xx[2L] - xx[1L] ## spacing/bin size
yy <- d$y ## 512 density values for `xx`
plot(xx, yy, type = "l") ## plot density curve (or use `plot(d)`)
集成可PE由Riemann Sum决定。例如,密度曲线下的面积是:
C <- sum(yy) * dx ## sum(yy * dx)
# [1] 1.000976
由于黎曼萨姆仅仅是一个近似,从1(总概率)一点点此偏离。我们称这个值为“标准化常数”。
现在,假设我们想找到面积则曲线下,从x0 = 1
的曲线,即数值积分上[x0, Inf]
年底,我们可以通过
p.unscaled <- sum(yy[xx >= x0]) * dx
# [1] 0.1691366
接近它的上面是未缩放的估计,我们可以通过C
它的规模:
由于我们的模拟x
的真密度知道,我们可以比较这个估计与真值:
pnorm(x0, lower.tail = FALSE)
# [1] 0.1586553
这相当接近。
谢谢@Zheyuan李。它运作良好 – Eric