Объясните функцию quantile () в R - PullRequest
62 голосов
/ 18 сентября 2008

Я был озадачен функцией квантиля R весь день.

У меня есть интуитивное представление о том, как работают квантили, и M.S. в статистике, но мальчик, о мальчик, документация для меня сбивает с толку.

Из документов:

Q [i] (p) = (1 - гамма) x [j] + гамма х [J + 1],

Я до сих пор с этим. Для квантиля типа i это интерполяция между x [j] и x [j + 1], основанная на некоторой загадочной константе gamma

где 1 <= i <= 9, (j-m) / n <= p < (j-m + 1) / n, x [j] - это j-й порядок статистика, n - размер выборки, а m постоянная, определяемая образцом квантильный тип. Здесь гамма зависит от дробная часть g = np + m-j. </p>

Итак, как рассчитать J? м?

Для непрерывного образца квантиля типы (с 4 по 9), образец квантили могут быть получены путем линейного интерполяция между k-м порядком статистика и p (k):

p (k) = (k - альфа) / (n - альфа - бета + 1), где α и β - постоянные, определенные по типу. Далее m = альфа + р (1 - альфа - бета) и гамма = г.

Теперь я действительно потерян. p, которая раньше была константой, теперь, по-видимому, является функцией.

То есть для квантилей типа 7 по умолчанию ...

Тип 7

p (k) = (k - 1) / (n - 1). В этом случае p (k) = mode [F (x [k])]. Используется S.

Кто-нибудь хочет мне помочь? В частности, меня смущает то, что p является функцией и константой, что за хрень m , и теперь нужно вычислить j для некоторого конкретного p .

Я надеюсь, что, основываясь на ответах здесь, мы сможем представить пересмотренную документацию, которая лучше объясняет, что здесь происходит.

quantile.R исходный код или введите: quantile.default

Ответы [ 2 ]

56 голосов
/ 23 сентября 2009

Вы, понятно, запутались. Эта документация ужасна. Мне пришлось вернуться к работе, основанной на ней (Хиндман Р.Дж .; Фан Ю. (ноябрь 1996 г.). «Образцы квантилей в статистических пакетах». Американский статистик 50 (4): 361–365. doi: 10.2307 / 2684934 ), чтобы получить понимание. Давайте начнем с первой проблемы.

, где 1 <= i <= 9, (jm) / n <= p <(j-m + 1) / n, x [j] - статистика j-го порядка, n - размер выборки, а m - постоянная, определяемая типом квантиля выборки. Здесь гамма зависит от дробной части g = np + m-j. </p>

Первая часть взята прямо из статьи, но авторы документации не указали, что j = int(pn+m). Это означает, что Q[i](p) зависит только от двух статистик порядка, ближайших к доле p пути (отсортированных) наблюдений. (Для тех, кто, как и я, незнаком с этим термином, «статистика порядка» серии наблюдений - это отсортированный ряд.)

Кроме того, последнее предложение просто неверно. Следует читать

Здесь гамма зависит от дробной части np + m, g = np + m-j

Что касается m, это просто. m зависит от того, какой из 9 алгоритмов был выбран. Так что, как Q[i] является функцией квантиля, m следует считать m[i]. Для алгоритмов 1 и 2 m равно 0, для 3 m равно -1/2, а для остальных это в следующей части.

Для непрерывных выборочных типов квантилей (от 4 до 9) выборочные квантили можно получить путем линейной интерполяции между статистикой k-го порядка и p (k):

p (k) = (k - альфа) / (n - альфа - бета + 1), где α и β - постоянные, определяемые типом. Кроме того, m = альфа + р (1 - альфа - бета) и гамма = г.

Это действительно сбивает с толку. То, что в документации называется p(k), не совпадает с p, как было раньше. p(k) - это позиция . В статье авторы пишут это как pk, что помогает. Тем более что в выражении для m p - это оригинальное p, а m = alpha + p * (1 - alpha - beta). Концептуально, для алгоритмов 4-9, точки (pk, x[k]) интерполируются для получения решения (p, Q[i](p)). Каждый алгоритм отличается только алгоритмом для pk.

Что касается последнего бита, то R просто указывает, что использует S.

В оригинальной статье приведен список из 6 «желательных свойств для выборочного квантиля» и указывается предпочтение для # 8, которое удовлетворяет всем на 1. # 5 удовлетворяет всем из них, но им не нравится это в других основания (это более феноменологически, чем вытекает из принципов). # 2 - это то, что нестаты, вроде меня, считают квантилями, и то, что описано в википедии.

Кстати, в ответ на dreeves ответ , Mathematica делает вещи значительно иначе. Я думаю, что я понимаю отображение. В то время как Mathematica легче понять, (a) легче выстрелить себе в ногу с бессмысленными параметрами, и (b) он не может выполнить алгоритм R №2. (Вот страница Quantile Mathworld , в которой говорится, что Mathematica не может сделать # 2, но дает более простое обобщение всех других алгоритмов в терминах четырех параметров.)

5 голосов
/ 18 сентября 2008

Существуют различные способы вычисления квантилей, когда вы задаете вектор, и у вас нет известного CDF.

Рассмотрим вопрос о том, что делать, если ваши наблюдения не попадают точно в квантили.

«Типы» просто определяют, как это сделать. Итак, методы говорят: «используйте линейную интерполяцию между статистикой k-го порядка и p (k)».

Итак, что такое p (k)? Один парень говорит: «Ну, я люблю использовать к / п». Другой парень говорит: «Мне нравится использовать (k-1) / (n-1)» и т. Д. Каждый из этих методов имеет разные свойства, которые лучше подходят для той или иной проблемы.

\ alpha и \ beta - это просто способы параметризации функций p. В одном случае они равны 1 и 1. В другом случае они равны 3/8 и -1/4. Я не думаю, что р всегда постоянны в документации. Они просто не всегда показывают зависимость явно.

Посмотрите, что происходит с различными типами, когда вы вводите векторы, такие как 1: 5 и 1: 6.

(также обратите внимание, что даже если ваши наблюдения попадают именно на квантили, некоторые типы по-прежнему будут использовать линейную интерполяцию).

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