I currently have a problem with PROC MI using a data set with severe missingness.
In my dataset, there are 21 variables have high fraction of missingness. Only 27% of the all the subjects responsed those items. I am running PROC MI to impute the missingness, however I got the warning MSG as follows:
" A covariance matrix computed in the EM process is singular. The linearly dependent variables for the observed data are excluded from the likelihood function. This may result in an unexpected change in the likelihood between iterations prior to the final convergence."
I tried to increase the number of iteration of EM algorithm to 5000 as well as set SINGULAR=1E-12. The model still does not converge.
I checked the correlation between all the variables. The highest correlation coefficient I got was around .60 .
I am really interested in those 21 variables with severe missingness. Is there any procedure I could take to handle the singularity problem? I really appreciate any suggestion from you.
The SAS code is as attached:
proc mi data = XXX out= XXX_comp seed = 12344 nimpute = 5 SINGULAR=1E-12;
EM maxiter = 5000;
var v11 - v78 ; (variable names deleted here)
run;
quit;
LOG:
WARNING: A covariance matrix computed in the EM process is singular. The linearly dependent variables for the observed data are excluded from the likelihood function. This may result in an unexpected change in the likelihood between iterations prior to the final convergence.
NOTE: The EM algorithm (MLE) converges in 2965 iterations.
WARNING: The EM algorithm (posterior mode) fails to converge after 200 iterations. You can increase the number of iterations (MAXITER= option) or increase the value of the convergence criterion (CONVERGE= option).
WARNING: The initial covariance matrix for MCMC is singular. You can use a PRIOR= option to stabilize the inference.
WARNING: The posterior covariance matrix is singular. Imputed values for some variables may be fixed.
NOTE: The data set XXX_COMP has 2770 observations and 79 variables.
NOTE: PROCEDURE MI used (Total process time):
real time 17:57.00
cpu time 17:56.92
quit;