# Strength of association between categories of two categorical variables

I am currently working with survey data, and I'm a bit at a loss as to how to test for strength of association between categorical responses across questions.

The data in question is in this format:

   Q01     Q02      Q03      Q04      Q05
1 Agree   Agree  Neutral    Agree Disagree
2 Agree   Agree  Neutral Disagree  Neutral
3 Agree Neutral Disagree Disagree    Agree
4 Agree Neutral Disagree    Agree  Neutral
5 Agree   Agree  Neutral    Agree  Neutral


I have 18 questions with 472 respondents, all questions on the same scale ("Agree/Neutral/Disagree"). One of the things I'd like to know is how well correlated are responses of specific categories across questions: for example, how correlated is an "Agree" on Q1 with an "Agree" on Q2, etc.

Anyone mind giving me a "nudge" on the right path to go down? I believe I need to use Cramer's V in this situation (and implement it in R with the vcd package), but I'd like to make sure I'm on the right path.

• Do you have reason to believe that there is a latent normal variable that lies behind people's manifest responses? Ie, do you think people's inner level of agreement - disagreement is continuous & normally distributed? – gung Nov 17 '16 at 17:55
• Yes - I believe so. I'll take that as a nudge to investigate latent variable models. – Kyle Shank Nov 17 '16 at 18:25
• If, as you say, your interest is correlation between partial categories, not the entire categorical variables, then I would see your question as a duplicate of this one. – ttnphns Nov 17 '16 at 23:42

You needn't necessarily move straight to latent variable models. If you simply want to assess the possible association between variables, correlations are a simple and convenient place to start. Given that you suspect the ordinal ratings are likely a discretization of a latent normal distribution, I would begin by forming a correlation matrix of polychoric correlations. That is easy to do in R using functions in the psych package.