I’m working on a Confirmatory Factor Analysis for the Theory of Planned Behaviour using R. My model has 4 factors: Attitude, Subjective Norm, Perceived Behavioral Control, and Intention. Each factor is split into inverted and non-inverted items.
My dataset has 75 participants who rated items on a 1-7 scale. When I run the categorical part of the analysis, I get a warning about the variance-covariance matrix not being positive definite.
Here’s a simplified version of my code:
tpb_model <- '
Attitude =~ att1 + att2 + att3
SubNorm =~ sn1 + sn2 + sn3
PBC =~ pbc1 + pbc2 + pbc3
Intention =~ int1 + int2 + int3
'
fit <- cfa(tpb_model, data = my_data, ordered = TRUE)
What could be causing this issue? Are there any solutions or workarounds? I’m really stuck and would appreciate any help!
hey melody, i’ve had this problem too. it’s a pain! have u tried reducing ur model complexity? maybe combine some factors or drop a few items. also, check ur data for weird outliers or super high correlations between items. that can mess things up. sometimes just eyeballing the correlation matrix helps spot issues. good luck with ur analysis!
The non-positive definite variance-covariance matrix issue often stems from model misspecification or data problems. Given your sample size of 75 participants for a model with 12 items and 4 factors, you might be overparameterizing. This can lead to unstable estimates.
Consider reducing model complexity by combining similar factors or removing items with low factor loadings. Alternatively, explore using parcels instead of individual items to decrease the number of parameters estimated.
Check for extreme correlations between items, which could indicate redundancy. Examine your data for outliers or non-normal distributions, as these can also contribute to estimation problems.
If these steps don’t resolve the issue, you might need to collect more data or revisit your theoretical model. Remember, CFA is sensitive to sample size, and general guidelines suggest at least 5-10 participants per parameter for stable estimates.
Hey there Melody_Cheerful! 
I’ve run into similar issues with CFA before, and it can be super frustrating. Have you checked for multicollinearity among your variables? Sometimes when items are too highly correlated, it can lead to this non-positive definite matrix problem.
Another thing to consider - how’s your sample size looking? With 75 participants and quite a few items, you might be pushing the limits a bit. CFA can get finicky with smaller samples.
Just brainstorming here, but have you thought about maybe simplifying your model a bit? Sometimes combining some factors or dropping problematic items can help.
Oh, and random thought - have you looked at your correlation matrix? Sometimes eyeballing that can give you clues about what might be causing issues.
What do you think? Have you tried any of these approaches yet? I’m really curious to hear more about your project and what you’ve tried so far!