r - 当我知道 R 中的特定累积分布函数时,如何编码以找到分布的百分位数?
问题描述
对于给定的 $k_2$ 和 $n_2$ ,当我知道这个累积分布函数时,如何求解分布的百分位数
我想知道是否有人可以帮助写下R代码来解决这个问题,THX!
解决方案
参数k1
, k2
, n1
,n2
是否固定并不重要。正如它在文本中所说,我继续F
作为 beta 分布的 pdf。stats::integrate
功能有助于整合功能。
cdf <- function(t, k1, k2, n1, n2){
dummy_func <- function(x) {
pbeta(x+t, k1 + .5, n1 - k1 + .5) * x^(k2 - .5) * (1 - x)^(n2 - k2 - .5)
}
1/beta(k2 + .5, n2 - k2 + .5) * integrate(dummy_func, lower = 0, upper = 1)$value
}
然后它不是那么精确,但 letx = seq(-0.9,1,by = 0.001)
是序列 from-0.9
到1
by的向量0.001
。在这种情况下,我让这个函数的支持为 (0.9,1)。我们可以获得 中元素的累积x
概率y <- sapply(x, function(t) cdf(t,1,1,1,1))
。然后找到任何你想要的分位数,例如 80%,让z <- data.frame(cbind(x,y))
then z$x[which.min(abs(z$y - 0.8))]
=0.281
将是一个答案。
推荐阅读
- javascript - 学习 javascript 的最佳方式是通过一本书或付费课程(我已经掌握了一些有关编程的基础知识)?
- python - 无法根据机器人框架中的标签运行测试套件设置
- flutter - 如何在颤动中使用 SeekBar 值更改文本大小?
- xamarin - 尝试读取文件时 Xamarin UWP “访问路径被拒绝”
- flutter - Flutter - 使用 Web 插件捆绑资产
- python - 为什么python列表显示切片异常?
- azure - Azure Synapse 外部表位置参数化
- android - android:layout_weight 仅适用于 LinearLayout 还是您也可以在 RelativeLayout 中使用它?
- azure - Azure Vnet 中的条件转发器不起作用
- html - 如何将特定元素添加到现有的 tumblr 主题?