¿Cómo ajustar una distribución discreta para contar datos?


17

Tengo el siguiente histograma de datos de conteo. Y me gustaría ajustarle una distribución discreta. No estoy seguro de cómo debo hacer esto.ingrese la descripción de la imagen aquí

¿Debería superponer primero una distribución discreta, digamos Distribución binomial negativa, en el histograma para obtener los parámetros de la distribución discreta y luego ejecutar una prueba de Kolmogorov-Smirnov para verificar los valores p?

No estoy seguro de si este método es correcto o no.

¿Existe un método general para abordar un problema como este?

Esta es una tabla de frecuencia de los datos de conteo. En mi problema, solo me estoy centrando en recuentos distintos de cero.

  Counts:     1    2    3    4    5    6    7    9   10 
 Frequency: 3875 2454  921  192   37   11    1    1    2 

ACTUALIZACIÓN: Me gustaría preguntar: utilicé la función fitdistr en R para obtener los parámetros para ajustar los datos.

fitdistr(abc[abc != 0], "Poisson")
     lambda  
  1.68147852 
 (0.01497921)

Luego trazo la función de masa de probabilidad de la distribución de Poisson en la parte superior del histograma. ingrese la descripción de la imagen aquí

Sin embargo, parece que la distribución de Poisson no puede modelar los datos de conteo. ¿Hay algo que pueda hacer?


3
Un método general es utilizar la máxima probabilidad de adaptarse a una distribución candidata. Lo que quieres decir con superponer una distribución para obtener los parámetros no está claro, pero si te refieres a adivinar los valores de los parámetros hasta obtener un buen ajuste, ese es un método pésimo. Kolmogorov-Smirnov no es útil aquí. Necesita un software decente que le brinde resultados inferenciales, por lo que debe indicar su software de elección para que las personas que lo utilizan puedan intentar ayudarlo. Su histograma no está claro, pero si hay huecos, entonces es probable que ninguna distribución se ajuste bien.
Nick Cox

3
Si bien el uso de una prueba KS de esa manera es un método pésimo (y, en cualquier caso, la prueba KS no es para distribuciones discretas), sería posible estimar parámetros minimizando la estadística KS sobre todos los valores de parámetros posibles; pero si vas por ese camino (optimizando alguna bondad de ajuste), el chi-cuadrado mínimo sería el enfoque más típico. Como Nick Cox sugiere, ML sería lo más obvio, casi con seguridad más eficiente, más fácil de obtener errores estándar y más fácilmente aceptado por otros. (Hay otras posibilidades, como el método de los momentos, pero ML es lo principal.)
Glen_b -Reinstate a Monica el

Estoy usando R. Cuando dice estimar MLE, ¿hay algún algoritmo que recomiende para el trabajo? Y después de encontrar el ML, ¿qué debo hacer a continuación?
user1769197

Comenzaría aquí ?MASS::fitdistr, ya que está en su distribución R (vea el ejemplo final en la parte inferior; vea rnegbin para obtener más información sobre esa parametrización del binomio negativo). .... " Y después de encontrar el NM, ¿qué debo hacer a continuación? ", Bueno, en ese momento tiene estimaciones de parámetros y errores estándar. Más allá de eso, ¿qué quieres lograr? No puedo adivinar.
Glen_b -Reinstate a Monica el

Se me ocurre que puede haber estado tratando de preguntar "¿cómo evalúo el ajuste de mi modelo?". Si ese es el caso, ¿podría actualizar su pregunta para reflejar eso?
Glen_b -Reinstale a Monica el

Respuestas:


17

Métodos para ajustar distribuciones discretas

Hay tres métodos principales * utilizados para ajustar (estimar los parámetros de) distribuciones discretas.

1) Máxima probabilidad

Esto encuentra los valores de los parámetros que brindan la mejor oportunidad de suministrar su muestra (dados los otros supuestos, como independencia, parámetros constantes, etc.)

2) Método de momentos

