La fórmula de Doane para la agrupación de histogramas


9

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

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

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

¿Dónde nestá el tamaño de los datos?

El problema es cuando la curtosis es negativa y n >> 1porque el argumento de la se logvuelve negativo.

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


1
¿Sabes si esa fórmula usa curtosis o exceso de curtosis (es decir, Normal dist tiene 4 o 0)?
Peter Flom - Restablece a Monica

@PeterFlom: en el documento original ( amstat.tandfonline.com/doi/pdf/10.1080/00031305.1976.10479172 ) la curtosis se define como la inclinación, pero no soy experto. El documento original también es bastante diferente de la fórmula de Wikipedia
Ruggero Turra

1
Errr, que? La curtosis se define como la asimetría? Eso no tiene sentido; ellos son muy diferentes. No puedo acceder al periódico, pero parece que algo está mal en alguna parte.
Peter Flom - Restablece a Monica

@PeterFlom La distribución normal debería tener curtosis de 3 no 4.
Glen_b -Reinstalar Monica el

@PeterFlom He estado investigando el problema de la asimetría frente a la curtosis; consulte "Editar 2" en mi respuesta.
Glen_b -Reinstale a Monica el

Respuestas:


11

Esta respuesta ha sufrido cambios significativos mientras investigo la página de wikipedia. Dejé las respuestas en gran medida tal como estaban, pero las agregué, por lo que en la actualidad esto forma una progresión de comprensión; Las últimas partes son donde está la mejor información.

Respuesta corta: la página de wikipedia, y la fórmula del OP, que parece haber sido la misma, simplemente están equivocadas, al menos por tres razones diferentes. Dejaré mi discusión original (que suponía que el OP y wikipedia tenían razón) ya que eso explica algunos problemas. Una mejor discusión sigue más adelante. El consejo corto: simplemente olvida a Doane. Si debe usarlo, use lo que dice Wikipedia ahora (lo arreglé).


Creo que la fórmula debe referirse al exceso de curtosis; 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 el no modificado en la normalidad. Lo hace si usa un exceso de curtosis.

Sin embargo, eso plantea el problema de que el término en el registro puede ser negativo con muestras grandes (de hecho, es posible ser en bastante pequeño ). Sugeriría no usarlo con exceso de curtosis negativa (de todos modos, nunca lo usaría más allá de la unimodalidad; una vez que las cosas se vuelven multimodales, desea aplicar la idea de exceso de curtosis a cada modo, ¡no suavizarlas!), Aunque con casos leves ( un exceso de curtosis apenas inferior a 0) y tamaños de muestra modestos no será un gran problema.n0n

También sugeriría que, en cualquier caso, dará muy pocos contenedores en tamaños de muestra grandes, incluso cuando funciona según lo previsto.

Puede encontrar este documento (por el CVer habitual 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 documento.

En ese documento (y en esta respuesta ) asiente con la cabeza a la regla Freedman-Diaconis. En el documento, 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 documento posterior está disponible si tiene acceso):

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

[Editar: en realidad hay un enlace al documento de trabajo en la página de citas ]

Ese enfoque consiste en estimar aproximadamente funciones particulares para obtener aproximadamente el ancho óptimo (en términos de error cuadrático medio integrado, MISE) para estimar la densidad subyacente. Si bien estos 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 muy buen primer intento.

Francamente, no sé por qué el enfoque de Wand (o al menos la regla de Fredman Diaconis) no es un defecto en casi todas partes.

R al menos ofrece el cálculo 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

Ver ?nclass.FD

Personalmente, para mí eso es muy pocos contenedores en los primeros dos casos al menos; Duplicaría ambos a pesar del hecho de que podría ser un poco más ruidoso que óptimo. A medida que n se hace grande, creo que lo hace muy bien en la mayoría de los casos.


Edición 2:

Decidí investigar el problema de asimetría frente a curtosis en el que @PeterFlom expresó correctamente su perplejidad.

Acabo de echar un vistazo al papel de Doane vinculado (lo había leído antes ... pero eso fue hace casi 30 años), no hace referencia a la curtosis en absoluto, solo a la asimetría.

La fórmula real de Doane es:Ke=log2(1+g1σg1)

