Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

I have imported an Excel document in SPSS which contains around 500 entries. Three columns are defined, using Likert scales. I have substituted textual labels of these scales with numerical values from 0 to 4 (so, the three numeric variables are ordinal). Two more columns are just text, e.g., location (home, commuting etc.); these are nominal variables.

Now, I want to correlate these variables with each other in order to find meaningful patterns. (In particular, I want to correlate my ordinal variables with my nominal variables, but I don't know how.) How do I do this in SPSS? Moreover, I would like to test the values of some variables against the whole number of entries.

share|improve this question
SEE also related question stats.stackexchange.com/q/73065/3277 –  ttnphns Dec 27 '13 at 8:02
add comment

3 Answers

You should have a look at multiple correspondence analysis. This is a technique to uncover patterns and structures in categorical data. It is an example of what some people call "French Data Analysis"

In SPSS, you can use the CORRESPONDENCE command. If you prefer the Menu, it is available via "Analyze -> Data Reduction -> Correspondence Analysis".

However, before doing that, start with cross-tabulations between the variables. In SPSS the command is called CROSSTABS or click on "Analyze -> Descriptive Statistics -> Crosstabs"

share|improve this answer
This answer is qustionnable. And is mistaken in particuar respect. CORRESPONDENCE command in SPSS is simple, not multiple, correspondence analysis. And it is unclear what relation correspondence analysis (multiple or simple) may have to an ordinal variable. It analyzes only nominal variables. –  ttnphns Dec 27 '13 at 8:41
The MULTIPLE CORRESPONDENCE command does what the name says. However, it is intended for nominal variables. –  JKP Feb 27 at 20:28
add comment

You might want to look at the AUTORECODE command (Transform > Automatic Recode) if you are reading a lot of string data that needs to be converted to numeric.

Parametric and nonparametric correlations are available from the Analyze > Correlate menu for a first look. There are tools available as extensions for color coding significant and/or large correlations. There is also a user-posted tool for generating a graphical representation of a correlation table that you can find in the Graphics forum in the SPSS Community website.

share|improve this answer
A word of caution here: it's not clear if correlational analyses are appropriate for the OP's data. –  gung Nov 27 '12 at 14:40
add comment
  1. Use Transform > Automatic Recode to make two numeric variables that carry the information of your two string variables.
  2. Run a frequency table of the new variables, and make sure the string attributes are correct. E.g. check for misspelling (commute vs communte), plural/singular confusion (cars vs car), and grammatical difference (drive vs driving). Tidy them up by aggregating them, or each of these variants will be treated as its only level.
  3. Likert's scale with 5 levels can be safely treated as ordinal variables, and the other two variables generated from the string variables are probably nominal variables. To test the association of
    • Ordinal vs. ordinal, you may consider Spearman's correlation coefficient. (Analyze > Bivariate) You'd need the check the box "Spearman" in order to get the statsitics.
    • Nominal vs. nominal, probably a chi-square test. (Analyze > Descriptive statistics > Crosstab Put in the variables into row and column, and then click Statistics and check Chi-square).
    • Nominal vs. ordinal, you may consider Kruskal-Wallis. (Analyze > Non-parametric > Legacy dialog > K-independent samples. Put the Likert variables into Test variable list and put the nominal variable into Grouping variable).

Now, I want to correlate these variables between them in order to find meaningful pattern. How do I do this in SPSS?

Be careful with the intention of finding a meaningful pattern. If you just run the test and make up a reason for anything that appears to be sensible, you're just being toyed by the statistics. Instead, I'd suggest you to draft some questions and have some hypotheses on how they should correlate/associated before you even touch the data. If you are just trying to explore potential relationship, then treat it strictly as a hypothesis-generating activity, and statistically test the association using some other data.

Moreover I would like to test the values of some variables against the whole number of entries.

Sorry, I don't understand what this means.

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.