Подтвердить что ты не робот

Как рассчитать вероятность для данного квантиля в R?

Используя 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(), но не могу понять, как сделать ее результатом единственной вероятности вместо полного объекта уравнения.

4b9b3361

Ответ 1

ecdf возвращает функцию: вам нужно применить ее.

f <- ecdf(x)
f( quantile(x,.91) )
# Equivalently:
ecdf(x)( quantile(x,.91) )

Ответ 2

Просто для удобства эта функция помогает:

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