24 votos

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

Tengo un conjunto de datos con tres variables categóricas y quiero visualizar la relación entre las tres en un gráfico. ¿Alguna idea?

Actualmente estoy utilizando los tres gráficos siguientes: enter image description here

Cada gráfico corresponde a un nivel de depresión inicial (leve, moderada, grave). Luego, dentro de cada gráfico, observo la relación entre el tratamiento (0,1) y la mejora de la depresión (nula, moderada, sustancial).

Estos 3 gráficos funcionan para ver la relación de 3 vías, pero ¿hay alguna forma conocida de hacerlo con un solo gráfico?

14voto

erik Puntos 3923

Se trata de un conjunto de datos interesante para intentar representarlo gráficamente, en parte porque no es realmente categórico. Ambos factores de 3 niveles son ordinales y existe una posible interacción entre ellos (presumiblemente, es más difícil para un mild baseline tener substantial improvement -- o tal vez substantial improvement significa algo diferente para cada uno baseline ).

Con múltiples variables, no suele haber una única vista que muestre todas las características que te pueden interesar. Algunos factores serán más fáciles de comparar que otros. Creo que tu vista original es buena y mejoraría con las sugerencias de Nick Cox: eliminar las leyendas duplicadas y utilizar una escala de colores ordinal.

Si lo que más le interesa es ver la diferencia entre tratamientos, puede enfatizar el cambio utilizando un gráfico de áreas apiladas en lugar de barras apiladas.

enter image description here

Suelo desconfiar del apilamiento en general porque es más difícil leer los valores intermedios, pero refuerza la naturaleza de suma fija de estos datos. Y hace que sea fácil de leer la suma moderate + substantial si eso es relevante. He invertido el orden de los improvement niveles de modo que más alto es mejor para la frecuencia.

Sin apilamiento, el equivalente es un gráfico de pendiente.

enter image description here

Es más fácil leer cada nivel, pero más difícil entender la interacción. Hay que tener en cuenta que la tercera línea depende directamente de las otras dos.

Dada la naturaleza ordinal de los datos, puede ser útil convertir los improvement en una puntuación numérica, como se hace a menudo con Likert datos. Por ejemplo, none=0 , moderate=1 , substantial=2 . A continuación, puedes representar gráficamente esa variable en una escala continua. El inconveniente es que tienes que encontrar una puntuación razonable (por ejemplo, quizá 0, 1 y 5 serían una representación más fiel).

enter image description here

Colofón : Estos gráficos se han realizado con la función Graph Builder del programa informático JMP (que ayudo a desarrollar). Aunque hecho de forma interactiva, una secuencia de comandos, por ejemplo, para la trama de la zona, sin las personalizaciones de coloración, es:

Graph Builder(
    Graph Spacing( 15 ),
    Variables( X( :treatment ), Y( :frequency ),
        Group X( :baseline ), Overlay( :improvement )
    ),
    Elements( Area( X, Y ) )
);

10voto

Nick Cox Puntos 22819

En primer lugar, he aquí mi lectura del gráfico proporcionado de los datos para quienes deseen jugar (experimentar, si lo desean). NB Los errores puntuales son ciertamente posibles, al igual que los errores manifiestos.

    improvement  treatment   baseline   frequency  
           none          0       mild          5  
       moderate          0       mild         41  
    substantial          0       mild          4  
           none          1       mild         19  
       moderate          1       mild         19  
    substantial          1       mild         12  
           none          0   moderate         19  
       moderate          0   moderate         24  
    substantial          0   moderate          7  
           none          1   moderate         20  
       moderate          1   moderate         14  
    substantial          1   moderate         16  
           none          0     severe          7  
       moderate          0     severe         21  
    substantial          0     severe         22  
           none          1     severe         12  
       moderate          1     severe         15  
    substantial          1     severe         23  

He aquí una reelaboración del diseño original. Un detalle de los datos originales simplifica las cosas: el número de personas en cada una de las combinaciones de predictores es el mismo, por lo que trazar frecuencias y trazar porcentajes es lo mismo. Aquí, en lugar de un gráfico de barras apiladas (subdivididas, segmentadas), separamos las barras en un gráfico de barras de dos vías o en un diseño de gráfico de tabla.

Gran parte del detalle de los gráficos es sólo eso, detalle. Varios pequeños puntos débiles en un gráfico pueden minar su eficacia y varias pequeñas mejoras también pueden ayudar.

enter image description here

Para deletrearlo:

  1. Aquí no hacen falta tres paneles, con su repetición de ejes, leyenda y texto.

  2. Una leyenda es siempre maldición además de bendición, pues obliga al lector a ir "adelante y atrás" mentalmente (o a memorizar la leyenda, algo que no atrae, por muy fácil que sea). Un texto informativo junto a las barras es más fácil de seguir.

  3. El código de colores de la macedonia es prescindible. También parece arbitrario: Una mejora "sustancial" es algo grande, pero incluso el amarillo fuerte me parece un color apagado. Pero no necesitamos colores cuando tenemos texto que explicar.

  4. Aunque algunos chillarán horrorizados por violar la distinción entre Figura y Tabla, también podemos mostrar las frecuencias. Es útil poder pensar "4 personas en esta categoría".

  5. Aquí se rinde homenaje al trazado tradicional de la respuesta en el eje vertical, igual que en el original.

