# How to correlate ordinal and nominal variables in SPSS?

I have imported an Excel document in SPSS which contains around 500 entries. Three columns are defined using Likert scales. I have substituted textual values with numerical values from 0 to 4. The other two columns are just text, e.g., location (home, commuting etc.).

Now, I want to correlate these variables in order to find meaningful patterns. How do I do this in SPSS? Moreover, I would like to test the values of some variables against the whole number of entries.

-

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"

-

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.

-
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
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.

-