¿Cuál es la mejor visualización para tablas de contingencia?


22

¿Cuál es la mejor gráfica, desde el punto de vista estadístico, para mostrar una tabla de contingencia , que generalmente se analiza mediante la prueba de chi-cuadrado? ¿Es una gráfica de barras esquivada, una gráfica de barras apiladas, un mapa de calor, una gráfica de contorno, una gráfica de dispersión jitterred, una gráfica de varias líneas o algo más? ¿Debería uno mostrar valores absolutos o porcentajes?

Editar: O como sugiere @forecaster en los comentarios, la tabla de números es en sí misma una trama simple y debería ser suficiente.


44
A veces, la tabla de datos es el mejor método de visualización frente a las parcelas. Las tablas de contingencia son un ejemplo clásico de eso.
pronosticador

1
Punto importante, aunque no estoy de acuerdo en que siempre sea la mejor opción.
rnso

1
Por eso dije "a veces". Yo recomendaría, Stephen Few's Muéstrame los números que tiene una sección completa dedicada a las tablas.
pronosticador

1
bueno, el mejor método depende de lo que quieras mostrar, qué tan grande es la tabla, ¡sin algunos detalles esto es demasiado amplio!
kjetil b halvorsen

3
La mayoría de stats.stackexchange.com/questions/56322/… parece pertinente aquí.
Nick Cox

Respuestas:


9

Aquí no habrá una solución única para todos. Si tiene una tabla muy simple (por ejemplo, 2×2 ), simplemente presentar la tabla probablemente sea lo mejor. Si desea una figura real, las parcelas de mosaico (como sugiere @xan) son probablemente un buen lugar para comenzar. Hay algunas otras opciones que son análogas a las gráficas de mosaico, incluidas las gráficas de tamiz, las gráficas de asociación y las gráficas de presión dinámica (vea mi pregunta aquí: Alternativa a las gráficas de tamiz / mosaico para tablas de contingencia ); El libro de Michael Friendly, Visualizando datos categóricos , sería un buen recurso (basado en SAS) para este tema y el paquete vcd es un buen recurso para implementar esas ideas en R.

Sin embargo, como las tablas tienen un mayor número de filas y columnas, en mi opinión, se vuelven más difíciles de usar. Un tipo diferente de opción de visualización es realizar / trazar un análisis de correspondencia . Un análisis de correspondencia es análogo a ejecutar un análisis de componentes principales tanto en las filas como en las columnas de la tabla de contingencia. Luego ambos se trazan junto con un biplot. Aquí hay un ejemplo basado en R que usa los datos de la respuesta de @ xan:

library(ca)
tab = as.table(rbind(c(28, 4,  0, 56),
                     c(38, 5,  9, 10),
                     c( 6, 6, 14, 13) ))
names(dimnames(tab)) = c("activity", "period")
rownames(tab)        = c("feed", "social", "travel")
colnames(tab)        = c("morning", "noon", "afternoon", "evening")
tab
#         period
# activity morning noon afternoon evening
#   feed        28    4         0      56
#   social      38    5         9      10
#   travel       6    6        14      13
plot(ca(tab))

ingrese la descripción de la imagen aquí

Para interpretar esta gráfica, cuanto más cercanos son los dos puntos del mismo tipo, más similares son esos dos perfiles de fila / columna. Y cuanto más cerca estén dos puntos de diferentes tipos, mayor será su masa de probabilidad en la celda que representa su intersección.

En R está el paquete ca ; esta viñeta pdf ) también puede ser útil.


Muy útil. Aparentemente falla con valores pequeños, por ejemplo: tt = with (mtcars, table (factor (gear), factor (vs))); parcela (ca (tt)); Error en x [, dim]: subíndice fuera de límites
rnso

Esto se debe a que uno de los factores (es decir, factor(vs)) tiene solo dos niveles; necesitas al menos tres. Tratar ttt = with(mtcars, table(factor(gear), factor(cyl))); plot(ca(ttt)).
gung - Restablece a Monica

Muy buena visualización de las relaciones entre diferentes factores.
rnso

O puede mostrar la tabla después de reordenar filas y columnas en el orden de las puntuaciones del análisis de correspondencia.
kjetil b halvorsen

