10 votos

Fórmula de Doane para el agrupamiento de histogramas

Estoy implementando varios algoritmos para estimar el mejor número de contenedores a usar para los histogramas. La mayoría de los que estoy implementando están descritos en la página de Wikipedia "Histograma" en la sección "Número de contenedores y ancho".

Estoy atascado en un problema con la fórmula de Doane:

1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.)

donde n es el tamaño de los datos.

El problema surge cuando la curtosis es negativa y n >> 1 porque el argumento del log se vuelve negativo.

* (esa página ha cambiado desde que esto fue publicado, se editó el enlace para apuntar a la página tal como estaba en el momento de la publicación)

1 votos

¿Sabes si esa fórmula usa kurtosis o kurtosis excesiva (es decir, ¿tiene una distribución normal 4 o 0)?

0 votos

@PeterFlom: en el documento original (amstat.tandfonline.com/doi/pdf/10.1080/00031305.1976.104791‌​72) el curtosis se define como la asimetría, pero no soy experto. El documento original también es bastante diferente de la fórmula de Wikipedia

3 votos

Errr, ¿qué? ¿La curtosis se define como la asimetría? Eso no tiene sentido; son muy diferentes. No puedo acceder al documento, pero parece que algo está mal en algún lugar.

16voto

AdamSane Puntos 1825

Esta respuesta ha experimentado cambios significativos a medida que investigo la página de Wikipedia. He dejado las respuestas en gran medida como estaban pero he agregado a ellas, por lo que en la actualidad esto forma una progresión de entendimiento; las últimas partes son donde se encuentra la mejor información.

Respuesta corta: la página de Wikipedia (en el momento en que se publicó la pregunta) - y la fórmula del OP, que parece haber sido la misma - son simplemente incorrectas, por al menos tres razones diferentes. Dejaré mi discusión original (que asumió que el OP y Wikipedia lo tenían correcto) ya que explica algunos problemas. Una mejor discusión sigue más adelante. El consejo breve: simplemente olvídese de Doane. Si debe usarlo, use lo que dice Wikipedia ahora, alrededor de abril de 2013 (lo corregí; espero que alguien no lo vuelva a insertar más tarde).


Creo que esa fórmula debe referirse al curtosis en exceso; mi razón para eso es que modifica una fórmula para datos normales para tener en cuenta datos no normales, por lo que esperaría que reproduzca la no modificada en lo normal. Hace eso si se usa curtosis en exceso.

Esto, sin embargo, plantea el problema de que el término en el logaritmo puede volverse negativo con muestras grandes (de hecho, es posible que sea $\leq 0$ con tamaños de muestra bastante pequeños $n$). Sugeriría no usarlo con curtosis en exceso negativa (nunca lo usaría más allá de la unimodalidad de todos modos; una vez que las cosas se vuelvan multimodales, querrá aplicar la idea de curtosis en exceso a cada modo, no suavizarlos), aunque con casos suaves (curtosis en exceso apenas menor que 0) y tamaños de muestra moderados no será un gran problema.

También sugiero que en cualquier caso va a dar muy pocos contenedores en muestras grandes, incluso cuando funcione según lo previsto.

Puede encontrar este artículo (por el CV regular Rob Hyndman):

http://www.robjhyndman.com/papers/sturges.pdf

de cierto interés. Si el argumento de Sturges está equivocado, la fórmula de Doane tiene el mismo problema... como Rob señala claramente en el artículo.

En ese artículo (y en esta respuesta) hace una referencia a la regla de Freedman-Diaconis. En el artículo también señala el enfoque mencionado por Matt Wand (se refiere al documento de trabajo que no parece estar en línea, pero el artículo posterior está disponible si tiene acceso):

http://www.jstor.org/discover/10.2307/2684697

[Editar: en realidad, un enlace al documento de trabajo está en la página de citeseer]

Ese enfoque implica estimar aproximadamente determinadas funcionales para obtener anchos de contenedores aproximadamente óptimos (en términos de error cuadrático medio integrado, MISE) para estimar la densidad subyacente. Aunque funcionan bien y dan muchos más contenedores que Sturges o Doane en general, a veces todavía prefiero usar más contenedores, aunque generalmente es un primer intento muy bueno.

Francamente, no sé por qué el enfoque de Wand (o al menos la regla de Freedman-Diaconis) no es el predeterminado prácticamente en todas partes.

R al menos ofrece el cálculo de Freedman-Diaconis del número de contenedores:

 nclass.FD(rnorm(100))
[1] 11
 nclass.FD(runif(100))
[1] 6
 nclass.FD(rt(100,1))
[1] 71

Consulte ?nclass.FD

Personalmente, para mí son demasiado pocos contenedores en al menos los dos primeros casos; duplicaría ambos a pesar de que podría ser un poco más ruidoso de lo óptimo. A medida que $n$ se vuelve grande, creo que se desempeña muy bien en la mayoría de los casos.


Editar 2:

Decidí investigar el problema del sesgo vs curtosis al que @PeterFlom expresó con razón desconcierto.

Acabo de echar un vistazo al artículo de Doane al que wiso vinculó (lo había leído antes... pero eso fue hace casi 30 años) - no hace ninguna referencia a la curtosis en absoluto, solo al sesgo.

La fórmula actual de Doane es: $K_e = \log_2(1+\frac{g_1}{\sigma_{g_1}})$

