给定 R 中可以处理的离散 CDF,创建一个分位数函数
Create a quantile function given a discrete CDF in R that can handle
因此,例如,我有一个带有 CDF 的离散函数,如下所示:
cdf <- c(0.00, 0.35, 0.71, 0.92, 1.00, 1.00, 1.00, 1.00)
我可以用下面一行创建一种分位数函数。 . .
result <- which(cdf == min(cdf[cdf > x]))
。 . .其中 x 是累积概率。例如,qfunction(0.9) = 4 和 qfunction(0.99) = 5。
在我想处理向量之前,这个解决方案看起来不错(尽管不够优雅)。所以如果 x = c(0.9, 0.99) 我的函数失败了。这似乎是人们会在 R 中做很多事情,但我还没有找到解决方案。 R 不是我的主要语言。
如有任何帮助,我们将不胜感激。
您可能需要 findInterval()
功能。有关此功能的详细信息,请参阅 ?findInerval
帮助页面。但是像
findInterval(c(.9, .99), cdf)+1
应该适用于您的示例 data/input。
因此,例如,我有一个带有 CDF 的离散函数,如下所示:
cdf <- c(0.00, 0.35, 0.71, 0.92, 1.00, 1.00, 1.00, 1.00)
我可以用下面一行创建一种分位数函数。 . .
result <- which(cdf == min(cdf[cdf > x]))
。 . .其中 x 是累积概率。例如,qfunction(0.9) = 4 和 qfunction(0.99) = 5。
在我想处理向量之前,这个解决方案看起来不错(尽管不够优雅)。所以如果 x = c(0.9, 0.99) 我的函数失败了。这似乎是人们会在 R 中做很多事情,但我还没有找到解决方案。 R 不是我的主要语言。
如有任何帮助,我们将不胜感激。
您可能需要 findInterval()
功能。有关此功能的详细信息,请参阅 ?findInerval
帮助页面。但是像
findInterval(c(.9, .99), cdf)+1
应该适用于您的示例 data/input。