R: эмпирическая версия pnorm () и qnorm ()? - PullRequest
3 голосов
/ 23 июня 2010

У меня есть метод нормализации, который использует обычные функции распределения pnorm () и qnorm ().Я хочу изменить свою логику, чтобы я мог использовать эмпирические распределения вместо того, чтобы предполагать нормальность.Я использовал ecdf () для вычисления эмпирических кумулятивных распределений, но потом понял, что начинаю писать функцию, которая в основном была версиями p и q эмпирических.Есть ли более простой способ сделать это?Может быть, пакет с pecdf () и qecdf ()?Я ненавижу изобретать велосипед.

Ответы [ 3 ]

9 голосов
/ 23 июня 2010

Вы можете использовать функции quantile и ecdf для получения qecdf и pecdf соответственно:

x <- rnorm(20)
quantile(x, 0.3, type=1) #30th percentile
Fx <- ecdf(x)
Fx(0.1)  # cdf at 0.1
2 голосов
/ 23 июня 2010

'эмулирующий' pnorm для эмпирического распределения с ecdf:

> set.seed(42)
> x <- ecdf(rnorm(1000))
> x(0)
[1] 0.515
> pnorm(0)
[1] 0.5
1 голос
/ 23 июня 2010

Разве это не то, что делают значения начальной загрузки p ?

Если это так, сохраняйте вектор, сортируйте и считывайте в соответствующей позиции (т.е. 500 для 5% на 10 000 повторений). Есть некоторые тонкие проблемы с позициями, например: help(quantile) обсуждается в разделе «Типы».

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