Approaches to analyzing survey results
This feature is available in NVivo Pro and Plus editions. Learn more
This topic describes how you can analyze and explore a dataset containing survey results, starting with the simplest approach and then moving to more complex methods.
If you want to know how to import survey results into NVivo, refer to the following topics:
NOTE: The Survey Import Wizard is available in NVivo 11 (Update 2). If you are using an earlier version of NVivo, you will see the Import Dataset Wizard. Refer to Software updates for information about upgrading.
In this topic
- Explore your survey data in Detail View
- Gather responses to each question
- Gather responses of each survey respondent
- Grouping demographic values into ranges
- Auto code survey responses based on existing coding patterns
Explore your survey data in Detail View
When you open the dataset in Detail View, you can visually explore the dataset. When you are working with the dataset in Detail View, you can:
-
Hide columns to limit the amount of data you are looking at—for example, if you want to see the first column in your dataset next to the fifth column, you can hide the intervening columns.
-
Use the sort or filter functions to see patterns in your data. For example, if your dataset contains survey responses and includes a classifying field for sex, you can use the sort or filter functions to view the responses of the males or females.
-
Manually code survey responses at nodes representing the themes in your data—refer to Basic Coding in dataset sources for more information.
You can also run queries to find and code at themes in your data:
-
Run a Word Frequency query to identify common themes in the survey responses.
-
Run a Text Search query to find all instances of a particular word or phrase.
Gather responses to each question
Do you want to see how all respondents replied to a question? The Survey Import Wizard gathers responses to each open-ended survey question at a theme node—allowing you to group the data into broad themes.
Using the example data below, the Wizard will create and code at the following theme nodes:
-
Question 4 How can we improve road safety?
-
Question 5 Other suggestions for improvement?
Q1 Name | Q2 Age | Q3 Gender | Q4 How can we improve road safety? | Q5 Other suggestions for improvement? |
Anna | 29 | Female | I think there should be more car-free zones | Electric buses and taxis would help reduce pollution in the inner city |
Jack | 31 | Male | Pedestrians need to feel safe. There should be better lighting and more police | We should create more green spaces |
Maria | 52 | Female | Safety barriers at busy intersections | I don't think they should tax car parks |
Peter | 47 | Male | Better education in schools about road safety | More street trees |
With all responses to a question grouped to a single theme node, you can then use some of NVivo's powerful analysis tools to analyze the data.
-
Open the theme node and visually explore content coded at the node. From here you could 'code on' to more granular thematic groupings. For example, you could gather all answers which mentioned car-free zones.
-
Run a Word Frequency query (using the theme node in the scope of the query) to find common words or concepts in responses to Question 4.
-
Run a Text Search query looking for particular words or concepts, using the theme node in the scope of the query. For example, you could search for education and code all the results at a new theme node.
-
Generate a cluster analysis diagram. For example, you can explore the similarity between the responses to Question 4 and responses to other survey questions.
-
Open the theme node, then manually code a portion of the responses to a group of nodes (car free zones, lighting, safety barriers), then use pattern-based coding to auto code the node to the specific thematic nodes that relate to that question. Refer to Automatic coding using existing coding patterns for more information.
-
Automatically analyze content in the nodes to detect themes or sentiment. Refer to About automated insights for more information. (NVivo Plus only)
Gather responses of each survey respondent
Survey responses are stored at the case node that represents each respondent. If your data contains closed-ended questions that describe your survey respondents—for example, name, age and gender—the Wizard creates these as case attributes.
Using the example data below, the Wizard will create four cases of the classification 'person', with attributes for Age and Gender. Responses to both Question 4 and Question 5 would be coded at these case nodes.
Q1 Name | Q2 Age | Q3 Gender | Q4 How can we improve road safety? | Q5 Other suggestions for improvement? |
Anna | 29 | Female | I think there should be more car-free zones | Electric buses and taxis would help reduce pollution in the inner city |
Jack | 31 | Male | Pedestrians need to feel safe. There should be better lighting and more police | We should create more green spaces |
Maria | 52 | Female | Safety barriers at busy intersections | I don't think they should tax car parks |
Peter | 47 | Male | Better education in schools about road safety | More street trees |
With survey responses coded at case nodes for each respondent, you can use analysis tools which compare their attribute values. For example:
-
Create charts to compare the demographic attributes of your respondents—perhaps your respondents are mostly males under 30 years old?.
-
Generate a cluster analysis diagram that compares the attribute values of your respondents—are there clusters of respondents with similar characteristics? Are there any 'outliers'—respondents with demographic characteristics that are very different from the others.
-
Run a Word Frequency query (using the case in the scope of the query) to find common words or concepts in responses to Question 4. You could code the results at new nodes to further refine your analysis.
-
Run a Text Search query looking for particular words or concepts, using the case in the scope of the query. For example, you could search for education and code all the results at a new node.
When survey content is gathered at both question nodes (Question 4, Question 5 ) and case nodes (Anna, Jack, Maria, Peter), you can analyze what respondents in different demographic groups are saying in response to particular questions:
-
Use a Coding query to view all the responses of males under 30 years to Question 4.
-
Use a Word Frequency query to find the most commonly occurring words or ideas that females mention when responding to Question 5
NOTE
-
If you have demographic information about your respondents stored separately from your survey data, you may need to set the attribute values by another method. For example, you can import case attribute values from a spreadsheet or by importing from another NVivo project—refer to Import (or export) classification sheets for more information.
Grouping demographic values into ranges
When you use demographic information in the dataset to set attribute values for cases, you can optionally group values into ranges.
For example, if your dataset contains the age of your respondents, it may be more useful to know that an individual participant is within the 21-29 age range, than to know their precise age.
The Classify Cases from Dataset Wizard allows you to the group values—refer to Classify cases (set attribute values to record information) for more information.
Auto code survey responses based on existing coding patterns
This feature is available in NVivo Plus.
You can use pattern-based auto coding to speed up the process of coding survey responses. Before you use pattern-based coding, you need to start with manual 'pilot' coding of the responses—for example, code 5-10% of the responses manually.
If your dataset contains responses to questions on a range of topics or issues, you may get better results with pattern-based coding if you auto code the responses to one question at a time using specific thematic nodes that relate to that question.
To auto code survey responses based on existing coding patterns:
- First, gather a subset of responses for each question and perform manual 'pilot' coding as follows:
-
Filter the rows in your dataset to show only the responses you want to use for your pilot coding. For example, you could show the rows prior to a particular response date.
-
Auto code the dataset using source structure to gather the responses into a node for each question— for example, Question 1, Question 2, Question 3. In step 3 of the Wizard, choose to code Filtered rows only.
-
Open each question node and manually 'code on' to a group of thematic nodes specific to that question.
-
Next, auto code the rest of the responses using existing coding patterns as follows:
-
Change the filtering in your dataset to hide the responses that were already coded—for example, you could hide rows prior to a particular response date. The reason for filtering the data is to ensure that pattern coding doesn’t re-code responses that you’ve already coded manually.
-
Again, auto code the dataset using source structure to gather the responses into a new node for each question. In step 3 of the Wizard, choose to code Filtered rows only. In step 5 of the Wizard, create the new nodes in a location Under a New Node (so that they are in a separate node hierarchy from the question nodes you created for pilot coding).
-
For each question node in the new node hierarchy, use pattern-based coding to auto code the responses to the specific thematic nodes for that question.
If you plan to import multiple times from the same SurveyMonkey survey—for example, by periodically gathering completed responses to an open survey—you can import and manually code the initial responses. Then later, you can import additional responses and use pattern-based auto coding on the new data.
Pattern-based auto coding is an experimental feature that you can test and try out. This feature is designed to speed up the coding process for large volumes of textual content.
Refer to Automatic coding using existing coding patterns for more information.