В поисках квартилей в R


33

Я изучаю учебник по статистике, изучая R, и наткнулся на камень преткновения в следующем примере:

введите описание изображения здесь

После просмотра ?quantileя попытался воссоздать это в R следующим образом:

> nuclear <- c(7, 20, 16, 6, 58, 9, 20, 50, 23, 33, 8, 10, 15, 16, 104)
> quantile(nuclear)
   0%   25%   50%   75%  100% 
  6.0   9.5  16.0  28.0 104.0 

Учитывая, что текст и R имеют разные результаты, я понимаю, что R использует медиану в расчете первого и третьего квартилей.

Вопрос:

Должен ли я включать медиану в расчет первого и третьего квартилей?

Точнее, в учебнике или в R это правильно? Если в учебнике это правильно, есть ли способ добиться этого в R?

Заранее спасибо.

r  quantiles 

6
В нескольких темах обсуждается множество способов вычисления или оценки квантилей. Вот один с авторитетным ответом , но другие доступны при поиске на нашем сайте. Вкратце, в вашем учебнике представлен нестандартный метод вычисления квартилей, но quantileтипы 1, 2 и 6 будут воспроизводить их для набора данных этого конкретного размера . Ни один из Rметодов не соответствует вашему учебнику. (Интересно о качестве этого текста ...)
whuber

@whuber Спасибо за этот комментарий, это очень помогло, так как я боюсь, что у меня пока нет технических знаний, чтобы точно различать, что делают разные типы quantile.

@whuber: он явно нестандартный (что, вероятно, упоминается где-то в книге), но не интуитивно понятен. Вы думаете, это неправильно математически?
Майкл М

6
@Michael Вы можете определить «квартиль» как угодно, так что математически все в порядке. Понятно, что асимптотически эти определения работают для больших . Но введение нового определения в учебник оказывает плохую услугу вдумчивым студентам, таким как Чак Д., которые замечают, что не могут заставить свои расчеты согласиться с программным обеспечением, публикациями или чем-то еще, кроме своего текста. N
whuber

1
R использует девять различных определений квантилей (по умолчанию используется определение 7). Смотрите?quantile
Glen_b

Ответы:


43

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

quantileФункция Rреализует девять различных способов вычислительных квантилей! Чтобы увидеть, какие из них, если таковые имеются, соответствуют этому методу, давайте начнем с его реализации. Из описания мы можем написать алгоритм сначала математически, а затем в R:

  1. Порядок данных .Икс1Икс2ИксN

  2. Для любого набора данных медиана является его средним значением, когда существует нечетное число значений; в противном случае это среднее двух средних значений при четном числе значений. R«S medianфункция вычисляет это.

    Индекс среднего значения равен . Когда это не является целым числом, является медианой, где и являются закругленные вниз и вверх. В противном случае, когда является целым числом, является медианой. В этом случае возьмите и . В любом случае - это индекс значения данных непосредственно слева от медианы, а - индекс значения данных непосредственно справа от медианы.( x l + x u ) / 2 l u m m x m l = m - 1 u = m + 1 l uмзнак равно(N+1)/2(ИксL+ИксU)/2LUммИксмLзнак равном-1Uзнак равном+1LU

  3. «Первый квартиль» - это медиана всех для которых . «Третий квартиль» - это медиана для которой . i l ( x i ) i uИксяяL(Икся)яU

Вот реализация. Это может помочь вам сделать упражнения в этом учебнике.

quart <- function(x) {
  x <- sort(x)
  n <- length(x)
  m <- (n+1)/2
  if (floor(m) != m) {
    l <- m-1/2; u <- m+1/2
  } else {
    l <- m-1; u <- m+1
  }
  c(Q1=median(x[1:l]), Q3=median(x[u:n]))
}

Например, вывод quart(c(6,7,8,9,10,15,16,16,20,20,23,33,50,58,104))соглашается с текстом:

Q1 Q3 
 9 33 

Давайте вычислим квартили для некоторых небольших наборов данных, используя все десять методов: девять Rи учебники:

y <- matrix(NA, 2, 10)
rownames(y) <- c("Q1", "Q3")
colnames(y) <- c(1:9, "Quart")
for (n in 3:5) {
  j <- 1
  for (i in 1:9) {
    y[, i] <- quantile(1:n, probs=c(1/4, 3/4), type=i)
  }
  y[, 10] <- quart(1:n)
  cat("\n", n, ":\n")
  print(y, digits=2)
}

Запустив это и проверив, вы обнаружите, что значения учебника не соответствуют ни одному из Rвыходных данных для всех трех размеров выборки. (Модель разногласий продолжается в циклах третьего периода, показывая, что проблема сохраняется независимо от размера выборки.)

Учебник, возможно, неправильно истолковал метод вычисления «петель» Джона Тьюки (он же «четверти»). Разница заключается в том, что при разделении набора данных вокруг медианы он включает медиану в обеих половинах. Это даст и для примера набора данных.289,528


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

2

В области статистики (которую я преподаю, но в которой я не являюсь исследователем) расчеты квартилей особенно неоднозначны (таким образом, это не всегда верно для квантилей, в более общем смысле). За этим стоит большая история, отчасти из-за использования (и, возможно, злоупотребления) межквартильного диапазона (IQR), который нечувствителен к выбросам, в качестве проверки или альтернативы стандартному отклонению. Это остается открытым конкурсом, в котором три отличительных метода для вычисления Q1 и Q3 являются ко-каноническими.

Как это часто бывает, статья в Википедии имеет разумное резюме: https://en.m.wikipedia.org/wiki/Quartile В тексте Ларсона и Фарбера, как и в большинстве элементарных статистических текстов, используется то, что описано в статье Википедии как « Способ 1. " Если я следую приведенным выше описаниям, r использует «Метод 3». Вы должны решить для себя, что канонически уместно в вашей области.


Вы зарабатываете хорошие очки (+1). Но учитывая, что ссылками на «Метод 1» являются калькулятор TI-83 и Excel (отсутствие достоверности которого хорошо известно), что этот метод явно предвзятый и что его не сложнее вычислить, чем шарниры Тьюки, он будет кажется трудно обосновать или рекомендовать его использование.
whuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.