BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Walternate
Obsidian | Level 7

Hello,

I am trying to run a logistic regression and several of my observations were automatically deleted because they had missing values for the explanatory variables. Is there a way to avoid this?

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Lneri
Calcite | Level 5

To avoid loosing cases when independent variables are missing you can try creating categorical variables and add missing category for that variable.

For example, if you have 200 cases and 20 are missing for a variable with 2 levels A (n=100) and B (n=80), you can create a new variable with levels A (n=100), B (n=20), and Missing (n=20). This way you do not need to impute (prone to bias), and you make full use of your sample. Make sure that you do not set as the reference category the "Missing" level. This way, you also adjust for missingness in that particular variable (missing values might be non-random).

For missing values in the dependent....there's nothing easy to do in my opinion (I once used a sort of propensity score estimating the likelihood of being missing in the dependent variables for each case and then used it as a covariate in my logistic regression).

View solution in original post

7 REPLIES 7
Reeza
Super User

What would you expect SAS to do with the missing values?

You could impute them but that has issues of its own.

Walternate
Obsidian | Level 7

I'd like SAS to ignore the missing values instead of deleting a participant for having a missing value for a predictive variable.

I've lost about 20% of my participants in the analysis because they  have missing values for some (non-outcome) variable.

AncaTilea
Pyrite | Level 9

Hi.

You could run

proc mi data = your_data;

    var your_list_of_variables;

Ods Output MissPattern = miss_pattern;

run;

to get the pattern of missingness in your data. So then, you could run your model without the variable that has lots of missing (if it's not the most important predictor)

Or you could impute.

Lneri
Calcite | Level 5

To avoid loosing cases when independent variables are missing you can try creating categorical variables and add missing category for that variable.

For example, if you have 200 cases and 20 are missing for a variable with 2 levels A (n=100) and B (n=80), you can create a new variable with levels A (n=100), B (n=20), and Missing (n=20). This way you do not need to impute (prone to bias), and you make full use of your sample. Make sure that you do not set as the reference category the "Missing" level. This way, you also adjust for missingness in that particular variable (missing values might be non-random).

For missing values in the dependent....there's nothing easy to do in my opinion (I once used a sort of propensity score estimating the likelihood of being missing in the dependent variables for each case and then used it as a covariate in my logistic regression).

firefly
Calcite | Level 5

Would you mind explaining the new variable with the levels A(n=100), B(n=20?? or 80??), and missing(n=20)? Do I replace the new variable for the original variable or I use both of them in my regression? Also, if I'm doing multinomial logistic regression, can I use this method for more than more variables? Thanks many in advance.

Rick_SAS
SAS Super FREQ

@Lneri's suggestion is equivalent to creating a "missing level" for a categorical variable. You don't need to create the dummy variables manually as Lneri suggests. You can use the MISSING option on the CLASS statement in PROC LOGISTIC.  This treats the missing values in classification variables as valid values.

PGStats
Opal | Level 21

Yes. But it's not simple. It's called multiple imputation. It involves replacing your dataset with multiple datasets where the missing values are replaced with random values and then combining the multiple parameter estimates. The MI and MIANALYZE procedures do just that.

hth

PG

PG

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 21415 views
  • 9 likes
  • 7 in conversation