options ls=79 ps=50; /* read data */ data dat; infile 'leprosy.dat' firstobs=2; input drug $ before after; proc glm; /* before and after by drug */ class drug; model before after = drug; means drug; proc glm data=dat; /* parallel lines */ class drug; model after = before drug; lsmeans drug / stderr pdiff; output out=lepfit p=pafter r=rafter; proc plot; /* scatter plot with lines */ plot after*before=drug pafter*before='*' / overlay; plot rafter*pafter=drug; /* diagnostic plot of residuals */ proc glm data=dat; /* partial plot adjusted for drug */ class drug; model after = drug; output out=drug r=rafter; proc glm; model rafter = before; output out=parta p=prafter; proc plot data=parta; plot rafter*before=drug prafter*before='*' / overlay; proc glm data=dat; /* partial plot adjusted for before */ class drug; model after = before; output out=before r=rafter p=pafter; proc glm; class drug pafter; model rafter = drug; output out=partb p=mrafter; proc plot; plot rafter*pafter=drug mrafter*pafter='*' / overlay; proc glm data=dat; /* sequential tests */ class drug; model after = drug before / ss1; proc glm data=dat; class drug; model after = before drug / ss1; proc glm data=dat; /* adjusted tests */ class drug; model after = before drug / ss3; proc glm data=dat; /* different slopes by factor */ class drug; model after = before * drug; output out=lepifit p=pafter r=rafter; proc plot; plot after*before=drug pafter*before='*'; proc glm data=lepfit; /* check after parallel slope fit */ class drug; model rafter = pafter * drug; output out=leprfit r=rrafter p=prafter; proc plot; plot rafter*pafter=drug prafter*pafter='*' / overlay;