混合 von Mises 分布的分位数函数
Quantile function for mixed von Mises distributions
我想计算 von Mises 分布混合的分位数函数。我在 R 中使用包 circular,它通过 dmixedvonmises()、pmixedvonmises() 和 rmixedvonmises()。但是,没有 qmixedvonmises() (这就是我想要的)。
对于单个 von Mises 分布,它们都存在; rvonmises()、dvonmises()、pvonmises() 和 qvonmises() 。
是否很难获得 von Mises 分布混合的分位数函数(假设所有模型参数都已知)?任何人都可以帮助我了解此功能的外观吗?
R中是否有其他包提供此功能?
即使在像正态分布这样方便的情况下,也没有封闭形式的表达式。但是,我们可能会使用数值方法。
library(circular)
qmixedvonmises <- function(p, mu1, mu2, kappa1, kappa2, prop) {
fun <- function(q) pmixedvonmises(q, mu1, mu2, kappa1, kappa2, prop) - p
suppressWarnings(uniroot(fun, c(0, 2 * pi - 1e-8))$root)
}
qmixedvonmises(0.05, mu1 = circular(0), mu2 = circular(pi), kappa1 = 15, kappa2 = 15, prop = 0.5)
# [1] 0.06599235
qmixedvonmises(0.95, mu1 = circular(0), mu2 = circular(pi), kappa1 = 15, kappa2 = 15, prop = 0.5)
# [1] 6.217193
有关详细信息,请参阅 here, here, and here。
qmixedvonmises
利用了 pmixedvonmises
已经可用的事实,并简单地用数值求解 q
pmixedvonmises(q) == p
我想计算 von Mises 分布混合的分位数函数。我在 R 中使用包 circular,它通过 dmixedvonmises()、pmixedvonmises() 和 rmixedvonmises()。但是,没有 qmixedvonmises() (这就是我想要的)。 对于单个 von Mises 分布,它们都存在; rvonmises()、dvonmises()、pvonmises() 和 qvonmises() 。 是否很难获得 von Mises 分布混合的分位数函数(假设所有模型参数都已知)?任何人都可以帮助我了解此功能的外观吗? R中是否有其他包提供此功能?
即使在像正态分布这样方便的情况下,也没有封闭形式的表达式。但是,我们可能会使用数值方法。
library(circular)
qmixedvonmises <- function(p, mu1, mu2, kappa1, kappa2, prop) {
fun <- function(q) pmixedvonmises(q, mu1, mu2, kappa1, kappa2, prop) - p
suppressWarnings(uniroot(fun, c(0, 2 * pi - 1e-8))$root)
}
qmixedvonmises(0.05, mu1 = circular(0), mu2 = circular(pi), kappa1 = 15, kappa2 = 15, prop = 0.5)
# [1] 0.06599235
qmixedvonmises(0.95, mu1 = circular(0), mu2 = circular(pi), kappa1 = 15, kappa2 = 15, prop = 0.5)
# [1] 6.217193
有关详细信息,请参阅 here, here, and here。
qmixedvonmises
利用了 pmixedvonmises
已经可用的事实,并简单地用数值求解 q
pmixedvonmises(q) == p