Measuring Difference Between Two Sets of Likert Values

I asked users to complete a likert survey (1-5) at the start of an activity, and conclusion of the activity. What is the best manner to show the rate of change/difference between these two result sets? I was considering a Pearson correlation, but after thinking about things more I don't believe that it is the most appropriate correlation metric. My data looks similar to below:


Before   After
1         2
1         2
2         2
3         3
3         4
4         2



Result: XXX?

Thanks all

If you are trying to see whether the survey had made any positive effect on the people, modeling a relationship between before and after with correlation is a fair approach while avoiding some edge cases. Correlation looks whether $X's$ and $Y's$ are linearly correlated or how one variable is influenced by other. But I guess what you might be looking for is just something simpler like average increase in rating after the activity. For example

import numpy as np
from scipy import stats
ratings_before = np.array([1,2,1,3,4,5])
ratings_after = np.array([5,5,5,5,5,5])
print "P.Corr: ",stats.pearsonr(ratings_before, ratings_after)[0]
print "Avg.Increase: ",np.mean(ratings_after-ratings_before)


which gives

Nan
2.333


And assume that your activity went so good that everyone rated you a 5-star. Then correlation turns as $NaN$ as denominator goes to zero as no $Y$ can be explained by $X$.

Hope this helps.

• Thanks for the response. Would this be a proper way of doing it in Excel? =average(D1:D6)-average(C1:C6) Dec 27 '16 at 5:26
• Yes that would be right assuming d1:d6 and c1:c6 are final and initial responses. Dec 27 '16 at 5:55