Esto encuentra los valores de los parámetros que hacen que los primeros momentos de población coincidan con sus momentos de muestra. A menudo es bastante fácil de hacer, y en muchos casos produce estimadores bastante razonables. A veces también se usa para proporcionar valores iniciales a las rutinas de ML.

3) Chi-cuadrado mínimo

Esto minimiza la bondad de chi-cuadrado del estadístico de ajuste sobre la distribución discreta, aunque a veces con conjuntos de datos más grandes, las categorías finales pueden combinarse por conveniencia. A menudo funciona bastante bien, e incluso podría decirse que tiene algunas ventajas sobre el NM en situaciones particulares, pero en general debe repetirse a la convergencia, en cuyo caso la mayoría de las personas tienden a preferir el NM.

Los dos primeros métodos también se usan para distribuciones continuas; el tercero generalmente no se usa en ese caso.

Estos de ninguna manera comprenden una lista exhaustiva, y sería bastante posible estimar los parámetros minimizando la estadística KS, por ejemplo, e incluso (si ajusta la discreción), obtener una región de consonancia conjunta , si fuera tan inclinado Como está trabajando en R, la estimación de ML es bastante fácil de lograr para el binomio negativo. Si su muestra estuviera dentro x, es tan simple como library(MASS);fitdistr (x,"negative binomial"):

> library(MASS) 
> x <- rnegbin(100,7,3)
> fitdistr (x,"negative binomial")
     size         mu    
  3.6200839   6.3701156 
 (0.8033929) (0.4192836)

Esas son las estimaciones de parámetros y sus errores estándar (asintóticos).

En el caso de la distribución de Poisson, MLE y MoM estiman el parámetro de Poisson en la media muestral.

Si desea ver ejemplos, debe publicar algunos recuentos reales. Tenga en cuenta que su histograma se ha realizado con los contenedores seleccionados para que las categorías 0 y 1 se combinen y no tengamos los recuentos sin procesar.

Por lo que puedo adivinar, sus datos son aproximadamente los siguientes:

    Count:  0&1   2   3   4   5   6  >6    
Frequency:  311 197  74  15   3   1   0

Pero los números grandes serán inciertos (depende en gran medida de la precisión con que los recuentos bajos están representados por los recuentos de píxeles de sus alturas de barra) y podría ser un múltiplo de esos números, como el doble de esos números (los recuentos sin procesar afectan los errores estándar, por lo que importa si se trata de esos valores o el doble de grande)

La combinación de los dos primeros grupos hace que sea un poco incómodo (es posible hacerlo, pero menos sencillo si combina algunas categorías. Hay mucha información en esos dos primeros grupos, por lo que es mejor no dejar que el histograma predeterminado los agrupe) )


* Por supuesto, son posibles otros métodos de ajuste de distribuciones discretas (uno podría igualar cuantiles o minimizar otras estadísticas de bondad de ajuste, por ejemplo). Los que menciono parecen ser los más comunes.


+1, buena información. Solo por curiosidad, ¿por qué a menudo parece usar 1), en lugar de la numeración de marcas que admite CV (es decir, 1.--que conduce a la sangría)?
gung - Restablece a Monica

1
@gung Principalmente, no pienso en ello: prefiero que mis listas se vean como las escribo; pero cuando lo pienso, encuentro la edición de Markdown de los números que escribo a lo que cree que deberían ser muy molestos (si escribí "36", realmente no quise decir "1") ... así que cuando se me ocurre usar "1". en lugar de "1)", a menudo termino escribiendo "1 \". explícitamente para evitar que lo reconozca y haga cosas que no tenía la intención. Me sentí tan en sintonía con este comportamiento después de 5 años de reddit que ni siquiera pienso en ello: terminaría interfiriendo automáticamente con él por la fuerza del hábito.
Glen_b -Reinstale a Monica el

