Hi, I am working with a data set that contains many variables that I want to use to impute missing values (arbitrary missing pattern), most of which have missing values. The majority of my variables are discrete (some nominal and some ordinal). I know I need to use the FCS dscrim and logistic functions within proc mi, but I am unsure of the syntax when imputing multiple variables, some of which are also are being imputed. Since the FCS function is so new I am having trouble finding examples of code online. I was wondering if anyone has experience using this command and could give me some advice. Here are three simplified sample codes, one of which may be close to correct: note on variables: bmi is continuous, mamgp3 is ordinal, agegp is ordinal (no missing values), treat is nominal, and rhistogp is nominal, the variables are in the var statement in order of least missing values to most missing values. Format 1: PROC MI DATA=complete OUT=complete_mi NIMPUTE=10 SEED=9455; CLASS mamgp agegp treat rhistogp; FCS logistic(agegp) reg(bmi) logistic(mamgp) discrim(treat) discrim(rhistogp) ; VAR agegp bmi mamgp treat rhistogp; RUN; Format 2 PROC MI DATA=complete OUT=complete_mi NIMPUTE=10 SEED=9455; CLASS mamgp agegp treat rhistogp; FCS reg(bmi = agegp mamgp treat rhistogp) ; FCS logistic(agegp = mamgp bmi treat rhistogp) ; FCS logistic(mamgp = agegp bmi treat rhistogp) ; FCS discrim(treat = agegp bmi mamgp rhistogp) ; FCS discrim(rhistogp = agegp bmi mamgp treat) ; VAR agegp bmi mamgp treat rhistogp; RUN; Format 3: For this one I turned the nominal variables into binary dummy variables so that I could include them in the fcs logistic (does that make sense?) PROC MI DATA=complete OUT=complete_mi NIMPUTE=10 SEED=9455; CLASS mamgp agegp treat1 treat2 treat3 rhistogp1 rhistogp2; FCS reg(bmi = agegp mamgp treat1 treat2 treat3 rhistogp1 rhistogp2) ; FCS logistic(mamgp = agegp bmi treat1 treat2 treat3 rhistogp1 rhistogp2) ; FCS logistic(agegp = mamgp bmi treat1 treat2 treat3 rhistogp1 rhistogp2) ; FCS logistic(treat1 = agegp bmi mamgp treat2 treat3 rhistogp1 rhistogp2) ; FCS logistic(treat2 = agegp bmi mamgp treat1 treat3 rhistogp1 rhistogp2) ; FCS logistic(treat3 = agegp bmi mamgp treat1 treat2 rhistogp1 rhistogp2) ; FCS logistic(rhistogp1 = agegp bmi mamgp treat1 treat2 treat3 rhistogp2) ; FCS logistic(rhistogp2 = agegp bmi mamgp treat1 treat2 treat3 rhistogp1) ; VAR agegp bmi mamgp treat1 treat2 treat3 rhistogp1 rhistogp2; RUN; When I run "Format 1" I get these warnings in the log: WARNING: The covariates are not specified in an FCS discriminant method for variable treat, only remaining continuous variables will be used as covariates. WARNING: The covariates are not specified in an FCS discriminant method for variable rhistogp, only remaining continuous variables will be used as covariates. When I *try* to run "Format 2" I get this error in the log: ERROR: The class variables cannot be used as covariates in an FCS discriminant method. When I ran "Format 3" I got approximately 800 warnings for each of the dummy variables, example: WARNING: The maximum likelihood estimates for the logistic regression with observed observations may not exist for variable rhistogp2. The posterior predictive distribution of the parameters used in the imputation process is based on the maximum likelihood estimates in the last maximum likelihood iteration. Does Format 1 take the other class variables into account when I impute a class variable does it take into account class variables when imputing the continuous variable? If not, is there a way to do this? Thank you! Let me know if you require additional information. Message was edited by: Leanne Shulman
... View more