Решение для x и y в qcauchy() с учетом его квантилей в R

Фон:

qcauchy(p, location, scale) является встроенной базовой функцией R. В этой функции "местоположение" указывает центр, а "масштаб" указывает на выносливость симметричной колоколообразной кривой (как нормальное распределение). "location" может быть любым числом (отрицательное, положительное, нецелое и т. д.). И "шкала" может быть любым числом больше "0". Кроме того, "р" - это вероятность, таким образом, 0 <= p <= 1.

Кодовый вопрос:

Только как 1 пример, я знаю qcauchy(p = c(.025, .975), location = x, scale = y ) = c(-12.7062, 12.7062 ), ТО, есть ли способ, которым я могу узнать, что x и y могут быть разумно (то есть, с некоторой погрешностью)?

PS: Как небольшой возможный старт, может nlm() (т. е. нелинейная минимизация) помочь здесь? Или тот факт, что самая правая сторона [т.е. c(-12.7062, 12.7062 ) ], то же самое число с противоположными знаками.

2 ответа

Решение

Я использовал пакет для решения системы нелинейных уравнений nleqslv, Я попробовал следующее

library(nleqslv)

f <- function(x) {
    y <- c(-12.7062, 12.7062) - qcauchy(c(.025,.975), location=x[1],  scale=x[2]) 
    y
}

nleqslv(c(1,1), f)

и получил этот ответ

$x
[1] 5.773160e-15 9.999996e-01

$fvec
[1]  1.421085e-14 -1.421085e-14

$termcd
[1] 1

$message
[1] "Function criterion near zero"

$scalex
[1] 1 1

$nfcnt
[1] 1

$njcnt
[1] 1

$iter
[1] 1

В дополнение к ответу Bhas, вы можете сначала использовать свою интуицию и признать, что местоположение должно быть нулевым, поскольку распределение симметрично и, как вы указали, эти два значения одинаковы до их знака. Так что в этом случае распределение симметрично относительно нуля.

Чтобы найти масштаб, используйте ответ Bhas или

find_scale_template <- function(q)
  function(y) {
    (qcauchy(p = .975, location = 0, scale = y) - q)^2
  }
}
find_scale <- find_scale_template(12.7062)
optimize(find_scale, interval = c(0, 10))
Другие вопросы по тегам