BookmarkSubscribeRSS Feed
kristiepauly
Obsidian | Level 7

Hello All,

I am having difficulty with an interaction plot.  I am trying to see if there is a difference in the change in pulmonary function in people with diabetes vs those without over, a 10 year time period.  I wrote this to calculate the change.

data working4;
	set working3; 
	change_fev1pp = fev1pp_Post_p3 - fev1pp_Post_p1;
	change_fev1_FVC = fev1_FVC_post_p3 - Fev1_FVC_post_p1;
	run;

I used proc glm to give me the type III table and the interaction plot for change in fev1pp. 

proc glm data=working4;
	class diabetes_P1(ref='No') finalgold_P1 (ref='GOLD 0');
	model change_fev1pp = diabetes_P1 finalgold_p1 diabetes_P1*finalgold_p1;
	lsmeans diabetes_P1 finalgold_p1 diabetes_P1*finalgold_p1 / pdiff;
	format finalgold_p1 baseline_gold_stage. diabetes_P1 diabetes_baseline.;
	run;

I get the type III table and an interaction plot.   

kristiepauly_0-1713740240662.png

I need this same output but after I adjust for several variables (age, gender, bmi, high bp, high cholesterol, corticosteroid use, smoking status). I first tried to do this using Proc glm

proc glm data=working4;
	class diabetes_P1(ref='No') finalgold_P1(ref='GOLD 0') Gender(ref='1') BMI_P1(ref='Healthy')
	highbloodpres_P1(ref='No') highcholest_P1(ref='No')
  		cortsterinhal_P1(ref='No') cortsteroral_P1(ref='No') smokcignow_P1(ref='No');
	model change_fev1pp = diabetes_P1 finalgold_P1 diabetes_P1*finalgold_P1
	 BMI_P1 highbloodpres_P1 highcholest_P1 age_P1
  		cortsterinhal_P1 cortsteroral_P1 smokcignow_P1 gender;
	lsmeans diabetes_P1 finalgold_p1 diabetes_P1*finalgold_p1 / pdiff;
	format finalgold_P1 final_gold_stage. diabetes_P1 diabetes_final. BMI_P1 
  		BMI_group. highbloodpres_P1 highbloodpres_group. highcholest_P1 highcholest_group. smokcignow_P1 smokcignow_group.
  		cortsterinhal_P1 cortsterinhal_group. cortsteroral_P1 cortsteroral_group.;
	run;

and I get the type III table but not the interaction plot. Is this interaction plot not possible when including variables I'm adjusting for or did I do it wrong?  Is there a better visual representation to show the change in fev1pp by GOLD stage over 10 years time in people with diabetes vs without? 

 

I also tried to adjust for the variables in proc logistic, but that wasn't right either. 

 

proc logistic data=working4;
  	class diabetes_P1 (ref ='No') finalgold_P1 (ref='GOLD 0') race (ref='1') Gender(ref='1') BMI_P3(ref='Healthy')
	highbloodpres_P3(ref='No') highcholest_P3(ref='No') 
  		cortsterinhal_P3(ref='No') cortsteroral_P3(ref='No') smokcignow_P3(ref='No');
  	model change_fev1pp = diabetes_P1 finalgold_p1 diabetes_P1*finalgold_p1
  		age_P3  BMI_P3 highbloodpres_P3 highcholest_P3
  		cortsterinhal_P3 cortsteroral_P3 smokcignow_P3 gender/ link=glogit;
  		lsmeans diabetes_P1 finalgold_p1 diabetes_P1*finalgold_p1 / pdiff;
  	format finalgold_p1 final_gold_stage. diabetes_P1 diabetes_baseline. BMI_P3 
  		BMI_group. highbloodpres_P3 highbloodpres_group. highcholest_P3 highcholest_group. smokcignow_P3 smokcignow_group.
  		cortsterinhal_P3 cortsterinhal_group. cortsteroral_P3 cortsteroral_group. finalgold_P3 Baseline_GOLD_Stage.;
run;

I get this error.

 

 ERROR: Computations are terminated because the number of response levels, 614, exceeds MAXRESPONSELEVELS=100.
 NOTE: The SAS System stopped processing this step because of errors.
 NOTE: There were 2864 observations read from the data set WORK.WORKING4.
 NOTE: PROCEDURE LOGISTIC used (Total process time):
       real time           0.19 seconds
       user cpu time       0.17 seconds
       system cpu time     0.02 seconds
       memory              33575.15k
       OS Memory           61600.00k
       Timestamp           04/21/2024 10:06:27 PM
       Step Count                        525  Switch Count  0
       Page Faults                       0
       Page Reclaims                     8318
       Page Swaps                        0
       Voluntary Context Switches        0
       Involuntary Context Switches      0
       Block Input Operations            0
       Block Output Operations           40
       
 81         
 82         OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

Thanks.

1 REPLY 1

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 5120 views
  • 1 like
  • 2 in conversation