# How to summarize categorical data?

I've been struggling with the following problem with hopefully is an easy one for statisticians (I'm a programmer with some exposure to statistics).

I need to summarize the responses to a survey (for management). The survey has 100+ questions, grouped in different areas (with about 5 to 10 questions per area). All answers are categorical (on an ordinal scale, they are like "not at all", "rarely" ... "daily or more frequently").

Management would like to get a summary for each area and this is my problem: how to aggregate categorical answers within the related question?. The questions are too many to make a graph or even a lattice plot for each area. I favor a visual approach if possible, compared to, say, tables with numbers (alas, they won't read them).

The only thing I can come up with is to count the number of answers in each area, then plot the histogram.

Is there any thing else available for categorical data?

I use R, but not sure if it's relevant, I feel this is more of a general statistics question.

• How about PCA/FA? You would shrink correlated variables into factors and work from there... Aug 19, 2010 at 5:46
• this might be too much, if management asks 'how did you get the aggregated numbers?' they'll want a simpler technique so they can (feel they) understand it. Alas, the real world :-( Thanks, though. Aug 20, 2010 at 11:57

You really need to figure out what is the question that you are trying to answer- or what question is management most interested in. Then you can select the survey questions that are most relevant to your problem.

Without knowing anything about your problem or dataset, here are some generic solutions:

• Visually represent the answers as clusters. My favorite is by either using dendrograms or just plotting on an xy axis (Google "cluster analysis r" and go to the first result by statmethods.net)
• Rank the questions from greatest to least "daily or more frequently" responses. This is an example that may not exactly work for you but perhaps it will inspire you http://www.programmingr.com/content/building-scoring-and-ranking-systems-r
• Crosstabs: if for example, you have a question "How often do you come in late for work?" and "How often do you use Facebook?," by crosstabbing the two questions you can find out the percentage of people who rarely do both, or who do both everyday.(Google "r frequency crosstabs" or go to the aforementioned statmethods.net)
• Correlograms. I don't have any experience with these but I saw it also on the statmethods.net website. Basically you find which questions have the highest correlation and then create a table. You may find this useful although it looks kind of "busy."
• I'll mark this as the answer; there are several good suggestions in it so I'll think how to apply them. Aug 20, 2010 at 11:58

There's a nice paper on visualization techniques you might use by Michael Friendly:

(Actually, there's a whole book devoted to this by the same author.) The vcd package in R implements many of these techniques.

• upvoted for the reference to the paper and the book, I'll read them Aug 20, 2010 at 11:54

Standard options include:

• getting the mean for items within a scale (e.g., if the scale is 1 to 5, the mean will be 1 to 5)
• converting each item to a binary measure (e.g., if item >= 3, then 1, else 0) and then taking the mean of this binary response

Given that you are aggregating over items and over large samples of people in the organisation, both options above (i.e., the mean of 1 to 5 or the mean of percentage above a point) will be reliable at the organisational-level (see here for further discussion). Thus, either of the above options are basically communicating the same information.

In general I wouldn't be worried about the fact that items are categorical. By the time you create scales by aggregating over items and then aggregate over your sample of respondents, the scale will be a close approximation to a continuous scale.

Management may find one metric easier to interpret. When I get Quality of Teaching scores (i.e., the average student satisfaction score of say 100 students) , it is the average on a 1 to 5 scale and that's fine. Over the years after seeing my own scores from year to year and also seeing some norms for the university I've developed a frame of reference of what different values mean. However, management sometimes prefers to think about the percentage endorsing a statement, or the percentage of positive responses even when it is in a sense the mean percentage.

The main challenge is to give some tangible frame of reference for the scores. Management will want to know what the numbers actually mean. For example, if the mean response for a scale is 4.2, What does that mean? Is it good? Is it bad? Is it just okay?

If you are using the survey over multiple years or in different organisations, then you can start to develop some norms. Access to norms is one reason organisations often get an external survey provider or use a standard survey.

You may also wish to run a factor analysis to validate that the assignment of items to scales is empirically justifiable.

In terms of a visual approach, you can have a simple line or bar graph with the scale type on the x-axis and the score on the y-axis. If you have normative data, you could add that also.

Yes. I find clustering to be a very effective approach to data reduction for reducing survey data for both understanding and management presentation.

Latent Class analysis (treating the response scales as ordinal) or k-means (treating them as continuous) can be both viewed as a form of information compression. Classifying respondents into their most likely segment generally yields a categorical variable that has intuitive explanations when profiled in terms of responses.

You can then name the segments, and use those variables for summary level analysis and presentation.

Fit a cluster for groups of related item (e.g. below) or possibly all together.

Q14cluser <-  Q14(a..m):  Which of the following... Check all that apply
QEcluster <-  QE1..QE30:  Rate your agreement with .. Scale of 1-5


I often use LatentGold, but find FASTCLUS in SAS to be a good expedient.

Before doing so, you'll want to consider adjusting responses of each individual for their use of the scale (controversial but pragmatic). Some people just lean on one end of the scale, either avoiding the negative or the positive. Clustering raw responses typically tends to divide people by that behavior.

Standardizing each respondents' answers to their own mean and clustering on that often exposes variables that move together in very interesting ways.