Даже в таких удобных случаях, как при нормальном распределении, для этого не существует выражения в замкнутой форме.Однако мы можем использовать численные методы.
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