Ответ 1
ecdf
возвращает функцию: вам нужно применить ее.
f <- ecdf(x)
f( quantile(x,.91) )
# Equivalently:
ecdf(x)( quantile(x,.91) )
Используя R, тривиально вычислять квантили для заданных вероятностей в выборочном распределении:
x <- rnorm(1000, mean=4, sd=2)
quantile(x, .9) # results in 6.705755
Однако я не могу найти простой способ сделать обратное вычисление вероятности для данного квантиля в образце x
. Самое близкое, что я пришел, это использовать pnorm()
с тем же средним и стандартным отклонением, которое я использовал при создании образца:
pnorm(5, mean=4, sd=2) # results in 0.6914625
Однако, поскольку это вычисляет вероятность из полного нормального распределения, а не образец x
, это не совсем точно.
Есть ли функция, которая, по существу, выполняет инверсию quantile()
? Что-то, что по существу позволяет мне делать то же самое, что и pnorm()
, но с образцом? Что-то вроде этого:
backwards_quantile(x, 5)
Я нашел функцию ecdf()
, но не могу понять, как сделать ее результатом единственной вероятности вместо полного объекта уравнения.
ecdf
возвращает функцию: вам нужно применить ее.
f <- ecdf(x)
f( quantile(x,.91) )
# Equivalently:
ecdf(x)( quantile(x,.91) )
Просто для удобства эта функция помогает:
quantInv <- function(distr, value) ecdf(distr)(value)
set.seed(1)
x <- rnorm(1000, mean=4, sd=2)
quantInv(x, c(4, 5, 6.705755))
[1] 0.518 0.685 0.904