¿Cuál es un gráfico apropiado para ilustrar la relación entre dos variables ordinales?
Algunas opciones que se me ocurren:
- Diagrama de dispersión con jitter aleatorio agregado para detener los puntos que se esconden entre sí. Aparentemente un gráfico estándar: Minitab llama a esto un "gráfico de valores individuales". En mi opinión, puede ser engañoso, ya que visualmente fomenta una especie de interpolación lineal entre niveles ordinales, como si los datos fueran de una escala de intervalos.
- Diagrama de dispersión adaptado para que el tamaño (área) del punto represente la frecuencia de esa combinación de niveles, en lugar de dibujar un punto para cada unidad de muestreo. De vez en cuando he visto tales tramas en la práctica. Pueden ser difíciles de leer, pero los puntos se encuentran en un enrejado regularmente espaciado que de alguna manera supera las críticas al diagrama de dispersión nervioso que visualmente "interviene" los datos.
- Particularmente si una de las variables se trata como dependiente, una gráfica de caja agrupada por los niveles de la variable independiente. Es probable que se vea terrible si el número de niveles de la variable dependiente no es lo suficientemente alto (muy "plano" con bigotes faltantes o incluso cuartiles colapsados que hacen imposible la identificación visual de la mediana), pero al menos llama la atención sobre la mediana y los cuartiles que son estadísticas descriptivas relevantes para una variable ordinal.
- Tabla de valores o cuadrícula de celdas en blanco con mapa de calor para indicar la frecuencia. Visualmente diferente pero conceptualmente similar al diagrama de dispersión con área de puntos que muestra la frecuencia.
¿Hay otras ideas o pensamientos sobre qué parcelas son preferibles? ¿Existe algún campo de investigación en el que ciertas parcelas ordinales vs ordinales se consideren estándar? (Parece recordar que el mapa de calor de frecuencia está muy extendido en la genómica, pero sospecho que es más frecuente para nominal-vs-nominal.) Las sugerencias para una buena referencia estándar también serían muy bienvenidas, supongo que algo de Agresti.
Si alguien quiere ilustrar con un gráfico, sigue el código R para datos de muestra falsos.
"¿Qué tan importante es el ejercicio para ti?" 1 = nada importante, 2 = algo sin importancia, 3 = ni importante ni sin importancia, 4 = algo importante, 5 = muy importante.
"¿Con qué frecuencia toma una carrera de 10 minutos o más?" 1 = nunca, 2 = menos de una vez por quincena, 3 = una vez cada una o dos semanas, 4 = dos o tres veces por semana, 5 = cuatro o más veces por semana.
Si fuera natural tratar "a menudo" como una variable dependiente y "importancia" como una variable independiente, si una gráfica distingue entre las dos.
importance <- rep(1:5, times = c(30, 42, 75, 93, 60))
often <- c(rep(1:5, times = c(15, 07, 04, 03, 01)), #n=30, importance 1
rep(1:5, times = c(10, 14, 12, 03, 03)), #n=42, importance 2
rep(1:5, times = c(12, 23, 20, 13, 07)), #n=75, importance 3
rep(1:5, times = c(16, 14, 20, 30, 13)), #n=93, importance 4
rep(1:5, times = c(12, 06, 11, 17, 14))) #n=60, importance 5
running.df <- data.frame(importance, often)
cor.test(often, importance, method = "kendall") #positive concordance
plot(running.df) #currently useless
Una pregunta relacionada para variables continuas que encontré útil, tal vez un punto de partida útil: ¿Cuáles son las alternativas a los diagramas de dispersión cuando se estudia la relación entre dos variables numéricas?
Respuestas:
Un diagrama de espina dorsal (diagrama de mosaico) funciona bien para los datos de ejemplo aquí, pero puede ser difícil de leer o interpretar si algunas combinaciones de categorías son raras o no existen. Naturalmente, es razonable, y esperado, que una baja frecuencia esté representada por un pequeño mosaico, y cero por ningún mosaico, pero la dificultad psicológica puede permanecer. También es natural que las personas aficionadas a las tramas espinales elijan ejemplos que funcionen bien para sus trabajos o presentaciones, pero a menudo he producido ejemplos que eran demasiado desordenados para usar en público. Por el contrario, una gráfica de columna utiliza bien el espacio disponible.
Algunas implementaciones presuponen gráficos interactivos, de modo que el usuario pueda interrogar cada mosaico para obtener más información al respecto.
Una alternativa que también puede funcionar bastante bien es un gráfico de barras bidireccional (existen muchos otros nombres).
Ver por ejemplo
tabplot
en http://www.surveydesign.com.au/tipsusergraphs.htmlPara estos datos, una posible trama (producida usando
tabplot
Stata, pero debería ser fácil en cualquier software decente) esEl formato significa que es fácil relacionar barras individuales con identificadores de fila y columna y que puede anotar con frecuencias, proporciones o porcentajes (no lo haga si cree que el resultado está demasiado ocupado, naturalmente).
Algunas posibilidades:
Si se puede pensar que una variable es una respuesta a otra como predictor, entonces vale la pena pensar en trazarla en el eje vertical como de costumbre. Aquí pienso en la "importancia" como la medición de una actitud, la pregunta es si afecta el comportamiento ("a menudo"). El problema causal es a menudo más complicado incluso para estos datos imaginarios, pero el punto sigue siendo.
La sugerencia n. ° 1 siempre debe ser inventada si lo contrario funciona mejor, es decir, es más fácil pensar e interpretar.
El desglose porcentual o de probabilidad a menudo tiene sentido. Una trama de frecuencias sin procesar también puede ser útil. (Naturalmente, este argumento carece de la virtud de los mosaicos de mostrar ambos tipos de información a la vez).
Por supuesto, puede probar las alternativas (mucho más comunes) de gráficos de barras agrupadas o gráficos de barras apiladas (o los gráficos de puntos agrupados bastante poco comunes en el sentido de WS Cleveland). En este caso, no creo que funcionen tan bien, pero a veces funcionan mejor.
Algunos pueden querer colorear diferentes categorías de respuesta de manera diferente. No tengo objeciones, y si lo desea, no tomaría las objeciones en serio de ninguna manera.
La estrategia de hibridar el gráfico y la tabla puede ser útil de manera más general o, de hecho, no es lo que desea en absoluto. Un argumento repetido a menudo es que la separación de Figuras y Tablas fue solo un efecto secundario de la invención de la imprenta y la división del trabajo que produjo; es una vez más innecesario, como lo fue para los escritores de manuscritos que ponen ilustraciones exactamente cómo y dónde les gustó.
fuente
Aquí hay un intento rápido de un mapa de calor , he usado bordes de celdas negras para dividir las celdas, pero tal vez las fichas deberían separarse más como en la respuesta de Glen_b.
Aquí hay un diagrama de fluctuación basado en un comentario anterior de Andy W. Como él los describe "son básicamente diagramas de dispersión agrupados para datos categóricos, y el tamaño de un punto se asigna al número de observaciones que caen dentro de ese contenedor". Para una referencia ver
fuente
Aquí hay un ejemplo de cómo se vería una gráfica de columna vertebral de los datos. Hice esto en Stata con bastante rapidez, pero no hay una aplicación R . Creo que en R debería ser solo:
spineplot(factor(often)~factor(importance))
El diagrama de espinas en realidad parece ser el predeterminado si le da a R variables categóricas:
plot(factor(often)~factor(importance))
El desglose fraccional de las categorías de a menudo se muestra para cada categoría de importancia. Las barras apiladas se dibujan con una dimensión vertical que muestra una fracción de la categoría de importancia dada a menudo. La dimensión horizontal muestra la fracción en cada categoría de importancia. Por lo tanto, las áreas de mosaicos formados representan las frecuencias, o más generalmente totales, para cada combinación cruzada de importancia y frecuencia.
fuente
La forma en que lo hice es un poco difícil, pero podría solucionarse con bastante facilidad.
Esta es una versión modificada del enfoque de fluctuación.
Quitar los ejes reduce la tentación de interpretar la escala como continua; dibujar cuadros alrededor de las combinaciones nerviosas enfatiza que hay algo así como un "salto de escala": que los intervalos no son necesariamente iguales
Idealmente, las etiquetas 1..5 deberían reemplazarse con los nombres de las categorías, pero lo dejaré para la imaginación por ahora; Creo que transmite el sentido de ello.
Posibles mejoras:
i) hacer los descansos más pequeños (prefiero los descansos más grandes que esto, personalmente), y
ii) intentar utilizar una secuencia cuasialeatoria para reducir la incidencia del patrón aparente dentro de los cuadros. Si bien mi intento ayudó un poco, puede ver que en las celdas con un menor número de puntos todavía hay subsecuencias con un aspecto más o menos correlacionado (por ejemplo, el cuadro en la fila superior, segunda columna). Para evitar eso, la secuencia cuasialeatoria podría tener que inicializarse para cada subcuadro. (Una alternativa podría ser el muestreo de hipercubos latinos). Una vez que se solucionó, esto se pudo insertar en una función que funciona exactamente como la fluctuación de fase.
fuente
Usando el paquete R riverplot:
fuente
Una idea diferente que no pensé originalmente era una trama de tamiz .
El tamaño de cada mosaico es proporcional a la frecuencia esperada; Los pequeños cuadrados dentro de los rectángulos representan frecuencias reales. Por lo tanto, una mayor densidad de los cuadrados indica una frecuencia superior a la esperada (y está sombreada en azul); La menor densidad de cuadrados (rojo) es para una frecuencia inferior a la esperada.
Creo que preferiría que el color representara el tamaño, no solo el signo, del residuo. Esto es particularmente cierto para los casos de borde donde las frecuencias esperadas y observadas son similares y el residual es cercano a cero; un esquema dicotómico rojo / azul parece enfatizar demasiado las pequeñas desviaciones.
Implementación en R:
fuente
Un gráfico de barras facetadas en R. Muestra la distribución de "a menudo" en cada nivel de "importancia" muy claramente. Pero no hubiera funcionado tan bien si la cuenta máxima hubiera variado más entre niveles de "importancia"; es bastante fácil de configurar
scales="free_y"
en ggplot ( ver aquí ) para evitar mucho espacio vacío, pero la forma de la distribución sería difícil de discernir a niveles de "importancia" de baja frecuencia ya que las barras serían muy pequeñas. Quizás en esas situaciones es mejor usar la frecuencia relativa (probabilidad condicional) en el eje vertical.No es tan "limpio" como el diagrama de tabulación en Stata al que Nick Cox se vinculó, pero transmite información similar.
Código R:
fuente