我要计算的位数功能的von Mises分布的混合物。我正在使用R),pmixedvonmises())的包圆形,它支持密度,通过dmixedvonmises(累积概率和采样从这样的模型和rmixedvonmises(分别。但是,有没有qmixedvonmises()(这就是我想要的)。对于单一的von Mises分布,它们都存在; rvonmises(),dvonmises(),pvonmises()和qvonmises()。它是很难得到的冯米塞斯分布的混合的位数的函数(假设所有模型参数都知道)?谁能帮我这个功能会是什么样子?是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
qmixedvonmises
利用这样的事实pmixedvonmises
已经可用,只是数字上解决此类q
即
pmixedvonmises(q) == p