options ls=80 nodate pageno=1 NOFMTERR; * Class21_10H.sas PubH 6470 ; ************ Family Economic data ***************; * family_economic_data = import of Family Economic Data.xls ; Proc Print data=family_economic_data(rename=(group=cohort)); proc sort data=family_economic_data; BY family_id cohort; Proc Transpose data=family_economic_data out=family_econ_wide prefix=income_; ID year; VAR income; BY family_id cohort; run; Proc SGpanel data=family_economic_data; PanelBy cohort / columns=2; series x=year y=income / group=family_id LINEATTRS= (pattern=1 color="black"); run; ODS graphics on; Proc Corr data=family_econ_wide plots=matrix; var income_1990-income_1995; run; ODS graphics off; run; Proc Mixed data=family_economic_data; class family_id year cohort; model income =year cohort year*cohort; repeated year / subject=family_id r rcorr; lsmeans year*cohort / diff; run; ************ Alzheimers - Lecithin data (Der & Everett) ***************; * alzheimer is imported from "Alzheimer Trial.xls" ; ODS graphics on; Proc Corr data=alzheimer plots=matrix; var score1-score5; run; ODS graphics off; data alz_long; * make long form; set alzheimer; array sc[5] score1-score5; do j=1 to 5; visit = j; score = sc[j]; keep idno visit score lecithin; output; end; Proc SGpanel data=alz_long; PanelBy lecithin / columns=2; series x=visit y=score / group=idno LINEATTRS= (pattern=1 color="black"); proc mixed data=alz_long; class lecithin visit idno ; model score=lecithin visit lecithin*visit / solution; repeated / subject=idno type=cs r rcorr ; lsmeans lecithin*visit / diff slice=visit; run; ods graphics on; * make interaction plot; ods select lsmeans meanplot; proc glimmix data=alz_long; class idno visit lecithin; model score =visit lecithin visit*lecithin; random intercept / subject=idno ; lsmeans visit*lecithin / alpha=.32 plots=(meanplot(cl join sliceby=lecithin)); run; ods graphics off; proc mixed data=alz_long; class lecithin visit idno ; model score=lecithin visit lecithin*visit / solution; random intercept / subject=idno v vcorr solution; lsmeans lecithin*visit / slice=visit; ODS output SolutionR = random_intercepts; proc print data=random_intercepts (obs=20); run; ODS graphics on; Proc Univariate noprint data=random_intercepts; var estimate; histogram estimate/ endpoints = -10 to 10 by 1; inset q1 median mean q3 / position=NW noframe; run; ODS graphics off; run; quit;