Encontrar cuartiles en R

33

Estoy trabajando en un libro de texto de estadísticas mientras aprendo R y me he encontrado con un obstáculo en el siguiente ejemplo:

ingrese la descripción de la imagen aquí

Después de mirar ?quantile, intenté recrear esto en R con lo siguiente:

> 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 

Dado que el texto y R tienen resultados diferentes, deduzco que R está utilizando la mediana en el cálculo del primer y tercer cuartiles.

Pregunta:

¿Debo incluir la mediana en el cálculo del primer y tercer cuartiles?

Más específicamente, ¿el libro de texto o R tiene esto correcto? Si el libro de texto tiene esta correcta, ¿hay alguna manera de lograr esto correctamente en R?

Gracias por adelantado.


fuente
66
Algunos hilos aquí discuten las muchas formas en que los cuantiles pueden ser calculados o estimados. Aquí hay uno con una respuesta autorizada , pero hay otros disponibles buscando en nuestro sitio. En resumen, su libro de texto parece presentar un método no estándar para calcular cuartiles, pero los quantiletipos 1, 2 y 6 los reproducirán para un conjunto de datos de este tamaño particular . Ninguno de los Rmétodos corresponde a su libro de texto. (Uno se pregunta sobre la calidad de este texto ...)
whuber
@whuber Gracias por este comentario, me ayudó mucho ya que me temo que todavía no tengo los conocimientos técnicos para distinguir exactamente lo que quantileestán haciendo los diferentes tipos .
@whuber: es claramente no estándar (que probablemente se menciona en alguna parte del libro), pero no es intuitivo. ¿Crees que está mal matemáticamente?
Michael M
66
@ Michael Puedes definir un "cuartil" para que sea lo que quieras, por lo que no hay nada malo matemáticamente. Está claro que asintóticamente estas definiciones funcionan para grande . Pero la introducción de una definición novedosa en un libro de texto perjudica a los estudiantes reflexivos como Chuck D. que notan que no pueden hacer que sus cálculos concuerden con el software, las publicaciones o cualquier otra cosa que no sea su texto. n
whuber
1
R usa nueve definiciones diferentes de cuantiles (por defecto usa la definición 7). See?quantile
Glen_b -Reinstate Monica

Respuestas:

43

Tu libro de texto está confundido. Muy pocas personas o software definen cuartiles de esta manera. (Tiende a hacer que el primer cuartil sea demasiado pequeño y el tercer cuartil demasiado grande).

¡La quantilefunción Rimplementa nueve formas diferentes de calcular cuantiles! Para ver cuál de ellos, si corresponde, corresponde a este método, comencemos por implementarlo. De la descripción podemos escribir un algoritmo, primero matemáticamente y luego en R:

  1. Ordene los datos .x1x2xn

  2. Para cualquier conjunto de datos, la mediana es su valor medio cuando hay un número impar de valores; de lo contrario, es el promedio de los dos valores medios cuando hay un número par de valores. R'smedian función calcula esto.

    m=(n+1)/2(xl+xu)/2lummxml=m1u=m+1lu

  3. xiil(xi)iu

Aquí hay una implementación. Puede ayudarlo a hacer sus ejercicios en este libro de texto.

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]))
}

Por ejemplo, la salida de quart(c(6,7,8,9,10,15,16,16,20,20,23,33,50,58,104))está de acuerdo con el texto:

Q1 Q3 
 9 33 

Calculemos cuartiles para algunos conjuntos de datos pequeños utilizando los diez métodos: los nueve en Ry los libros de texto:

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)
}

Cuando ejecute esto y verifique, encontrará que los valores del libro de texto no concuerdan con ninguno de losR resultados para los tres tamaños de muestra. (El patrón de desacuerdos continúa en los ciclos del período tres, lo que demuestra que el problema persiste sin importar qué tan grande sea la muestra).

9.528

whuber
fuente
3
Muchas gracias por una respuesta tan detallada junto con proporcionarme las herramientas para trabajar por mi cuenta y evaluar los diferentes métodos. Voy a encenderlos ahora y repasar las cosas con más detalle.
2

Dentro del campo de la estadística (que enseño, pero en el que no soy investigador), los cálculos del cuartil son particularmente ambiguos (de una manera que no es necesariamente cierto para los cuantiles, en general). Esto tiene mucha historia detrás, en parte debido al uso (y quizás al abuso) del rango intercuartil (IQR), que es insensible a los valores atípicos, como un control o una alternativa a la desviación estándar. Sigue siendo un concurso abierto, con tres métodos distintivos para calcular Q1 y Q3 que son co-canónicos.

Como suele ser el caso, el artículo de Wikipedia tiene un resumen razonable: https://en.m.wikipedia.org/wiki/Quartile El texto de Larson y Farber, como la mayoría de los textos de estadísticas elementales, utiliza lo que se describe en el artículo de Wikipedia como " Método 1." Si sigo las descripciones anteriores, r usa el "Método 3". Tendrás que decidir por ti mismo cuál es canónicamente apropiado en tu propio campo.

James Klock
fuente
Haces buenos puntos (+1). Pero dado que las referencias para el "Método 1" son la calculadora TI-83 y Excel (cuya falta de credibilidad es bien conocida), que este método está sesgado de manera demostrable, y que no es más difícil de calcular que las bisagras de Tukey, sería Parece difícil de justificar o recomendar su uso.
whuber