1
@gung Si la sangría fuera mucho más pequeña, probablemente estaría dispuesto a soportar el peligro de renumeración y usarlo. Tal como están las cosas, por lo general me resulta molesto cuando lo veo. Pero en este caso particular, estaba buscando hacer que se parecieran más a los subtítulos, por lo que probablemente lo habría evitado incluso si el comportamiento no me hubiera desanimado. (Por otro lado, en las ocasiones en que otras personas han decidido editar mis listas para que haga la sangría, generalmente las dejo para que se complazcan. Si quieren que se vea de cierta manera, pueden hacerlo siempre que no lo haga). altere el significado.)
Glen_b -Reinstale a Mónica el

Intentaré contenerme ;-).
gung - Restablece a Monica

2

En una edición, proporcionó algunos datos y agregó una nueva pregunta:

"Esta es una tabla de frecuencia de los datos de conteo. En mi problema, solo me estoy enfocando en conteos que no son cero.

   Counts:     1    2    3    4    5    6    7    9   10 
Frequency:  3875 2454  921  192   37   11    1    1    2 

¿Puede alguien darme un ejemplo de cómo realizaría la prueba de bondad de ajuste de chi-cuadrado aquí? "

Esto lleva a más comentarios:

  1. Tener ceros pero querer ignorarlos puede tener sentido, pero en general las personas estadísticas y temáticas querrían ver una buena razón de por qué.

  2. Si elige ignorar los ceros, se está colocando en un territorio difícil, ya que no puede iniciar rutinas, por ejemplo, para Poisson o binomio negativo si omite los ceros. Bueno, puedes, pero las respuestas estarían equivocadas. Necesita funciones o comandos de propósito especial para distribuciones como el Poisson truncado cero o el binomio negativo truncado cero. Eso es un desafío y necesita una lectura dedicada para tener claro lo que está haciendo.

  3. Preguntar cómo hacer una prueba de chi-cuadrado me sugiere que realmente no has entendido lo que dije muy brevemente y @Glen_b dijo con mucho más detalle (y, en mi opinión, muy claramente). Partiendo eso en dos:

    • No puede haber una prueba de chi-cuadrado sin las frecuencias esperadas y no puede haber frecuencias esperadas sin estimaciones de parámetros. Es posible que esté más familiarizado con las rutinas de prueba de chi-cuadrado en las que se prueba la independencia de filas y columnas en una tabla de dos vías. Aunque esa es la prueba de chi-cuadrado que más se cumple en los cursos introductorios, en realidad es muy inusual entre las pruebas de chi-cuadrado en general, ya que el software habitual en efecto hace la estimación de parámetros para usted y, por lo tanto, obtiene las frecuencias esperadas. Más allá de eso, en la mayoría de los problemas más complicados, como el suyo, primero debe obtener las estimaciones de los parámetros.

    • Una prueba de chi-cuadrado no está mal, pero si estima los parámetros con la máxima probabilidad, es irrelevante ya que la rutina de ajuste le proporciona estimaciones y errores estándar y permite las pruebas a su paso. @Glen_b ya dio un ejemplo en su respuesta.

Una cuestión secundaria es que sería más claro ajustar sus histogramas para respetar la discreción de la variable y mostrar las probabilidades, no las densidades. Las brechas aparentes son solo artefactos de la elección predeterminada del contenedor que no respeta la discreción de la variable.

ACTUALIZACIÓN: La pregunta complementaria sobre una prueba de chi-cuadrado ahora se ha eliminado. Por el momento, estoy dejando que el # 3 anterior se mantenga, en caso de que alguien más siga el mismo camino de querer una prueba de chi-cuadrado.


Tengo que ignorar los ceros, porque estoy tratando de modelar conteos activos. Recuentos = 0 se conoce como recuentos inactivos.
user1769197

Esa es una elección sustantiva. Tenga en cuenta que en muchos campos hay los llamados modelos de dos partes, en los que modela (en sus términos) activo versus inactivo y luego qué tan activo.
Nick Cox

Traté de ajustar los histogramas haciendo "plot (table (abc), type =" h ")". Pero no estoy seguro de cómo puedo hacer que muestre probabilidades
usuario1769197

No uso R, pero puedes obtener consejos sobre eso. Es posible que deba preguntar por separado.
Nick Cox
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.