Descriptive
Correlation Matrix
Gathers the pairwise coefficients of every numeric column in the dataset into one square table, without any test of significance.
Method summary
A correlation matrix compares numeric columns across all of their pairwise combinations and produces one coefficient for each pair. The diagonal carries the value 1, since it holds each column's relationship with itself, and the two halves either side of it mirror one another. By default the coefficient follows Pearson's method, computed from departures from the mean, while rank-based Spearman and Kendall options are also available. The purpose is not to test one relationship but to see the whole pattern of association at once: which items move together, which subdimensions of a scale stand apart, and whether any pair of items sits uncomfortably close. The matrix maps those questions out, yet it returns no p value and no significance marker for any coefficient; to test a single pair you move on to one of the pairwise correlation methods.
Which research questions does it answer?
- How closely do the subdimension scores of my scale move together, or are they measuring separate things?
- Before fitting a regression, is any pair of candidate predictors related to an uncomfortable degree?
- Among the items headed for a factor analysis, is there one that stays unrelated to all the rest?
- Which pairs of customer experience measures are repeating the same information?
When should you use it?
- As an exploratory step when there are many variables and you do not yet know which pairs deserve attention.
- Before a factor analysis or a confirmatory model, to see whether the pattern of inter-item association makes such an analysis worthwhile.
- When planning a regression with several predictors and strong relationships among them need to be spotted in advance.
- During scale development, while narrowing an item pool, to identify pairs of items that carry nearly the same information.
- When a report appendix calls for the customary intercorrelation table, which here covers every numeric column.
Required variable types
- Only numeric columns enter the matrix; text and category columns quietly stay out, and the list of columns in the result shows which ones were used.
- The Pearson option belongs to continuous measurement; for ordinal columns such as Likert items the Spearman or Kendall option is easier to defend.
- Columns coded as 0 and 1 count as numeric and so enter the matrix, though the coefficient in those cells is interpreted differently from a continuous pair.
- Since the method accepts no column selection, meaningless columns such as a respondent number or a figure derived from a date also land in the table and should be left unread.
Key assumptions
- Linear relationships
- Every cell computed with the Pearson option captures the linear component alone. A pair following a curve shows up as a cell near zero, and its presence escapes notice altogether.
- Enough observations behind each cell
- Each cell is computed from the rows that hold a value in both of its columns. A column with heavy missingness can produce a row of the matrix resting on far fewer observations than the others.
- Outliers reviewed
- A single distant observation affects every cell in its row and column at once. In a matrix that influence is harder to catch, because one distorted coefficient among dozens draws no attention.
- Measurement level matching the chosen coefficient
- On short ordinal scales the Pearson coefficient presumes equal spacing between the steps. The rank-based options carry no such requirement, which makes them the better fit for Likert data.
How YouReply checks these assumptions
- Linear relationships: No linearity test is carried out in this method and no scatter plot is drawn. For a pair that catches your eye, running the pairwise correlation method is the way to see the shape behind it.
- Enough observations behind each cell: There is no minimum sample size check: the matrix is computed whatever the observation counts are. Nor does the result state how many observations each cell rests on, which is why the missing value analysis belongs before this one.
- Outliers reviewed: No automatic outlier cleaning takes place. Decisions about trimming values remain yours on the Data and Variable tabs.
- Measurement level matching the chosen coefficient: The panel does not verify that the coefficient you chose suits the measurement level of the columns. An undefined method name returns an invalid correlation method error, and if no numeric column exists at all the analysis stops and says so.
How the analysis is run
- 1Drop your data file onto the upload area and confirm in the grid on the Data tab that all columns were read.
- 2On the Variable tab verify that the columns you want in the matrix were read as numeric, since a column left as text never appears in the table.
- 3Declare missing value codes on the same tab; an undeclared code quietly distorts the coefficients, because it enters the computation as a number.
- 4On the Analysis tab pick the correlation matrix from the descriptive group; the data requirements box shows which columns count as numeric.
- 5In the parameter form choose the coefficient: Pearson is the default, with Spearman or Kendall for ordinal data. There is no other parameter and no column selection.
- 6Run the analysis. The result opens with a horizontal bar chart of the correlation pairs, followed by the full matrix table.
- 7Export the matrix to Excel and the chart to PNG; the computation credits card names the library call and its version.
Statistics and tables produced
- The full correlation matrix
- A square table holding the pairwise coefficients of the numeric columns. The diagonal is 1 and the halves are symmetric, so everything there is to read sits in one triangle.
- The list of columns included
- The names of the numeric columns that entered the computation. A column you expected but cannot find was not read as numeric and needs fixing on the Variable tab.
- The coefficient method applied
- The requested method is applied as Pearson, Spearman or Kendall; an undefined name returns an invalid correlation method error.
- Chart of correlation pairs
- A horizontal bar chart lines the pairs up by the magnitude of their coefficients, which is the fastest way to find the pairs worth attention in a crowded matrix.
Effect size and confidence intervals
- The coefficient itself
- Each cell of the matrix is already a unit-free measure of association and leaves no need for a separate effect size. The larger its absolute value, the more information the two columns share. This method runs no significance test on any cell, so if you want to report a high cell as a statistical finding you have to run that pair again through a pairwise correlation method.
- Shared variability
- Squaring a cell gives the proportion of variability the two columns hold in common. The panel does not return that figure, so read the cell and compute it yourself. It helps when narrowing an item pool: a pair sharing more than half of its variability suggests the two items are largely asking the same thing.
No confidence interval is returned for any cell of the matrix. This method produces point coefficients only, with no standard error, no p value and no significance star anywhere in the result. If you have to report a coefficient with an interval, running that pair through a pairwise correlation method will not be enough either, since no interval is computed there; the interval has to be produced outside the panel.
Example research question and example result
The numbers below are a representative example, not data from a real study or a real user.
- Research question
- In an illustrative employee engagement study, what does the pattern of association among four scale scores look like?
- Variables
- Job satisfaction score, mean on a 1-7 scale (continuous) · Organisational commitment score, mean on a 1-7 scale (continuous) · Burnout score, mean on a 1-7 scale (continuous) · Weekly overtime in hours (continuous)
- Example result
- Four columns entered the matrix, computed with the Pearson option. Job satisfaction correlates 0.62 with commitment and -0.54 with burnout, while commitment correlates -0.41 with burnout. Overtime shows 0.29 with burnout, -0.12 with job satisfaction and -0.05 with commitment. All diagonal cells hold the value 1.
- Interpretation
- The three scale scores hang together in the expected directions: satisfaction and commitment rise in step, and both move against burnout. Satisfaction and commitment share roughly 38 per cent of their variability, which still supports treating them as two close but distinguishable constructs. The near-zero cell between overtime and commitment is not evidence that nothing connects them, since the cell captures only the linear component and a pattern that reverses past a certain number of hours can yield a coefficient close to zero. Because no p value is returned for any cell, this table cannot say which of these coefficients are significant. The figures are illustrative.
Real output on a sample dataset
The results below were produced by the analysis engine from this data file. Changing the variable changes the research question as well; every run was computed in advance, so the page sends no request to the engine.
General customer survey (synthetic)
A wide survey of three hundred respondents: two and three category grouping variables, continuous measures, a five point ordinal scale, a binary purchase outcome, a four category brand choice, three repeated measurements, paired binary questions, three raters, four price questions and deliberately empty cells.
- Rows
- 300
- Columns
- respondent_id, gender, education, region, age, income, satisfaction, service_score, price_score, quality_score, loyalty, nps_score, purchased, brand_choice, satisfaction_level, pre_score, post_score, measure_1, measure_2, measure_3, use_before, use_after, use_followup, rater_1, rater_2, rater_3, price_too_cheap, price_cheap, price_expensive, price_too_expensive, feedback_score, followup_rating
The data is synthetic: it comes from a fixed random seed, not from a real study. The values below were produced by the analysis engine from this file, so uploading the same file to the panel gives the same results.
Research question: What does the map of linear relationships between the numeric variables look like?
- Computation variant
- pearson
- Correlation method
- pearson
Correlation matrix
| Row | respondent_id | age | income | satisfaction | service_score | price_score | quality_score | loyalty | nps_score | purchased | satisfaction_level | pre_score | post_score | measure_1 | measure_2 | measure_3 | use_before | use_after | use_followup | rater_1 | rater_2 | rater_3 | price_too_cheap | price_cheap | price_expensive | price_too_expensive | feedback_score | followup_rating |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| respondent_id | 1 | 0.021 | 0.026 | -0.052 | -0.054 | 0.035 | 0.010 | -0.022 | -0.078 | 0.034 | -0.048 | 0.023 | 0.037 | -0.113 | -0.070 | -0.116 | 0.029 | -0.012 | -0.073 | -0.027 | < 0.001 | -0.070 | -0.082 | -0.092 | -0.056 | -0.032 | 0.070 | 0.039 |
| age | 0.021 | 1 | 0.069 | 0.071 | 0.070 | 0.014 | 0.029 | -0.024 | 0.104 | 0.100 | 0.085 | -0.033 | -0.006 | -0.065 | -0.070 | -0.048 | -0.012 | 0.087 | 0.095 | 0.038 | -0.056 | 0.002 | 0.001 | 0.006 | 0.002 | -0.001 | 0.043 | -0.133 |
| income | 0.026 | 0.069 | 1 | 0.101 | 0.096 | -0.028 | 0.081 | -0.857 | 0.069 | 0.192 | 0.110 | 0.058 | 0.057 | -0.046 | -0.074 | -0.046 | -0.010 | -0.043 | -0.060 | 0.049 | -0.026 | -0.003 | 0.042 | 0.063 | 0.029 | -0.027 | -0.027 | 0.014 |
| satisfaction | -0.052 | 0.071 | 0.101 | 1 | 0.483 | 0.181 | 0.236 | 0.128 | 0.699 | 0.331 | 0.749 | 0.056 | 0.060 | -0.008 | -0.032 | -0.040 | 0.003 | -0.068 | 0.048 | 0.061 | 0.062 | -0.024 | 0.032 | 0.029 | -0.029 | -0.011 | 0.014 | 0.077 |
| service_score | -0.054 | 0.070 | 0.096 | 0.483 | 1 | -0.019 | 0.350 | 0.004 | 0.322 | 0.249 | 0.395 | 0.036 | 0.067 | 0.001 | -0.077 | -0.101 | 0.001 | -0.014 | 0.068 | 0.062 | 0.010 | 0.022 | 0.071 | 0.051 | 0.034 | 0.045 | 0.037 | 0.060 |
| price_score | 0.035 | 0.014 | -0.028 | 0.181 | -0.019 | 1 | 0.003 | 0.043 | 0.098 | 0.044 | 0.097 | 0.084 | 0.092 | 0.024 | 0.017 | 0.057 | -0.034 | -0.019 | 0.070 | -0.095 | -0.044 | -0.102 | -0.017 | -0.045 | -0.021 | -0.025 | 0.032 | -0.083 |
| quality_score | 0.010 | 0.029 | 0.081 | 0.236 | 0.350 | 0.003 | 1 | 0.073 | 0.108 | 0.055 | 0.192 | 0.023 | 0.050 | -0.017 | -0.018 | -0.033 | -0.014 | 0.031 | 0.145 | -0.053 | -0.081 | -0.056 | -0.057 | -0.049 | -0.115 | -0.091 | -0.039 | 0.110 |
| loyalty | -0.022 | -0.024 | -0.857 | 0.128 | 0.004 | 0.043 | 0.073 | 1 | 0.090 | -0.077 | 0.076 | -0.041 | -0.053 | -0.010 | -0.013 | -0.013 | -0.021 | -0.019 | 0.068 | 0.033 | 0.074 | 0.016 | -0.005 | -0.020 | -0.004 | 0.017 | -0.017 | 0.018 |
| nps_score | -0.078 | 0.104 | 0.069 | 0.699 | 0.322 | 0.098 | 0.108 | 0.090 | 1 | 0.222 | 0.553 | 0.076 | 0.049 | -0.029 | -0.064 | -0.029 | 0.021 | -0.083 | 0.005 | 0.098 | 0.011 | -0.039 | -0.018 | -0.042 | -0.101 | -0.025 | 0.035 | 0.122 |
| purchased | 0.034 | 0.100 | 0.192 | 0.331 | 0.249 | 0.044 | 0.055 | -0.077 | 0.222 | 1 | 0.254 | 0.043 | 0.012 | 0.091 | -0.002 | -0.025 | -0.087 | 0.017 | 0.069 | < 0.001 | -0.016 | -0.047 | -0.027 | -0.050 | -0.044 | -0.039 | -0.026 | -0.022 |
| satisfaction_level | -0.048 | 0.085 | 0.110 | 0.749 | 0.395 | 0.097 | 0.192 | 0.076 | 0.553 | 0.254 | 1 | 0.011 | 0.006 | 0.029 | -0.022 | -0.049 | -0.045 | -0.064 | 0.064 | 0.087 | 0.054 | -0.011 | -0.029 | -0.053 | -0.092 | -0.004 | 0.021 | 0.025 |
| pre_score | 0.023 | -0.033 | 0.058 | 0.056 | 0.036 | 0.084 | 0.023 | -0.041 | 0.076 | 0.043 | 0.011 | 1 | 0.795 | 0.020 | 0.033 | 0.037 | -0.126 | -0.115 | -0.103 | -0.021 | -0.025 | -0.006 | -0.047 | -0.090 | -0.097 | -0.061 | 0.022 | -0.096 |
| post_score | 0.037 | -0.006 | 0.057 | 0.060 | 0.067 | 0.092 | 0.050 | -0.053 | 0.049 | 0.012 | 0.006 | 0.795 | 1 | 0.005 | -0.006 | -0.002 | -0.064 | -0.100 | -0.089 | -0.032 | -0.026 | -0.045 | -0.048 | -0.074 | -0.076 | -0.030 | 0.010 | -0.112 |
| measure_1 | -0.113 | -0.065 | -0.046 | -0.008 | 0.001 | 0.024 | -0.017 | -0.010 | -0.029 | 0.091 | 0.029 | 0.020 | 0.005 | 1 | 0.768 | 0.638 | -0.023 | 0.091 | 0.024 | -0.023 | -0.097 | -0.109 | -0.034 | -0.038 | -0.011 | -0.037 | -0.067 | -0.057 |
| measure_2 | -0.070 | -0.070 | -0.074 | -0.032 | -0.077 | 0.017 | -0.018 | -0.013 | -0.064 | -0.002 | -0.022 | 0.033 | -0.006 | 0.768 | 1 | 0.836 | 0.020 | 0.096 | 0.025 | -0.017 | -0.050 | -0.045 | -0.061 | -0.086 | -0.054 | -0.061 | -0.036 | -0.029 |
| measure_3 | -0.116 | -0.048 | -0.046 | -0.040 | -0.101 | 0.057 | -0.033 | -0.013 | -0.029 | -0.025 | -0.049 | 0.037 | -0.002 | 0.638 | 0.836 | 1 | 0.024 | 0.092 | 0.006 | -0.046 | -0.125 | -0.112 | -0.039 | -0.068 | -0.017 | -0.054 | -0.001 | -0.129 |
| use_before | 0.029 | -0.012 | -0.010 | 0.003 | 0.001 | -0.034 | -0.014 | -0.021 | 0.021 | -0.087 | -0.045 | -0.126 | -0.064 | -0.023 | 0.020 | 0.024 | 1 | 0.403 | 0.186 | 0.010 | -0.019 | -0.041 | 0.007 | -0.010 | 0.025 | -0.005 | 0.022 | 0.101 |
| use_after | -0.012 | 0.087 | -0.043 | -0.068 | -0.014 | -0.019 | 0.031 | -0.019 | -0.083 | 0.017 | -0.064 | -0.115 | -0.100 | 0.091 | 0.096 | 0.092 | 0.403 | 1 | 0.635 | -0.057 | 0.009 | -0.044 | -0.029 | -0.029 | -0.002 | -0.090 | 0.007 | -0.022 |
| use_followup | -0.073 | 0.095 | -0.060 | 0.048 | 0.068 | 0.070 | 0.145 | 0.068 | 0.005 | 0.069 | 0.064 | -0.103 | -0.089 | 0.024 | 0.025 | 0.006 | 0.186 | 0.635 | 1 | -0.015 | -0.040 | -0.007 | -0.045 | -0.052 | -0.024 | -0.036 | -0.004 | -0.007 |
| rater_1 | -0.027 | 0.038 | 0.049 | 0.061 | 0.062 | -0.095 | -0.053 | 0.033 | 0.098 | < 0.001 | 0.087 | -0.021 | -0.032 | -0.023 | -0.017 | -0.046 | 0.010 | -0.057 | -0.015 | 1 | 0.583 | 0.624 | 0.005 | 0.012 | -0.016 | -0.024 | 0.014 | 0.055 |
| rater_2 | < 0.001 | -0.056 | -0.026 | 0.062 | 0.010 | -0.044 | -0.081 | 0.074 | 0.011 | -0.016 | 0.054 | -0.025 | -0.026 | -0.097 | -0.050 | -0.125 | -0.019 | 0.009 | -0.040 | 0.583 | 1 | 0.628 | -0.015 | 0.023 | -0.023 | -0.029 | 0.024 | 0.002 |
| rater_3 | -0.070 | 0.002 | -0.003 | -0.024 | 0.022 | -0.102 | -0.056 | 0.016 | -0.039 | -0.047 | -0.011 | -0.006 | -0.045 | -0.109 | -0.045 | -0.112 | -0.041 | -0.044 | -0.007 | 0.624 | 0.628 | 1 | -0.063 | -0.036 | -0.088 | -0.103 | < 0.001 | 0.076 |
| price_too_cheap | -0.082 | 0.001 | 0.042 | 0.032 | 0.071 | -0.017 | -0.057 | -0.005 | -0.018 | -0.027 | -0.029 | -0.047 | -0.048 | -0.034 | -0.061 | -0.039 | 0.007 | -0.029 | -0.045 | 0.005 | -0.015 | -0.063 | 1 | 0.895 | 0.741 | 0.596 | 0.123 | -0.082 |
| price_cheap | -0.092 | 0.006 | 0.063 | 0.029 | 0.051 | -0.045 | -0.049 | -0.020 | -0.042 | -0.050 | -0.053 | -0.090 | -0.074 | -0.038 | -0.086 | -0.068 | -0.010 | -0.029 | -0.052 | 0.012 | 0.023 | -0.036 | 0.895 | 1 | 0.835 | 0.666 | 0.132 | -0.073 |
| price_expensive | -0.056 | 0.002 | 0.029 | -0.029 | 0.034 | -0.021 | -0.115 | -0.004 | -0.101 | -0.044 | -0.092 | -0.097 | -0.076 | -0.011 | -0.054 | -0.017 | 0.025 | -0.002 | -0.024 | -0.016 | -0.023 | -0.088 | 0.741 | 0.835 | 1 | 0.815 | 0.171 | -0.073 |
| price_too_expensive | -0.032 | -0.001 | -0.027 | -0.011 | 0.045 | -0.025 | -0.091 | 0.017 | -0.025 | -0.039 | -0.004 | -0.061 | -0.030 | -0.037 | -0.061 | -0.054 | -0.005 | -0.090 | -0.036 | -0.024 | -0.029 | -0.103 | 0.596 | 0.666 | 0.815 | 1 | 0.166 | -0.017 |
| feedback_score | 0.070 | 0.043 | -0.027 | 0.014 | 0.037 | 0.032 | -0.039 | -0.017 | 0.035 | -0.026 | 0.021 | 0.022 | 0.010 | -0.067 | -0.036 | -0.001 | 0.022 | 0.007 | -0.004 | 0.014 | 0.024 | < 0.001 | 0.123 | 0.132 | 0.171 | 0.166 | 1 | -0.062 |
| followup_rating | 0.039 | -0.133 | 0.014 | 0.077 | 0.060 | -0.083 | 0.110 | 0.018 | 0.122 | -0.022 | 0.025 | -0.096 | -0.112 | -0.057 | -0.029 | -0.129 | 0.101 | -0.022 | -0.007 | 0.055 | 0.002 | 0.076 | -0.082 | -0.073 | -0.073 | -0.017 | -0.062 | 1 |
Computation credits: scipy 1.18.0 · statsmodels 0.14.6 · scikit-learn 1.9.0 · numpy 2.5.1 · pandas 3.0.5 · semopy 2.3.11 · 89fc29a · Data seed: 20260914
How to report the result
Job satisfaction was positively related to organisational commitment (r = .62) and negatively to burnout (r = -.54), while overtime was negligibly related to commitment (r = -.05).
An example sentence close to APA style; the numbers are representative.
When you should not use it
- With no significance information in the table, a cell that looks high cannot be reported as a finding on its own; testing is the business of the pairwise correlation methods.
- The result does not state how many observations stand behind each cell, so the coefficients of a column with heavy missingness may rest on a far thinner base than the rest.
- The number of cells grows with the square of the number of variables, so in a matrix of dozens of columns some coefficients will be high purely by chance.
- Because no column selection is possible, the matrix always spans every numeric column and meaningless technical columns crowd the table.
- The coefficients establish no causation and cannot separate a third variable driving two columns together, a question that calls for a partial correlation.
- In data pooling distinct subgroups the matrix can mislead, since differences between group means can manufacture associations absent within each group.
What to use when the assumptions are not met
- Pearson CorrelationWhy: When you settle on one continuous pair and need the coefficient reported with its p value and observation count.
- Spearman Rank CorrelationWhy: When the pair you settled on is ordinal or the distributions are skewed; it works on ranks and reports significance.
- Partial CorrelationWhy: When you want to test whether a relationship seen in the matrix survives holding a third variable constant.
- Exploratory Factor Analysis (EFA)Why: When the question moves from item pairs to the dimensional structure beneath the items; the matrix itself is what that analysis feeds on.
Frequently asked questions
- Why are there no p values or stars in the matrix?
- By design this method returns coefficients only and runs no significance test. In a table like this hundreds of cells would be tested at once, so significance information reported wholesale would mislead more than it informs. Once you have settled on the pair that matters, running the pairwise correlation method gives you the coefficient together with its p value and observation count.
- A column I expected is missing from the matrix. What happened?
- Only columns read as numeric enter the matrix. A column left as text appears neither in the table nor in the list of columns in the result. The usual causes are a comma as the decimal separator, a unit written inside the cells, or a placeholder character in the empty ones. Correct the type on the Variable tab and run the analysis again.
- Which coefficient should I choose?
- If the columns are continuous measurements and the distributions are not badly skewed, Pearson is appropriate. For short ordinal scales such as Likert items, for clear skew, or where extreme values are present, Spearman is the usual preference. Kendall behaves more stably in small samples with many tied values. Switching the method and running the matrix again is a practical way to see how sensitive the coefficients are to that choice.
- How do missing values affect the matrix?
- Each cell is computed from the rows with a valid value in both of its columns, and a row left blank in some other column has no bearing on it. The consequence is that different cells of the matrix rest on subsamples of different sizes. Since the result carries no per-cell observation count, it is worth running the missing value analysis first, so you know where the gaps are and how large they are before you read the table.
References
- Stevens, J. P. (2009). Applied Multivariate Statistics for the Social Sciences
- Tabachnick, B. G., & Fidell, L. S. (2019). Using Multivariate Statistics
- Benjamini, Y., & Hochberg, Y. (1995). Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing
- pandas.DataFrame.corr documentation
Try it with your own data
The free plan includes 50 analysis runs a month and needs no card.