donde $K_e$ es el número de contenedores agregados, $g_1$ es el sesgo del 3er momento. [Bueno, en realidad, Doane, siguiendo un uso bastante común en ese momento, usa $\sqrt{b_1}$ para el sesgo del 3er momento firmado (!); el origen de este abuso de la notación es bastante antiguo y no lo investigaré, excepto para decir que era bastante común y se entendía que incluía un signo, pero aún así a menudo llevaba a confusión - de hecho, parece que engañó a Doane y a los árbitros, o a un editor en el mismo artículo de Doane - afortunadamente aparece mucho menos ahora.]

Ahora, en lo normal, $\sigma_{g_1} = \sqrt{\frac{6(n-2)}{(n+1)(n+3)}} \approx \sqrt{\frac{6}{n}}$
(aunque esa aproximación es bastante pobre hasta que $n$ sea mucho mayor a 100; Doane utiliza la primera forma).

Sin embargo, parece que en el camino alguien ha intentado adaptarlo a la curtosis (en el momento en que escribo esto Wikipedia lo tiene en términos de curtosis, por ejemplo, y no creo que lo hayan inventado) - pero hay razones claras para creer que la fórmula es simplemente incorrecta (note que el error estándar utilizado es esa aproximación final para el error estándar del sesgo que di antes). Creo que he visto este uso de la curtosis en varios lugares distintos a Wikipedia, pero además de no estar en el artículo de Doane, no está presente en el artículo de Scott, ni en el artículo de Hyndman al que hice referencia, ni en el artículo de Wand. Sin embargo, parece que ha venido de alguna parte (es decir, estoy seguro de que no es original de Wikipedia), porque Doane no tiene la aproximación a $\sigma_{g_1}$. Parece que ha sido modificado varias veces antes de llegar allí; estaría interesado si alguien lo rastreó.

Parece que el argumento de Doane debería extenderse felizmente a la curtosis, pero el error estándar correcto tendría que ser utilizado.

De todas formas, dado que Doane se basa en Sturges y el argumento de Sturges parece estar defectuoso, tal vez todo el proceso está condenado. En cualquier caso, he editado la página de discusión de Histogram en wikipedia señalando el error.

---

Editar 3: Corregí la página de wikipedia (pero me tomé la libertad de tomar el valor absoluto del sesgo, de lo contrario, la fórmula original de Doane no se puede utilizar para distribuciones con sesgo a la izquierda tal como estaba - claramente para el número de contenedores el signo del sesgo no es importante). Estrictamente hablando, debería haber presentado la fórmula en su forma original (incorrecta), y luego explicado por qué no tiene sentido, pero creo que eso es problemático por varias razones - no menos importante porque la gente estará tentada a simplemente copiar la fórmula e ignorar una explicación. Creo que realmente cubre la intención original de Doane. En cualquier caso, es una mejora vasta sobre el sinsentido que estaba en el original. (Por favor, alguien que pueda acceder al artículo original, échele un vistazo y cómo se define $\sqrt{b_1}$ y verifique mis cambios en Wikipedia para asegurarse de que sean razonables - había al menos tres cosas mal - la curtosis, el error estándar y la base incorrecta de los logaritmos, además de un pequeño error de Doane).

0 votos

Muchas gracias. Por cierto, me sorprende ver un error en "The American Statistician". Nunca he visto la notación $\sqrt{b_1}$.

0 votos

Los errores pequeños de esa magnitud (la ausencia del valor absoluto) no ocurren tan raramente en las revistas - fuera de las estadísticas he visto errores más obvios (y más graves). En cuanto a la notación, en realidad es bastante común; por ejemplo 1, por ejemplo 2, por ejemplo 3 ... Podría señalar docenas.

0 votos

Hay un argumento bastante sólido para usar más contenedores que el número que minimiza MISE, si vas a mirar el histograma (en lugar de simplemente usarlo como un estimador de densidad tipo plug-in), que es que tu ojo es bastante bueno en hacer un suavizado adicional. (por ejemplo statmodeling.stat.columbia.edu/2009/10/23/variations_on_t)

3voto

acolyte Puntos 136

La medida de curtosis definida en términos del segundo y cuarto momentos nunca es negativa (ver), entonces el log(1+...)>0.

Esta cantidad está implementada en el comando kurtosis() de la librería R moments. Además, utilizando el comando hist() puedes especificar el número de intervalos de la siguiente manera

library(moments)

n <- 250
data <- rnorm(n)

# Fórmula de Sturges log_2(n) + 1
hist(data,breaks = "Sturges")

# Fórmula de Doane   
Doane <- 1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.))
hist(data,breaks = Doane)

La fórmula utilizada en el comando kurtosis() es simplemente mean((data - mean(data))^4)/mean((data - mean(data))^2)^2.

Ahora, si deseas investigar cuál es la "mejor" fórmula, entonces necesitarás un criterio. Considera que esto ha sido ampliamente discutido en la literatura estadística.

0 votos

Lo que no sé es cuál es la definición de la curtosis en la fórmula de Doane.

0 votos

Hay un enlace a la definición de curtosis en la entrada de Wikipedia que publicaste. Por cierto, es el mismo que yo publiqué. Se estima como el cuarto momento central de la muestra dividido por el cuadrado del segundo momento central de la muestra. Por favor, vea mi edición para el código.

1 votos

Una vez más, no sé si la tuya es la fórmula correcta de Doane, si miras el papel por ejemplo él usa log2 en lugar de log

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X