Квантильная функция для смешанных распределений фон Мизеса - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу вычислить квантильную функцию для смеси распределения Мизеса.Я использую пакет циркуляр в R, который поддерживает плотность, совокупную вероятность и выборку из такой модели с помощью dmixedvonmises () , pmixedvonmises () и rmixedvonmises () соответственно.Тем не менее, нет qmixedvonmises () (что я хочу).Для одного распределения фон Мизеса все они существуют; rvonmises () , dvonmises () , pvonmises () и qvonmises () .Сложно ли получить функцию для квантилей смеси распределений фон Мизеса (учитывая, что все параметры модели известны)?Может кто-нибудь помочь мне с тем, как эта функция будет выглядеть?Есть ли другие пакеты в R, которые предоставляют эту функцию?

1 Ответ

0 голосов
/ 04 февраля 2019

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

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
...