Idea interesante, @kjetilbhalvorsen. No estoy seguro de cómo obtener eso del caobjeto, así que lo codifiqué desde cero. A menos que haya cometido un error, usted reordena las filas c(1,3,2)y las columnas c(4,1,3,2). Habiendo hecho eso, no estoy seguro de lo que se supone que debo ver aquí. ¿Qué tienes en mente?
gung - Restablece a Monica

11

Diferentes visuales serán mejores para resaltar diferentes características, pero las tramas de mosaico funcionan bien para una vista general (verificando si algo destaca). Quizás eso es lo que quisiste decir con trama de barra esquivada. Como la mayoría de las opciones, no son simétricas porque representan mejor las frecuencias relativas en una dimensión que en la otra. Una buena característica es que las frecuencias marginales también están representadas.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


Esto es bueno. Tanto los números como las proporciones están representados. Los números también se pueden poner en la trama. Si se ordena el orden del elemento del eje x, se verá aún mejor. Por esquivar me refería a un diagrama de barras común con categorías una al lado de la otra, en lugar de apilarnos unos sobre otros (ver position = 'dodge' en esta página: r-bloggers.com/using-r-barplot-with-ggplot2 ).
rnso

1
+1 Este diseño a menudo funciona muy bien para datos relativamente simples ; Por el contrario, he descubierto que también es difícil pensar rápidamente en datos más complicados, a pesar de que la literatura pone mucho énfasis en su extensibilidad a tablas de contingencia de dimensión arbitraria. Aún así, ningún diseño funciona bien en tales circunstancias. Un pequeño punto con este ejemplo es que parece haber aceptado el orden alfabético predeterminado "tarde" ... "mediodía" ofrecido por su programa, mientras que preservar el orden de tiempo parece una opción más natural.
Nick Cox

8

Estoy de acuerdo en que la "mejor" trama no existe independientemente del conjunto de datos, los lectores y el propósito. Para dos variables medidas, los gráficos de dispersión son posiblemente el diseño que deja a todos los demás a su paso, excepto para fines específicos, pero no existe un líder del mercado que sea evidente para los datos categóricos.

Mi objetivo aquí es solo mencionar un método simple, a menudo re-descubierto o reinventado, pero que a menudo también se pasa por alto incluso en monografías o libros de texto que cubren gráficos estadísticos.

Ejemplo primero, que cubre los mismos datos publicados por xan:

ingrese la descripción de la imagen aquí

Si se desea un nombre, como suele serlo , este es un gráfico de barras de dos vías (en este caso). No catalogaré otros términos aquí, excepto ese gráfico de barras múltiple es una alternativa común con un sabor similar. (Mi pequeña objeción al "gráfico de barras múltiple" es que "múltiple" no descarta los gráficos de barras apiladas o de lado a lado muy comunes, mientras que "twoway" para mí implica más claramente un diseño de fila y columna, aunque a su vez puede tomar ejemplos para aclararlo).

Las ventajas y desventajas de este tipo de trama también son simples, pero explicaré algunas. Como me gusta este diseño (que se remonta al menos a la década de 1930), otros pueden querer agregar críticas más agudas.

+1. La idea se entiende fácilmente , incluso por grupos no técnicos. Las alturas de barra o longitudes de barra codifican frecuencias en este ejemplo. En otros ejemplos, podrían codificar porcentajes calculados de la forma que desee, residuos, etc.

+2. La estructura de filas y columnas coincide con la de una tabla . También puede agregar valores numéricos. Cantidades muy pequeñas e incluso ceros implícitos son claramente evidentes, lo que no siempre es el caso con otros diseños (por ejemplo, gráficos de barras apiladas, diagramas de mosaico). El etiquetado de filas y columnas suele ser más eficiente que agregar una clave o leyenda, con el "ida y vuelta" mental que eso requiere. Por lo tanto, este diseño hibrida ideas de gráficos y tablas, lo que aparentemente molesta a algunos lectores; Por el contrario, argumentaría que las fuertes distinciones entre Figuras y Tablas son solo problemas históricos, obsoletos ahora que los investigadores pueden preparar sus propios documentos y no tienen que depender de diseñadores, compositores e impresores.

