8 votos

Bondad de ajuste prueba de tablas de contingencia escasa con alta dimensionalidad

Tengo un vector de tamaño 1x3500, que puede ser visto como la 'distribución'. Es simplemente una tabla de conteo a través de 3500 grupos (es decir, una tabla de contingencia). También tengo $N$ otros vectores del mismo tamaño. Quiero comparar cada uno de estos vectores a la 'distribución' y ver si existe una diferencia estadísticamente significativa desviación.

El enfoque tradicional sería el uso de un $\chi^2$-prueba. Sin embargo, algunos de estos cuadros son muy escasos (es decir, tiene muchas células sin ningún tipo de cuenta), lo cual constituiría una violación de los supuestos detrás de la prueba.

Para aquellos interesados, el contexto es poner a prueba algunas hipótesis acerca de mis datos, la cual se distribuye en el condado de wise a través de los estados unidos (~ 3500 condados). No puedo reducir la dimensionalidad que arruinaría el análisis.

¿Cuáles son algunos métodos que son apropiados para hacer una bondad de ajuste prueba de tales datos de alta dimensión, con un alto grado de dispersión?

Editar: Todo lo demás siendo igual, yo preferiría una solución que se puede implementar fácilmente. Python (o quizás R) sería genial.

3voto

amazingjxq Puntos 931

Supongo que se desea probar si el número de ocurrencias es independiente de la del condado. En este caso, se puede tratar el siguiente:

En primer lugar, transformar su $1\times 3500$ tablas de a $2\times 3500$ tablas (como en este post). Deje $T$ ser una de las $2\times 3500$ de las mesas observadas. Una prueba de la independencia, que es independiente del tamaño de la muestra es la prueba exacta de Fisher. No sé cómo se familiarice con el marco de este examen, pero a grandes rasgos se requiere para estimar la probabilidad de todos los $2\times 3500$ que tienen la misma fila y columna de sumas como $T$, pero con un mayor $\chi^2$-estadísticas. Para dos de remo tablas, existen algoritmos eficientes que se aproximan a esta $p$-valor (ver Teorema 4 en este documento). Espero que ayude.

EDIT: Ya que no estaba claro que mi respuesta se describe una aproximados método en lugar de un exacto, voy a extender mi anwer.

De nuevo, deje $T$ ser uno de sus observado tablas y deje $n$ ser el tamaño de su muestra (es decir, la suma de todas sus entradas). Deje $\theta\in[0,1]^{2\times 3500}$ ser el logaritmo de la probabilidad de los estimadores para la independencia modelo y definir una tabla de $v\in\mathbb{N}^{2\times 3500}$ $\chi^2$ estadísticas como

$$\chi^2(v)=\sum_{i=1}^2\sum_{j=1}^{3500}\frac{(v_{ij}-n\cdot\theta_{ij})^2}{n\cdot\theta_{ij}}.$$

Deje $\mathcal{F}(T)\subset\mathbb{N}^{2\times 3500}$ ser el conjunto de todas las tablas que tienen las mismas filas y columna de sumas de $T$, entonces el condicional $p$-valor de la prueba exacta de Fisher es

$$\frac{\sum_{v\in\mathcal{F}(T) \chi^2(v)\ge\chi^2(T)} \frac{1}{\prod_{i=1}^2\prod_{j=1}^{3500}v_{ij}!} }{\sum_{v\in\mathcal{F}} \frac{1}{\prod_{i=1}^2\prod_{j=1}^{3500}v_{ij}!}}$$

Por supuesto, este valor es imposible calcular exactamente, ya que el tamaño de $\mathcal{F}(T)$ es descomunal. Sin embargo, se puede aproximar de manera eficiente con la siguiente versión adaptada del algoritmo en este documento. Para una tabla de $T$, haga lo siguiente

  1. Inicializar con $i=0$, $w=T$
  2. $i=i+1$
  3. obtener otra tabla $w'$ $\mathcal{F}(T)$ mediante la aplicación de un paso del algoritmo en este trabajo (Sección 4)
  4. Con una probabilidad de $\min\left\{1,\frac{\prod_{ij}w_{ij}!}{\prod_{ij}w'_{ij}!}\right\}$,$w:=w'$, de lo contrario vamos a $w$ virgen (que es el de Metropolis-Hastings rechazo a paso)
  5. Si $\chi^2(w)\ge\chi^2(T)$,$p_i:=1$, de lo contrario $p_i=0$
  6. Si $|\frac{1}{i-1}\sum_{k=1}^{i-1}p_k-\frac{1}{i}\sum_{k=1}^{i}p_k|>tol$, GOTO (2)
  7. Regresar $\frac{1}{i}\sum_{k=1}^ip_k$

El resultado es una estimación de la condicional $p$-valor.

3voto

Ruben Rutten Puntos 88

En lugar de una prueba exacta que usted puede hacer una prueba de Chi-cuadrado basado en simulaciones de Monte Carlo. Usted haría N 2x3500 tablas que consiste en su "distribución conocida vector" y cada uno de sus N otros vectores, y ejecutar las N pruebas.

Para cada prueba, esencialmente, la prueba es la simulación de un montón de mesas de acuerdo a la hipótesis nula de que las dos distribuciones son iguales, y luego comparar las observadas tabla con la simulación de las tablas.

El papel del método se puede encontrar aquí: http://www.jstor.org/stable/2984263?seq=1#page_scan_tab_contents

Si utiliza R, la información sobre el código para hacer esto está disponible aquí: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/chisq.test.html

Se establecería simulate.p.value = TRUE

La limitación es que usted no puede tener filas o columnas compuestas de solo 0 en la tabla que usted alimenta a la función. También, a menos que si usted utiliza una semilla, cada vez que se ejecuta la simulación de diferentes p-valores.

0voto

qmega Puntos 1150

Hmm... no se usa algo como el coeficiente de Gini (o sus métodos relacionados). Desde mi comprensión se desarrollan exactamente este tipo de situación

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