# Correlation above 1 between second-order and first-order latent variable [closed]

So I ran CFA on an exhaustion measure comprising of three facets which were specified as first-order latent variables. When I added a secon-order latent variable to the model the correlation between one of the first-order factor and second-order factor exceeded 1. I do not know how to proceed now. If the correlation had occured only between two the first-order latent variables this could have been adress more straightforwardly. But I really need there to be a second-order factor.

• You will have to explain how you calculated a "correlation [which] ... exceeded 1". Most correlation coefficients (Pearson, Spearman) cannot exceed 1. – user20637 Jan 19 at 20:36
• It is not calculated, but estimated because it is between latent variables in a SEM framework. – Sandy Jan 19 at 20:59
• So explain how it was "estimated". The same comment applies, a correlation coefficient cannot exceed 1. – user20637 Jan 19 at 21:15
• @user20637 - it's a maximum likelihood estimator, that estimates a whole bunch of model parameters simultaneously. When the model has been fit, you can calculate the implied correlation between variables in the model - one of these implied correlations is >1, usually this means that the model is misspecified. – Jeremy Miles Jan 22 at 1:09

welcome to CrossValidated.

This is usually a sign that your model is wrong in some way.

The estimator is trying to maximize the overall fit of the model - if it can do that by pushing a parameter past a boundary, it will do that.

Here's a simple example: Three variables, A, B and C.

A  1
B  0.9   1
C  0.8   0.1   1
A   B     C


And the model we want to fit looks like:

 A -> B -> C


What will the model estimates be:

A -> B: 0.9 (matches the data) B -> C: 0.1 (matches the data)

Then the implied correlation between A and C is 0.9 * 0.1 = 0.09 - completely wrong.

It can try to fix this in two ways. It can raise the estimate for the effect between B and C - but this means that the second parameter doesn't match the data. So it tries to spread the error around - it makes both B -> C higher AND A -> B higher. If that pushes A -> B over 1.00, well, it doesn't care, it just cares about the overall global fit.

A parameter out of bounds like that is the model's way of telling you that it is wrong.