2008-09-18 24 views
60

La función R cuantile me ha desconcertado todo el día.Explicar la función quantile() en R

Tengo una noción intuitiva de cómo funcionan los cuantiles, y un M.S. en estadísticas, pero chico, chico, la documentación es confusa para mí.

A partir de los documentos:

Q [i] (p) = (1 - gamma) x [j] + gamma x [j + 1],

estoy con eso hasta ahora. Para un tipo de i cuantil, es una interpolación entre x [j] y x [j + 1], en base a algún misterioso constante gamma

donde 1 < = i < = 9, (jm)/n < = p < (j-m + 1)/n, x [j] es la estadística de la orden j , n es el tamaño de la muestra ym es una constante determinada por la muestra tipo cuantil. Aquí gamma depende de la parte fraccional de g = np + m-j.

Entonces, ¿cómo calcular j? ¿metro?

Para los continua cuantiles muestra tipos (4 a 9), la muestra cuantiles pueden obtenerse por interpolación lineal entre el orden k-ésimo estadística y p (k):

p (k) = (k - alfa)/(n - alfa - beta + 1), donde α y β son constantes determinadas por el tipo. Además, m = alfa + p (1 - alfa - beta) y gamma = g.

Ahora estoy realmente perdido. p, que era una constante antes, ahora es aparentemente una función.

Así, por cuantiles tipo 7, el valor por defecto ...

Tipo 7

p (k) = (k - 1)/(n - 1). En este caso, p (k) = modo [F (x [k])]. Esto es utilizado por S.

¿Alguien quiere ayudarme? En particular, estoy confundido por la notación de que p es una función y una constante, qué diablos es m, y ahora para calcular j para algunos particulares p.

Espero que basándonos en las respuestas aquí, podamos enviar alguna documentación revisada que explique mejor lo que está sucediendo aquí.

quantile.R source code o escribe: quantile.default

Respuesta

54

Estás comprensiblemente confundido. Esa documentación es terrible. Tuve que volver al documento basado en (Hyndman, RJ, Fan, Y. (noviembre de 1996). "Quantiles de muestra en paquetes estadísticos". Estadístico Estadounidense 50 (4): 361-365. doi:10.2307/2684934) para obtener una comprensión. Comencemos con el primer problema.

donde 1 < = i < = 9, (jm)/n < = p < (jm + 1)/n, x [j] es la estadística orden j-ésimo, N es el tamaño de la muestra, ym es una constante determinada por el tipo de cuantil de muestra. Aquí gamma depende de la parte fraccional de g = np + m-j.

La primera parte viene directamente del papel, pero lo que los escritores de la documentación omitieron fue que j = int(pn+m). Esto significa que Q[i](p) solo depende de las dos estadísticas de orden más cercanas a p fracción del camino a través de las observaciones (ordenadas). (Para aquellos, como yo, que no están familiarizados con el término, las "estadísticas de orden" de una serie de observaciones son las series ordenadas).

Además, esa última frase es simplemente incorrecta. Se debería leer

Aquí gamma depende de la parte fraccionaria de np + m, g = np + m-j

cuanto a m que es sencillo. m depende de cuál de los 9 algoritmos se eligió. Así que al igual que Q[i] es la función de cuantil, m se debe considerar m[i]. Para los algoritmos 1 y 2, m es 0, para 3, m es -1/2, y para los demás, eso está en la siguiente parte.

Para los tipos de muestra de cuantiles continuos (4 a 9), los cuantiles muestra se puede obtener por interpolación lineal entre la estadística de orden k-ésimo y P (k):

p (k) = (k - alfa)/(n - alfa - beta + 1), donde α y β son constantes determinadas por el tipo. Además, m = alfa + p (1 - alfa - beta) y gamma = g.

Esto es realmente confuso. Lo que la documentación llama al p(k) no es lo mismo que el p de antes. p(k) es el plotting position. En el documento, los autores lo escriben como pk, que ayuda. Especialmente dado que en la expresión m, el p es el p original, y el m = alpha + p * (1 - alpha - beta). Conceptualmente, para los algoritmos 4-9, los puntos (pk, x[k]) se interpolan para obtener la solución (p, Q[i](p)). Cada algoritmo solo difiere en el algoritmo para el pk.

En cuanto al último bit, R solo indica lo que S utiliza.

El documento original muestra una lista de 6 "propiedades deseables para un cuantil de muestra" y establece una preferencia para # 8 que satisface todos en 1. # 5 satisface todas, pero no les gusta en otros motivos (es más fenomenológico que derivado de los principios). # 2 es lo que geeks no-estadísticos como yo considerarían los cuantiles y es lo que se describe en wikipedia.

BTW, en respuesta a dreeves answer, Mathematica hace las cosas de manera significativamente diferente. Creo que entiendo el mapeo. Mientras que Mathematica es más fácil de entender, (a) es más fácil dispararse en el pie con parámetros sin sentido, y (b) no puede hacer el algoritmo de R # 2. (Aquí está Mathworld's Quantile page, que dice que Mathematica no puede hacer # 2, pero da una generalización más simple de todos los otros algoritmos en términos de cuatro parámetros.)

+0

Gracias por responder mi pregunta :) Esa fue una gran cantidad de detective trabajo. –

+0

No hay problema. Intento escribir una función cuantil para Python/Numpy para nuestro grupo, lo que me lleva a esta pregunta. Cuando finalmente encontré la respuesta, pensé que compartiría. – AFoglia

+31

Escribí la función quantile() y el archivo de ayuda asociado y la presenté al equipo central R en agosto de 2004 (reemplazando las versiones anteriores). Acabo de verificar y todos estos errores fueron causados ​​por el cambio de mi archivo de ayuda después de enviarlo. (Soy responsable del uso de p y p [k]). Nunca lo había notado ya que asumí que mi archivo quedaría intacto. Veré si puedo arreglar el archivo de ayuda para R 2.10.0. –

5

Hay varias maneras de cuantiles de computación cuando se dará un vector, y no tiene un CDF conocido.

Considere la pregunta de qué hacer cuando sus observaciones no recaen exactamente en los cuantiles.

Los "tipos" simplemente determinan cómo hacerlo. Entonces, los métodos dicen, "use una interpolación lineal entre el estadístico de orden k-ésimo yp (k)".

Entonces, ¿qué es p (k)? Un hombre dice: "bueno, me gusta usar k/n". Otro chico dice: "Me gusta usar (k-1)/(n-1)", etc. Cada uno de estos métodos tiene diferentes propiedades que son más adecuadas para un problema u otro.

Las \ alpha y \ beta son solo formas de parametrizar las funciones p. En un caso, son 1 y 1. En otro caso, son 3/8 y -1/4. No creo que las p sean alguna vez una constante en la documentación. Simplemente no siempre muestran la dependencia explícitamente.

Vea qué ocurre con los diferentes tipos cuando coloca vectores como 1: 5 y 1: 6.

(también tenga en cuenta que incluso si sus observaciones caen exactamente sobre los cuantiles, ciertos tipos seguirán utilizando interpolación lineal).

Cuestiones relacionadas