FCS (fully conditional specification) method is a relatively new statistical procedure for imputing missing data. Originally, the MCMC approach was used but this method is only appropriate for continuous, normal data. I do not understand the mathematical statistics behind FCS but according to SAS Help, this is the method recommended when you have data with an arbitrary missing pattern. The method allows you to organize your variables according to whether they are continuous, ordinal, or nominal. It uses the regression model to impute continuous variables, logistic regress to impute ordinal variables, and the discriminant function to impute nominal variables. Best of all, it can do all this in one step. The downside is that the model is prone to crashing. I agree that one should not impute variables that are linear combination of other effects. My issue is identifying them and then dropping them. PROC CORR only works for continuous data. What SAS does not say is whether the linear combination is due to the continuous variables, ordinal variable, nominal variables, or some combination there of. Since FCS does everything in one step, my bet is on a combination of all the variables. Hence, in order to confirm that a variable is a linear combination of other effects, I would need to run a single procedure that can use continuous, ordinal, and discrete predictors. I am not sure which procedure can do this. It also feels like a lot of work...but that is a side point. I am currently working on dropping the variables that SAS indicates are linear effects. However, I am missing something in my macro code. I am getting an error for the following code. SAS is treating i in my %Let statement as a character rather than reading the numeric value. I am sure there is a simple function that will fix this but I cannot think of it. Any suggestions? Cristian %Macro ExcludeVars; data _NULL_; array Var{*} &Continuous ; array Ex{*} &Exclude; %Let _drop_= ; do i=1 to dim(Ex); if Ex(i) in Var then %Let _drop_=&_drop_ %sysfunc(scan(&Exclude,i)); end; %put &=_drop_; run; %Mend ExcludeVars; %ExcludeVars;
... View more