donde es el número de bins agregados, es el sesgo del 3er momento. [Bueno, en realidad, Doane, después de un uso bastante común del tiempo, usa para la asimetría firmada (!) Del 3er momento (el origen de este abuso de notación particularmente poco edificante es bastante antiguo y no voy a buscarlo , excepto para decir que afortunadamente aparece ahora con mucha menos frecuencia).]g 1 Keg1b1

Ahora en la normalidad, (aunque esa aproximación es bastante pobre hasta que n es más de 100; Doane usa la primera forma)σg1=6(n2)(n+1)(n+3)6n

Sin embargo, parece que en el camino alguien ha intentado adaptarlo a la curtosis (en el momento en que escribo esta Wikipedia lo tiene en términos de curtosis , por ejemplo, y no creo que lo hayan inventado), pero hay una razón clara creer que la fórmula es simplemente incorrecta (tenga en cuenta que el error estándar utilizado es esa aproximación final para el sesgo de sesgo que di anteriormente). Creo que he visto este uso de la curtosis en varios lugares además de Wikipedia, pero además de no estar en el papel de Doane, no está presente en el papel de Scott, ni en el papel de Hyndman al que apunto, ni en el papel de Wand. Sin embargo, parece haber venido de alguna parte (es decir, estoy seguro de que no es original de Wikipedia), porque Doane no tiene la aproximación aσg1. Parece que se ha jugado varias veces antes de que terminara allí; Me interesaría si alguien lo rastreara.

Me parece que el argumento de Doane debería extenderse felizmente a la curtosis, pero tendría que usarse el error estándar correcto .

Sin embargo, dado que Doane confía en Sturges y el argumento de Sturges parece ser defectuoso, tal vez toda la empresa esté condenada. En cualquier caso, he editado la página de discusión del histograma en wikipedia señalando el error.

---

Edición 3: he corregido la página de wikipedia (pero me tomé la libertad de tomar el valor absoluto de la asimetría; de lo contrario, la fórmula original de Doane no se puede usar para distribuciones sesgadas a la izquierda tal como estaba, claramente por el número de contenedores, el signo de la asimetría es irrelevante). Estrictamente hablando, debería haber presentado la fórmula en su forma original (incorrecta), y luego explicar por qué no tiene sentido, pero creo que es problemático por varias razones, entre otras cosas, que la gente se sentirá tentada a copiar la fórmula e ignorar un explicación. Creo que en realidad cubre la intención original de Doane. En cualquier caso, es una gran mejora sobre las tonterías que había en el original. (Por favor, cualquiera que pueda acceder al documento original, échale un vistazo y cómob1 está definido y verifique mis cambios en wikipedia para asegurarme de que sea razonable: había al menos tres cosas incorrectas: la curtosis, el error estándar y la base incorrecta de registros, más el pequeño error de Doane).


muchas gracias. Por cierto, me sorprende ver tal error en "The American Statistician". Nunca he visto la notación . b1
Ruggero Turra

Pequeños errores de esa escala (la ausencia del valor absoluto) ocurren con poca frecuencia en las revistas, estadísticas externas que he visto mucho más obvias (y más atroces). En cuanto a la notación, en realidad es bastante común; eg1 , eg2 , eg3 ... podría señalar docenas
Glen_b -Reinstalar a Mónica el

2

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

Esta cantidad se implementa en el comando kurtosis()de la biblioteca R moments. Además, con el comando hist()puede especificar el número de descansos de la siguiente manera

library(moments)

n <- 250
data <- rnorm(n)

# Sturges formula log_2(n) + 1
hist(data,breaks = "Sturges")

# Doane's formula    
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 desea investigar cuál es la `` mejor '' fórmula, necesitará un criterio. Considere que esto se ha discutido ampliamente en la literatura estadística.


lo que no sé es cuál es la definición de curtosis en la fórmula de Doane
Ruggero Turra

Hay un enlace a la definición de curtosis en la entrada de Wikipedia que publicaste. Incidentalmente, es el mismo que 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.
Miles Davis el

1
de nuevo, no sé si la suya es la fórmula correcta de Doane, si nos fijamos en el papel, por ejemplo, él usa log2 en lugar de log
Ruggero Turra

Bueno, esa es la "fórmula de Doane" que publicaste ¬¬ . De todos modos, esto se puede corregir trivialmente usando en log(n,2)lugar de log(n). PERO, la entrada de wikipedia, así como otras fuentes indican que debería ser log.
Miles Davis el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.