Tengo 82 encuestados en 2 grupos (43 en el Grupo A y 39 en el Grupo B) que completaron una encuesta de 65 preguntas Likert, cada una con un rango de 1 a 5 (totalmente de acuerdo - totalmente en desacuerdo). Por lo tanto, tengo un marco de datos con 66 columnas (1 para cada pregunta + 1 que indica la asignación de grupo) y 82 filas (1 para cada encuestado).
Al usar R o SPSS, ¿alguien conoce una buena manera de visualizar estos datos?
Necesito algo como esto:
(de Jason Bryer )
Pero no puedo hacer que funcione la sección inicial del código. Alternativamente, encontré muy buenos ejemplos de cómo visualizar datos Likert de una publicación cruzada validada anterior: Visualizar datos de respuesta de elementos Likert, pero no hay guías o instrucciones sobre cómo crear estos gráficos de conteo centrado o diagramas de barras apiladas usando R o SPSS.
fuente
Respuestas:
Si realmente desea utilizar gráficos de barras apilados con una cantidad tan grande de elementos, aquí hay dos posibles soluciones.
Utilizando
irutils
Encontré este paquete hace unos meses.
A partir de la confirmación 0573195c07 en Github , el código no funcionará con un
grouping=
argumento. Vayamos a la sesión de depuración del viernes.Comience descargando una versión comprimida de Github. Tendrá que hackear el
R/likert.R
archivo, específicamente las funcioneslikert
yplot.likert
. Primero, se usa inlikert
,cast()
pero elreshape
paquete nunca se carga (aunque hay unaimport(reshape)
instrucción en elNAMESPACE
archivo). Puede cargar esto usted mismo de antemano. En segundo lugar, hay una instrucción incorrecta para buscar etiquetas de elementos, donde ai
está colgando alrededor de la línea 175. Esto también debe corregirse, por ejemplo, reemplazando todas las ocurrencias delikert$items[,i]
conlikert$items[,1]
. Luego puede instalar el paquete de la forma en que está acostumbrado en su máquina. En mi Mac, lo hiceLuego, con R, intente lo siguiente:
Eso debería funcionar, pero la representación visual será horrible debido a la gran cantidad de elementos. Sin
plot(likert(resp))
embargo, funciona sin agrupación (por ejemplo, ).Por lo tanto, sugeriría reducir su conjunto de datos a subconjuntos más pequeños de elementos. Por ejemplo, usando 12 artículos,
Me sale un gráfico de barras "legible". Probablemente puedas procesarlos después. (Esos son
ggplot2
objetos, ¡pero no podrá organizarlos en una sola páginagridExtra::grid.arrange()
debido a un problema de legibilidad!)Solución alternativa
Me gustaría llamar su atención sobre otro paquete, HH , que permite trazar escalas Likert como gráficos de barras apiladas divergentes. Podríamos reutilizar el código anterior como se muestra a continuación:
pero eso complicará un poco las cosas porque necesitamos convertir frecuencias a conteos, subconjunto del
likert
objeto producido porirutils
, separar paquete, etc. Así que comencemos nuevamente con estadísticas nuevas (conteos):Para usar una variable de agrupación, deberá trabajar con
array
valores numéricos.Esto producirá dos paneles separados, pero cabe en una sola página.
Editar 2016-6-3
fuente
HH::as.pyramidLikert
.t(apply(resp, 2, table))
port(apply(resp, 2, table))[,levels(resp[,1])]
. ¡Y +1 para ti también!Comencé a escribir una publicación de blog sobre la recreación de muchos de los cuadros en la publicación que menciona ( Visualizar datos de respuesta de elementos Likert ) en SPSS, así que supongo que esto será una buena motivación para terminarlo.
Como señala Michelle, el hecho de que tenga grupos es un nuevo giro en comparación con las preguntas anteriores. Y si bien los grupos se pueden tener en cuenta utilizando los gráficos de barras apiladas, IMO se incorporan mucho más fácilmente en el ejemplo de diagrama de puntos en la publicación original de chl. He incluido el código SPSS para generar esto al final de la publicación, esencialmente implica saber cómo reformar sus datos en el formato apropiado para generar dicho gráfico (anotación proporcionada en el código para aclarar algo de eso). Aquí utilicé una codificación redundante (color y forma) para distinguir los puntos que provienen de los dos grupos, e hice los puntos semitransparentes para que pueda saber cuándo se superponen (otra opción sería esquivar los puntos cuando se superponen).
¿Por qué es esto mejor que los gráficos de barras apiladas? Los gráficos de barras apiladas codifican información en la longitud de las barras. Cuando intenta hacer comparaciones entre longitudes de barras, ya sea dentro de la misma categoría de eje o entre paneles, el apilamiento impide que las barras tengan una escala común. Por ejemplo, proporcioné una imagen en la Figura 2 en la que dos barras se colocan en un gráfico en el que su ubicación inicial es diferente, ¿qué barra es la más ancha (a lo largo del eje horizontal)?
Compare eso con el gráfico de la Figura 3 a continuación, en el que las dos barras (de la misma longitud) se trazan desde el mismo punto inicial. Intencionalmente he hecho la tarea difícil, pero deberías poder decir cuál es más larga.
Los gráficos de barras apiladas básicamente hacen lo que se muestra en la Figura 2. Los gráficos de puntos pueden considerarse más similares a lo que se muestra en la Figura 3, simplemente reemplace la barra con un punto al final de la barra.
No voy a decir que no genere ningún gráfico en particular para el análisis exploratorio de datos, pero sugeriría evitar los gráficos de barras apiladas cuando se usan tantas categorías. Las gráficas de puntos tampoco son una panacea, pero creo que hacer comparaciones entre paneles con las gráficas de puntos es mucho más fácil que con los gráficos de barras apiladas. Considere algunos de los consejos que proporciono en mi blog aquí para las tablas también, intente ordenar y / o separar los cuadros en categorías significativas, y asegúrese de que los elementos que desee ver en conjunto estén más juntos en los cuadros. Si bien algunos de los métodos de trazado pueden ajustarse bien a muchas preguntas (los mapas de calor categóricos son un ejemplo), sin clasificar aún será difícil identificar cualquier patrón significativo (además de valores atípicos obvios).
Una nota sobre el uso de SPSS. SPSS puede generar cualquiera de los enlaces anteriores a los gráficos, aunque a menudo implica saber cómo dar forma a sus datos (lo mismo ocurre con ggplot, pero la gente ha estado desarrollando paquetes para esencialmente hacer la remodelación por usted). Para entender cómo funciona mejor el lenguaje GPL de SPSS, sugiero leer el libro de Hadley Wickham sobre ggplot2en el uso R! serie. Presenta la gramática necesaria para comprender cómo funciona la GPL de SPSS, y es una lectura mucho más fácil que el manual de programación de GPL que viene con SPSS. Si tiene alguna pregunta sobre la generación de gráficos específicos en SPSS, sería mejor hacer una pregunta para un gráfico (¡ya he hablado lo suficiente aquí!) Actualizaré esta respuesta con un enlace si alguna vez llego a hacer mi publicación de blog que replica algunos de los otros gráficos. Para una prueba de concepto de los mapas de calor o gráficos de fluctuación, puede ver otra publicación mía del blog, algunos ejemplos de Corrgrams en SPSS .
Código SPSS utilizado para generar la Figura 1
fuente
Bueno, se me ocurrió el código antes de que lo aclararas. Debería haber esperado pero pensé que debería publicarlo para que cualquiera que venga aquí pueda reutilizar este código.
Datos ficticios para visualizar
Código para mapa de calor
Esto es básicamente una plantilla para visualizar los elementos de Likert en un mapa de calor del sitio web de Jason Bryon.
fuente
El código de @ RJ produce un gráfico como este, que en realidad es una tabla con celdas sombreadas. Es bastante ocupado y un poco difícil de descifrar. Una tabla simple sin sombreado podría ser más efectiva (y también puede poner los datos en un orden más significativo).
Por supuesto, depende del mensaje principal que intentes comunicar, pero creo que es más simple y fácil de entender. También tiene las preguntas y respuestas en un orden lógico (¡sobre todo!).
fuente