Решение для 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))