Dicho esto, es difícil ver mucha estructura en estos datos. Cuando es así, también es difícil repartir la culpa entre (a) los datos sin mucha estructura y (b) las debilidades de un diseño gráfico para detectar no sólo los efectos de los predictores, sino también las posibles interacciones. El tratamiento parece menos importante que el estado basal. Pero entonces, si el estado basal era "leve", ¿cuánto margen había para una mejora "sustancial"? Me detendré aquí para no hacer el ridículo cuando el estudio de los datos de salud mental no es ciertamente una especialidad, sobre todo si los datos resultan ser falsos. Pero si son reales, nos vendría bien un tamaño de muestra mucho mayor. (Solemos decir eso, pero ahí va).

EDITAR El gráfico puede complicarse naturalmente con un esquema de colores ordinales si así se desea:

enter image description here

Para que conste: en los gráficos se utilizó código de Stata, incluido mi propio programa tabplot descargable mediante ssc inst tabplot .

tabplot improvement group [w=frequency] , showval ///
xmla(1.5 "mild" 3.5 "moderate" 5.5 "severe", noticks labgap(*4) labsize(medsmall)) ///
xla(1 "0" 2 "1" 3 "0" 4 "1" 5 "0" 6 "1") ///
xtitle(baseline and treatment) xsc(titlegap(*4)) bfcolor(emerald*0.2)

tabplot improvement group [w=frequency] , showval ///
xmla(1.5 "mild" 3.5 "moderate" 5.5 "severe", noticks labgap(*4) labsize(medsmall)) ///
xla(1 "0" 2 "1" 3 "0" 4 "1" 5 "0" 6 "1") ///
xtitle(baseline and treatment) xsc(titlegap(*2)) ///
sep(improvement2) bar3(bfcolor(emerald*0.2)) bar2(bfcolor(emerald*0.6)) ///
bar1(bfcolor(emerald)) barall(blcolor(green))

5voto

user28973 Puntos 1

¿No es Mosaico ¿especialmente diseñado para este fin?

En R sería como

library(vcd)
d = read.table("data.dat", header=TRUE)
tab = xtabs(frequency ~ treatment+baseline+improvement, data=d)
mosaic(data=tab,~ treatment+baseline+improvement, shade=TRUE, cex=2.5)

Cada variable categórica va a un borde del cuadrado, que se subdivide por sus etiquetas. (Por lo tanto, si se subdivide cada borde en un solo nivel, como máximo se pueden representar 4 variables categóricas. En mi humilde opinión, más allá de 3 se vuelve confuso y más difícil de interpretar). El tamaño de los rectángulos es proporcional a la frecuencia. Esta es la idea principal detrás de la trama de mosaico y es el mismo en esta respuesta y la respuesta de Paweł Kleka.

Las diferencias están en los diseños de esos rectángulos y "sutilezas" proporcionadas por un paquete R específico utilizado para este tipo de gráfico. Como se puede ver en la respuesta de Paweł Kleka, el graphics paquete subdivide el borde superior en 2 niveles en lugar de utilizar el borde derecho. He utilizado vcd con las opciones predeterminadas, de modo que el color indica el grado de asociación entre las variables. Gris significa que los datos son consistentes con (no se puede rechazar la hipótesis de) independencia de las variables. Azul significa que existe una asociación positiva entre la línea de base "severa" y la mejora "sustancial" tanto para el tratamiento "0" como para el "1". (¡Sorpresa, sorpresa! Yo lo traduzco de la siguiente manera: si tiene una depresión grave, es probable que mejore sustancialmente tanto si recibe un tratamiento como si no. Corríjanme si me equivoco).

Uno puede ajustar la trama según sus necesidades, véase, por ejemplo, aquí . El paquete también tiene varias viñetas, busca en google "vcd mosaic example" (como acabo de hacer yo). El artículo de Wikipedia citado al principio también explica cómo construir este tipo de gráfico y la intuición que hay detrás.

enter image description here

Si comparas mi foto con la de la respuesta de Paweł Kleka, sí pas importa, ese "tratamiento" está en el borde izquierdo de cada imagen. Usted puede cambiar fácilmente la ubicación del borde cambiando la última línea de mi código y ajustar el diseño de acuerdo a sus necesidades. La práctica común es que a la izquierda va la variable más importante o la variable con el menor número de etiquetas. También puedes cambiar el orden de las etiquetas (por ejemplo, para que en el borde derecho el orden sea "ninguna moderada importante") haciendo que la variable factor correspondiente en R pedido y ajustando sus niveles.

4voto

Hatoru Hansou Puntos 101

Me gusta usar un eje x de 2 niveles para datos como éste. Así que sus categorías de eje x para un solo gráfico podría ser:

  • Tratamiento=0, Inicio=Leve
  • Tratamiento=0, Inicio=Moderado
  • Tratamiento=0, Inicio=Severo
  • Tratamiento=1, Inicio=Leve
  • Tratamiento=1, Inicio=Moderado
  • Tratamiento=1, Inicio=Severo

...con los mismos recuentos por categorías [ninguna/moderada/sustancial] barras de histograma.

3voto

rnso Puntos 2424

La información también puede transmitirse mediante el siguiente gráfico lineal sencillo:

enter image description here

La mejora se muestra mediante diferentes tipos de líneas, mientras que el grupo de referencia se muestra en colores. Estos y el parámetro del eje x (tratamiento aquí) también pueden intercambiarse si se desea.

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