BookmarkSubscribeRSS Feed
tianwang
Calcite | Level 5

Hi

I'm am working with a dataset that contains many variables that I want to use to impute missing values (arbitrary missing pattern) for 4 categorical variables: var1, var2, var3, var4, all these 4 variables have three levels (0,1,2), 90% of which have missing values. I use the FCS and logistic functions within PROC MI, but I run the proportional odds assumption test, the score test shows proportion odds assumption is violated (P<0.001) for var1, var2 and var3. Thus I am not sure what to do next, should I add UNEQUALSLOPES option? If so, where/how should I add? Since the FCS function is so new I am having trouble finding examples of code online for this scenario. I was wondering if anyone has experience using this command and could give me some advice. My codes are:

/*1st step: missing data pattern*/

PROC MI NIPUTE=0 DATA=dsn SIMPLE;

VAR

var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 var11 var12 var13 var14 var15 var16 var17 var18 var19 var20;

RUN;

/*2nd step: multiple imputation*/

PROC MI DATA=dsn NIPUTE=3 SEED=20160413 OUT=dsn2;

CLASS

var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 var11 var12 var13 var14 var15 var16 var17 var18 var19 var20

FCS  NBITER=20

LOGISTIC(var1/details) LOGISTIC(var2/details) LOGISTIC(var3/details) LOGISTIC(var4/details);

VAR

var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 var11 var12 var13 var14 var15 var16 var17 var18 var19 var20;

RUN;

 

1 REPLY 1
ejay0503
Obsidian | Level 7

I am currently running exactly the same model now. You can add the unequalslopes at the end of the model statement. This is an example:

 

      proc logistic data=dent;
         class center baseline trt / param=ref order=data;
         model resp(descending) = center baseline trt / unequalslopes;

You have to add the test statements though as like below:

 proc logistic data=dent;
         class center baseline trt / param=ref order=data;
         model resp(descending)=center baseline trt / unequalslopes=trt;
         TRT_RESP4:test trtacl_4,trttl_4,trtach_4,trtth_4;
         TRT_RESP3:test trtacl_3,trttl_3,trtach_3,trtth_3;
         TRT_RESP2:test trtacl_2,trttl_2,trtach_2,trtth_2;
         TRT_RESP1:test trtacl_1,trttl_1,trtach_1,trtth_1;
run;

 

Please read the SAS documentation: http://support.sas.com/kb/22/954.html

I found really helpful. It gives us step-by-step, easy explanations for the assumption test. 

 

Good luck. 

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

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
  • 1 reply
  • 1049 views
  • 0 likes
  • 2 in conversation