获取经验 cdf 值的方法
Way to get the value of an empifical cdf
全部,
我有一个数组如下:
x=runif(1)
cdf=cumsum(c(.2,.5,.1,.05,.05,.01,.09))
>p
[1] 0.20 0.70 0.80 0.85 0.90 0.91 1.00
如何return x 对应的 cdf 条目的索引?例如,.1 将 return 1,.98 将 return 7)
尝试findInterval
,例如:
findInterval(c(0.1, 0.98), cdf) + 1
# [1] 1 7
正如@sgibb 所展示的,findInterval
是完成这项工作的正确工具。 (我不认为 "empirical cdf" 是您想要的正确术语,因为 ecdf
将 return 值范围内的值。您正在请求 "order statistic" . 我添加了最接近的可用标签,但由于 SO 实际上不是统计网站,因此找不到更窄的 "order statistic" 标签。)我已经用 -Inf
围绕我的 'vec' 参数和 Inf
(而不是将 returned 值增加 1):
> findInterval(c(0.1, 0.98), c(-Inf,cdf,Inf))
[1] 1 7
全部,
我有一个数组如下:
x=runif(1)
cdf=cumsum(c(.2,.5,.1,.05,.05,.01,.09))
>p
[1] 0.20 0.70 0.80 0.85 0.90 0.91 1.00
如何return x 对应的 cdf 条目的索引?例如,.1 将 return 1,.98 将 return 7)
尝试findInterval
,例如:
findInterval(c(0.1, 0.98), cdf) + 1
# [1] 1 7
正如@sgibb 所展示的,findInterval
是完成这项工作的正确工具。 (我不认为 "empirical cdf" 是您想要的正确术语,因为 ecdf
将 return 值范围内的值。您正在请求 "order statistic" . 我添加了最接近的可用标签,但由于 SO 实际上不是统计网站,因此找不到更窄的 "order statistic" 标签。)我已经用 -Inf
围绕我的 'vec' 参数和 Inf
(而不是将 returned 值增加 1):
> findInterval(c(0.1, 0.98), c(-Inf,cdf,Inf))
[1] 1 7