I am using CFA (confirmatory factor analysis) to create a measurement model of social capital that is to be used in a Cox regression. Because of missing data I first impute the incomplete data by MICE in R before I use CFA to make the measurement model. Afterwards, I extract the factor scores from the CFA which I will use in a Cox regression. So far so good.

However, I have several interactions between the computed factor scores for social capital and different variables e.g. gender that I would like to analyze as well.

Now here is my dilemma: One of the ground rules in multiple imputation is that ALL the variables that are in the statistical model HAVE to be in the imputation model including interaction terms. Otherwise the results can be biased towards 0.

Since I don't have the factor scores from the CFA until after the first imputation I can't create the interaction terms to be included in the first imputation.

Since this could significantly bias my results I have chosen to extract the factor scores for my social capital measure and place it in my incomplete (unimputed) dataset where I now can create my interaction terms and impute the data again. I then impute the data based on the same seed, number of datasets and iterations as before. The variables are also the same except of course for my factor score for social capital and the different interaction terms.

My question is as follows. Is this the correct way to handle the dilemma that I don't have my factor scores until after the imputation and therefore can't include the interactions that is to be used in the Cox regression?


2 Answers 2


I'm sure that you have read the JSS paper on mice package (van Buren & Groothuis-Oudshoorn, 2011). However, I thought that maybe you've missed the following two passages, both or one of which might be the key to the solution you're seeking.

First passage (section "Advice on predictor selection", p. 23; emphasis mine):

Most predictors used for imputation are incomplete themselves. In principle, one could apply the above modeling steps for each incomplete predictor in turn, but this may lead to a cascade of auxiliary imputation problems. In doing so, one runs the risk that every variable needs to be included after all. In practice, there is often a small set of key variables, for which imputations are needed, which suggests that steps 1 through 4 are to be performed for key variables only. This was the approach taken in van Buuren et al. (1999), but it may miss important predictors of predictors. A safer and more efficient, though more laborious, strategy is to perform the modeling steps also for the predictors of predictors of key variables. This is done in Oudshoorn et al. (1999). We expect that it is rarely necessary to go beyond predictors of predictors.

Second passage (section "Interaction terms", p. 29; emphasis mine):

In general imputations should be conditional upon the interactions of interest. However, interaction terms will be incomplete if the variables that make up the interaction are incomplete. It is straightforward to solve this problem using passive imputation.


van Buuren, S., & Groothuis-Oudshoorn, K. (2011). mice: Multivariate imputation by chained equations in R. Journal of Statistical Software, 45(3). Retrieved from http://www.jstatsoft.org/v45/i03/paper


Instead of using CFA and then feeding the results into a regression, you should consider setting up a full structural equation model... although frankly I don't know how to marry that with a proper Cox regression.

One possible approach is to create the factor score as a variable that is all missing in the original data. Then set up your imputation using the CFA equations (outcomes are conditionally independent given the factor score) and stick Cox regression in the middle, as well. This all assumes that your CFA model is correctly specified (fits well).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.