Объясните функцию quantile() в R

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

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

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

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

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

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

Итак, как вычислить j? м?

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

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

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

Итак, для квантов типа 7 значение по умолчанию...

Тип 7

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

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

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

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

Ответ 1

Ты понятен смущен. Эта документация ужасна. Я должен был вернуться к статье, основанной на ней (Hyndman, RJ, Fan, Y. (ноябрь 1996 г.). "Примеры квантилей в статистических пакетах". Американский статистик 50 (4): 361-365. doi: 10.2307/2684934), чтобы понять. Начнем с первой проблемы.

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

Первая часть идет прямо из статьи, но то, что пропустили авторы документации, было 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 = альфа + p (1 - альфа - бета) и gamma = g.

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

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

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

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

Ответ 2

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

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

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

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

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

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

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