+3. Las extensiones a diseños de tres vías y superiores son, en principio, fáciles . Coloque dos o más variables como variables compuestas en uno o ambos ejes, o proporcione una matriz de tales gráficos. Naturalmente, cuanto más complicado es el diseño, más complicada es la interpretación.

+4. El diseño claramente permite variables ordinales en cualquier eje. El orden puede expresarse (p. Ej.) Mediante el sombreado apropiado, así como el orden de las categorías en ese eje. El orden de categoría en los ejes se puede determinar por su significado, o mejor determinado por las frecuencias; El orden alfabético según las etiquetas de texto puede ser un valor predeterminado, pero nunca debe ser la única opción considerada.

-1. Al ser general en el diseño, la trama puede ser menos eficiente al mostrar ciertos tipos de relaciones . En particular, una trama de mosaico puede hacer que las salidas desde la independencia sean muy claras. Por el contrario, cuando las relaciones entre las variables categóricas son complicadas o poco claras, normalmente, ningún gráfico es bueno para mostrar más que ese hecho débil.

-2. De alguna manera, el diseño es ineficiente en el uso del espacio al dejar espacio para cada combinación cruzada, independientemente de si ocurre o con qué frecuencia. Este es el vicio del mismo principio considerado como una virtud. El diseño particular sobre los espacios clasifica por igual, independientemente de su frecuencia; sacrificar eso a menudo sacrifica etiquetas marginales legibles, lo que valoro mucho. En este ejemplo, las etiquetas de texto son muy cortas, pero eso está lejos de ser típico.

Nota: los datos de xan parecen estar inventados, por lo que no intentaré una interpretación más de lo que se intenta en otras respuestas. Pero algo de sabiduría casera merece la última palabra aquí: el mejor diseño para usted es el que mejor transmite a usted y a sus lectores la estructura de algunos datos reales que le interesan.

Otros ejemplos incluyen

¿Cómo puedes visualizar la relación entre 3 variables categóricas?

Gráfico para la relación entre dos variables ordinales


1
+1 para otra opción viable y una gran discusión. Permítanme hacer una pregunta sobre gráficos de barras bidireccionales / señalar otro posible inconveniente: hay una 'caja' sin marcar, pero claramente perceptible dentro de la cual se pueden trazar las barras. Cuando la barra se acerca a la parte superior de la caja, alcanza el 100%. ¿Cómo se determina ese valor? (NB, las tablas de contingencia siempre son multinomiales en cierto sentido, con un total conocido). Hacer la suma de las sumas de fila o de columna promoverá diferentes inferencias perceptivas. (No parece que se use la suma de la tabla, ya que muchas barras serían demasiado pequeñas para diferenciarlas.)
Gung - Restablece a Monica

1
@gung Gracias. Puedo comentar sobre mi propio programa Stata, usado aquí y en mis ejemplos en otras partes del CV. El programa es tabplotde SSC. La altura de las barras es necesariamente una fracción de la altura de la barra más alta o más larga; el espacio disponible para eso está determinado por cuántas filas se muestran. El usuario puede anular el tamaño de espacio predeterminado, pero luego se arriesga a que las barras se toquen o se oculten. Si las barras pueden ser tanto negativas como positivas, las cosas no son más fáciles. Me imagino que la misma restricción muerde con cualquier otro programa. En resumen, las barras que no se tocan implican espacios en blanco.
Nick Cox

8

Para complementar las respuestas de @ gung y @ xan, aquí hay un ejemplo de mosaico y parcelas de asociación que se utilizan vcden R.

> tab
        period
activity morning noon afternoon evening
  feed        28    4         0      56
  social      38    5         9      10
  travel       6    6        14      13

Para obtener las parcelas:

require(vcd)
mosaic(tab, shade=T, legend=T)
assoc(tab, shade=T, legend=T)

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Ambos presentan intuitivamente desviaciones de las frecuencias esperadas ... El valor predeterminado es el modelo de independencia mutua , pero se puede cambiar (por ejemplo, a independencia conjunta si hay una variable de respuesta clara) a través del expectedargumento.

Ver también:

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.