J'ai 82 répondants dans 2 groupes (43 dans le groupe A et 39 dans le groupe B) qui ont répondu à un sondage de 65 questions Likert allant de 1 à 5 (tout à fait d'accord - tout à fait en désaccord). J'ai donc un dataframe avec 66 colonnes (1 pour chaque question + 1 indiquant la répartition des groupes) et 82 lignes (1 pour chaque répondant).
L'utilisation de R ou SPSS permet à quiconque de visualiser une bonne façon de visualiser ces données.
J'ai besoin de quelque chose comme ça:
(de Jason Bryer )
Mais je ne peux pas faire fonctionner la section initiale de code. Alternativement, j'ai trouvé de très bons exemples de la façon de visualiser les données de Likert à partir d'un post précédent de validation croisée: Visualisation des données de réponse de l'article de Likert, mais il n'y a pas de guides ou d'instructions sur la façon de créer ces graphiques de comptage centrés ou ces graphiques à barres empilés à l'aide de R ou SPSS.
Réponses:
Si vous voulez vraiment utiliser des diagrammes à barres empilées avec un si grand nombre d'articles, voici deux solutions possibles.
En utilisant
irutils
J'ai rencontré ce paquet il y a quelques mois.
À partir de la validation 0573195c07 sur Github , le code ne fonctionnera pas avec un
grouping=
argument. C'est parti pour la session de débogage de vendredi.Commencez par télécharger une version zippée depuis Github. Vous devrez pirater le
R/likert.R
fichier, en particulier les fonctionslikert
etplot.likert
. Tout d'abord, danslikert
,cast()
est utilisé mais lereshape
paquet n'est jamais chargé (bien qu'il y ait uneimport(reshape)
instruction dans leNAMESPACE
fichier). Vous pouvez le charger vous-même au préalable. Deuxièmement, il y a une instruction incorrecte pour récupérer les étiquettes des éléments, où ai
pendille autour de la ligne 175. Cela doit également être corrigé, par exemple en remplaçant toutes les occurrences delikert$items[,i]
aveclikert$items[,1]
. Ensuite, vous pouvez installer le package comme vous le faites sur votre machine. Sur mon Mac, je l'ai faitEnsuite, avec R, essayez ce qui suit:
Cela devrait fonctionner, mais le rendu visuel sera horrible en raison du nombre élevé d'éléments.
plot(likert(resp))
Cependant, cela fonctionne sans regroupement (par exemple ).Je suggérerais donc de réduire votre ensemble de données à de plus petits sous-ensembles d'éléments. Par exemple, en utilisant 12 éléments,
Je reçois un diagramme à barres empilées «lisible». Vous pouvez probablement les traiter par la suite. (Ce sont des
ggplot2
objets, mais vous ne pourrez pas les organiser sur une seule page àgridExtra::grid.arrange()
cause d'un problème de lisibilité!)Solution alternative
Je voudrais attirer votre attention sur un autre package, HH , qui permet de représenter les échelles de Likert sous forme de diagrammes à barres empilées divergentes. Nous pourrions réutiliser le code ci-dessus comme indiqué ci-dessous:
mais cela compliquera un peu les choses car nous devons convertir les fréquences en nombres, sous-définir l'
likert
objet produit parirutils
, détacher le package, etc. Commençons donc avec de nouvelles statistiques (nombres):Pour utiliser une variable de regroupement, vous devrez travailler avec une
array
des valeurs numériques.Cela produira deux panneaux distincts, mais il tient sur une seule page.
Modifier 2016-6-3
la source
HH::as.pyramidLikert
.t(apply(resp, 2, table))
part(apply(resp, 2, table))[,levels(resp[,1])]
. Et +1 à vous aussi!J'ai commencé à écrire un article de blog sur la recréation de nombreux graphiques dans l'article que vous mentionnez ( Visualizing Likert Item Response Data ) dans SPSS, donc je suppose que ce sera une bonne motivation pour le terminer.
Comme le note Michelle, le fait que vous ayez des groupes est une nouvelle tournure par rapport aux questions précédentes. Et bien que les groupes puissent être pris en compte à l'aide des graphiques à barres empilées, l'OMI sont beaucoup plus facilement incorporés dans l'exemple de tracé de points dans le post original de chl. J'ai inclus le code SPSS pour générer cela à la fin du message, cela implique essentiellement de savoir comment remodeler vos données dans le format approprié pour générer ledit tracé (annotation fournie dans le code pour, espérons-le, effacer une partie de cela). Ici, j'ai utilisé un encodage redondant (couleur et forme) pour distinguer les points provenant des deux groupes, et j'ai rendu les points semi-transparents pour que vous puissiez dire quand ils se chevauchent (une autre option serait d'esquiver les points lorsqu'ils se chevauchent).
Pourquoi est-ce mieux que les graphiques à barres empilées? Les graphiques à barres empilées codent les informations dans la longueur des barres. Lorsque vous essayez de faire des comparaisons entre les longueurs de barres, soit dans la même catégorie d'axe, soit entre les panneaux, l'empilement empêche les barres d'avoir une échelle commune. Par exemple, j'ai fourni une image sur la figure 2 dans laquelle deux barres sont placées dans un tracé dans lequel leur emplacement de départ est différent, quelle barre est la plus large (le long de l'axe horizontal)?
Comparez cela au tracé de la figure 3 ci-dessous, dans lequel les deux barres (de même longueur) sont tracées à partir du même point de départ. J'ai intentionnellement rendu la tâche difficile, mais vous devriez pouvoir dire laquelle est plus longue.
Les graphiques à barres empilées font essentiellement ce qui est affiché dans la figure 2. Les tracés de points peuvent être considérés comme plus similaires à ceux qui sont affichés dans la figure 3, il suffit de remplacer la barre par un point à la fin de la barre.
Je ne vais pas dire ne pas générer de graphique particulier pour l'analyse exploratoire des données, mais je suggérerais d'éviter les graphiques à barres empilées lorsque vous utilisez autant de catégories. Les graphiques à points ne sont pas non plus une panacée, mais je pense que faire des comparaisons entre les panneaux avec les graphiques à points est beaucoup plus facile qu'avec les graphiques à barres empilées. Considérez également certains des conseils que je donne sur mon blog ici pour les tableaux, essayez de classer et / ou de séparer les graphiques en catégories significatives, et assurez-vous que les éléments que vous souhaitez regarder en tandem sont plus proches les uns des autres dans les graphiques. Bien que certaines des méthodes de traçage puissent être adaptées à de nombreuses questions (les cartes thermiques catégorielles en sont un exemple), sans trier, il sera toujours difficile d'identifier des modèles significatifs (en dehors des valeurs aberrantes évidentes).
Une note sur l'utilisation de SPSS. SPSS peut générer n'importe lequel des précédents liés aux graphiques, bien qu'il implique souvent de savoir comment façonner vos données (il en va de même pour ggplot, mais les gens ont développé des packages pour essentiellement faire le remodelage pour vous). Pour comprendre comment le langage GPL de SPSS fonctionne mieux, je suggère de lire le livre de Hadley Wickham sur ggplot2dans Use R! séries. Il présente la grammaire nécessaire pour comprendre comment fonctionne la GPL de SPSS et est beaucoup plus facile à lire que le manuel de programmation GPL fourni avec SPSS! Si vous avez des questions sur la génération de graphiques spécifiques dans SPSS, il serait préférable de poser une question pour un graphique (j'en ai assez parlé ici!). Je mettrai à jour cette réponse avec un lien, si jamais j'arrive à faire mon article de blog répliquant certains des autres graphiques. Pour une preuve de concept des cartes de chaleur ou des graphiques de fluctuation, vous pouvez voir un autre article de mon blog, Quelques exemples de Corrgrams dans SPSS .
Code SPSS utilisé pour générer la figure 1
la source
Eh bien, j'ai trouvé le code avant que vous ne clarifiiez. J'aurais dû attendre mais j'ai pensé que je devrais l'afficher pour que toute personne qui vient ici puisse réutiliser ce code.
Données factices pour la visualisation
Code pour heatmap
Il s'agit essentiellement d'un modèle de visualisation des éléments Likert sur une carte thermique du site Web de Jason Bryon.
la source
Le code de @ RJ produit un tracé comme celui-ci, qui est en réalité un tableau avec des cellules ombrées. C'est plutôt occupé et un peu difficile à déchiffrer. Un tableau simple sans ombrage pourrait être plus efficace (et vous pouvez également placer les données dans un ordre plus significatif).
Bien sûr, cela dépend du message principal que vous essayez de communiquer, mais je pense que c'est plus simple et un peu plus facile à comprendre. Il a également les questions et les réponses dans un ordre logique (surtout!).
la source