OPTIONS NOnumber NOdate NOcenter FormDlim=' ' PageSize=MAX LineSize=MAX;
TITLE; ODS TRACE OFF; ODS LISTING CLOSE;
%MACRO FitTest(FitFewer=,FitMore=);
DATA &FitFewer.; LENGTH Name $30.; SET &FitFewer.; Name="&FitFewer."; RUN;
DATA &FitMore.; LENGTH Name $30.; SET &FitMore.; Name="&FitMore."; RUN;
DATA FitCompare; LENGTH Name $30.; SET &FitFewer. &FitMore.; RUN;
DATA FitCompare; SET FitCompare; DevDiff=Lag1(Neg2LogLike)-Neg2LogLike;
DFdiff=Parms-LAG1(Parms); Pvalue=1-PROBCHI(DevDiff,DFdiff);
DROP AICC HQIC CAIC; RUN;
TITLE9 "Likelihood Ratio Test for &FitFewer. vs. &FitMore.";
PROC PRINT NOOBS DATA=FitCompare; RUN; TITLE9;
%MEND FitTest;
%MACRO TotalR2(DV=,PredFewer=,PredMore=);
PROC CORR NOPRINT NOSIMPLE DATA=&PredFewer. OUTP=CorrFewer; VAR pred &DV.; RUN;
PROC CORR NOPRINT NOSIMPLE DATA=&PredMore. OUTP=CorrMore; VAR pred &DV.; RUN;
DATA CorrFewer; LENGTH Name $30.; SET CorrFewer; Name="&PredFewer."; RUN;
DATA CorrMore; LENGTH Name $30.; SET CorrMore; Name="&PredMore."; RUN;
DATA CorrCompare; LENGTH Name $30.; SET CorrFewer CorrMore;
PredCorr=Pred; TotalR2=PredCorr*PredCorr;
IF _NAME_="Pred" OR MISSING(_NAME_)=1 THEN DELETE; DROP Pred; RUN;
DATA CorrCompare; SET CorrCompare; TotalR2Diff=TotalR2-LAG1(TotalR2);
KEEP Name PredCorr TotalR2 TotalR2Diff; RUN;
TITLE9 "Total R2 (% Reduction) for &PredFewer. vs. &PredMore.";
PROC PRINT NOOBS DATA=CorrCompare; RUN; TITLE9;
%MEND TotalR2;
%MACRO PseudoR2(NCov=,CovFewer=,CovMore=);
DATA &CovFewer.; LENGTH Name $30.; SET &CovFewer.; Name="&CovFewer."; RUN;
DATA &CovMore.; LENGTH Name $30.; SET &CovMore.; Name="&CovMore."; RUN;
DATA CovCompare; LENGTH Name $30.; SET &CovFewer. &CovMore.; RUN;
DATA CovCompare; SET CovCompare;
PseudoR2=(LAG&Ncov.(Estimate)-Estimate)/LAG&Ncov.(Estimate); RUN;
DATA CovCompare; SET CovCompare;
IF CovParm IN("UN(2,1)","UN(3,1)","UN(4,1)","UN(3,2)","UN(4,2)","UN(4,3)")
THEN DELETE; RUN;
TITLE9 "PsuedoR2 (% Reduction) for &CovFewer. vs. &CovMore.";
PROC PRINT NOOBS DATA=CovCompare; RUN; TITLE9;
%MEND PseudoR2;
%LET filesave= C:\Dropbox\PilesOfVariance\Chapter11a\SAS;
LIBNAME filesave "&filesave.";
DATA work.Chapter11amultiv; SET filesave.SAS_Chapter11a;
SMclose = MEAN(OF close_wave1 close_wave2 close_wave3);
SMvictim = MEAN(OF victim_wave1 victim_wave2 victim_wave3);
LABEL
SMclose = "SMclose: Student Mean Closeness"
SMvictim = "SMvictim: Student Mean Victimization";
RUN;
PROC SORT DATA=work.Chapter11amultiv; BY ClassID StudentID; RUN;
PROC MEANS NOPRINT DATA=work.Chapter11amultiv; BY ClassID classsize grade;
VAR SMclose SMvictim girl emosup_wave1 emosup_wave2 emosup_wave3;
OUTPUT OUT=work.ClassMeans11a
MEAN(SMclose SMvictim girl emosup_wave1 emosup_wave2 emosup_wave3)
= CMclose CMvictim CMgirl CMemosup_wave1 CMemosup_wave2 CMemosup_wave3;
RUN;
DATA work.ClassMeans11a; SET work.ClassMeans11a;
CMemosup = MEAN(OF CMemosup_wave1 CMemosup_wave2 CMemosup_wave3);
LABEL
CMemosup = "CMemosup: Class Mean Emotional Support"
CMclose = "CMclose: Class Mean Student-Teacher Closeness"
CMvictim = "CMvictim3: Class Mean Student-Perceived Victimization"
CMgirl = "CMgirl: Percentage Girls in Class";
size23 = classsize - 23;
IF grade=3 THEN grade35=0;
IF grade=5 THEN grade35=1;
CMgirl50 = CMgirl - .50;
CMemosup5 = CMemosup - 5;
CMvictim3 = CMvictim - 3;
LABEL
size23 = "size23: # Students in Class (0=23)"
grade35 = "grade35: Grade 3=0, Grade5=1"
CMgirl50 = "CMgirl50: Percentage Girls in Class (0=.50)"
CMemosup5 = "CMemosup5: Class Mean Emotional Support (0=5)"
CMvictim3 = "CMvictim3: Class Mean Student-Perceived Victimization (0=3)";
RUN;
DATA work.Chapter11amultiv; MERGE work.Chapter11amultiv work.ClassMeans11a;
BY ClassID classsize grade;
DROP _TYPE_ _FREQ_ emosup_wave1-emosup_wave3;
WCclose = SMclose - CMclose;
SMvictim3 = SMvictim - 3;
WCvictim = SMvictim - CMvictim;
LABEL
WCclose = "WCclose: Within-Class Student-Teacher Closeness (0=CM)"
SMvictim3 = "SMvictim3: Student Mean Student-Perceived Victimization (0=3)"
WCvictim = "WCvictim: Within-Class Student-Perceived Victimization (0=CM)";
RUN;
DATA work.Chapter11a; SET work.Chapter11amultiv;
wave=1; emosup=CMemosup_wave1; victim=victim_wave1; close=close_wave1; OUTPUT;
wave=2; emosup=CMemosup_wave2; victim=victim_wave2; close=close_wave2; OUTPUT;
wave=3; emosup=CMemosup_wave3; victim=victim_wave3; close=close_wave3; OUTPUT;
DROP CMemosup_wave1-CMemosup_wave3 victim_wave1-victim_wave3 close_wave1-close_wave3;
LABEL
wave = "wave: Wave of Study (1-3)"
emosup = "emosup: Time-Varying Class Emotional Support"
victim = "victim: Time-Varying Student-Perceived Victimization"
close = "close: Time-Varying Student-Teacher Closeness";
RUN;
PROC SORT DATA=work.Chapter11a; BY ClassID StudentID wave; RUN;
DATA work.Chapter11a; SET work.Chapter11a;
time1 = wave - 1;
time2 = wave - 2;
IF wave<3 THEN w3=0; ELSE IF wave=3 THEN w3=1;
WSclose = close - SMclose;
victim3 = victim - 3;
WSvictim = victim - SMvictim;
emosup5 = emosup - 5;
WCemosup = emosup - CMemosup;
LABEL
time1 = "time1: Time in Study (0=Wave1)"
time2 = "time2: Time in Study (0=Wave2)"
w3 = "w3: Is Wave3 (0=no, 1=yes)"
WSclose = "WSclose: Within-Student Student-Teacher Closeness (0=SM)"
victim3 = "victim3: Time-Varying Student-Perceived Victimization (0=3)"
WSvictim = "WSvictim: Within-Student Student-Perceived Victimization (0=SM)"
emosup5 = "emosup5: Time-Varying Class Emotional Support (0=5)"
WCemosup = "WCemosup: Within-Class Emotional Support (0=CM)";
IF NMISS(wave, victim, emosup, girl, classsize, close)>0 THEN DELETE;
RUN;
PROC SORT DATA=work.Chapter11a; BY ClassID wave; RUN;
PROC MEANS NOPRINT DATA=work.Chapter11a; BY ClassID wave;
VAR emosup WCemosup;
OUTPUT OUT=work.ClassPerWave11a
MEAN(emosup WCemosup) = emosup WCemosup;
RUN;
DATA work.ClassPerWave11a; SET work.ClassPerWave11a;
DROP _TYPE_ _FREQ_;
time1 = wave - 1;
LABEL time1 = "time1: Time in Study (0=Wave1)";
RUN;
ODS HTML FILE="&filesave.\SAS_Chapter11a_Output.html"
(URL="SAS_Chapter11a_Output.html") STYLE=HTMLBlue;
TITLE1 "Chapter 11a: Descriptive Statistics for Level-1 Time-Varying Student Variables";
PROC MEANS N MEAN STDDEV VAR MIN MAX DATA=work.Chapter11a;
VAR close WSclose victim WSvictim;
RUN; TITLE1;
TITLE1 "Chapter 11a: Descriptive Statistics for Level-1 Time-Varying Class Variables";
PROC MEANS N MEAN STDDEV VAR MIN MAX DATA=work.ClassPerWave11a;
VAR emosup WCemosup;
RUN; TITLE1;
TITLE1 "Chapter 11a: Descriptive Statistics for Level-2 Student Variables";
PROC MEANS N MEAN STDDEV VAR MIN MAX DATA=work.Chapter11amultiv;
VAR SMclose WCclose SMvictim WCvictim girl;
RUN; TITLE1;
TITLE1 "Chapter 11a: Descriptive Statistics for Level-3 Class Variables";
PROC MEANS N MEAN STDDEV VAR MIN MAX DATA=work.ClassMeans11a;
VAR CMclose CMvictim CMemosup CMgirl classsize grade35;
RUN;
TITLE1 'Ch 11a: Empty Means, Two-Level Model Predicting Student-Teacher Closeness';
TITLE2 'Occasions Within Students*Classes';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitEmpty2C;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.1: Empty Means, Three-Level Model Predicting Student-Teacher Closeness';
TITLE2 'Level-1 Occasions Within Level-2 Students Within Level-3 Classes';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = / SOLUTION CL CHISQ DDFM=Satterthwaite OUTPM=PredEmpty3C;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitEmpty3C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitEmpty2C, FitMore=FitEmpty3C);
TITLE1 'Ch 11a: Empty Means, Two-Level Model Predicting Student-Perceived Victimization';
TITLE2 'Occasions Within Students*Classes';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL victim = / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitEmpty2V;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.1: Empty Means, Three-Level Model Predicting Student-Perceived Victimization';
TITLE2 'Level-1 Occasions Within Level-2 Students Within Level-3 Classes';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL victim = / SOLUTION CL CHISQ DDFM=Satterthwaite OUTPM=PredEmpty3V;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitEmpty3V;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitEmpty2V, FitMore=FitEmpty3V);
TITLE1 'Eq 11a.1: Empty Means, Levels 1 and 3 Model Predicting Class Emotional Support';
TITLE2 'Level-1 Ocasions Within Level-3 Classes';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL emosup = / SOLUTION CL CHISQ DDFM=Satterthwaite OUTPM=PredEmpty3E;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
ODS OUTPUT InfoCrit=FitEmpty3E;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.1: Empty Means, Levels 1 and 3 Model Predicting Class Emotional Support';
TITLE2 'Level-1 Ocasions Within Level-3 Classes';
PROC MIXED DATA=work.ClassPerWave11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID;
MODEL emosup = / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.3: Saturated Means, Unstructured Level-3 and Level-2 Variances';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID wave;
MODEL close = wave / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM wave / G GCORR TYPE=UN SUBJECT=ClassID;
REPEATED wave / R RCORR TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitSatUNC;
LSMEANS wave / DIFF=ALL CL;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Piecewise Means, Level-3 and Level-2 Random Intercepts';
TITLE2 'Three-Level Model Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 w3 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitPieceRI2RI3C;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Piecewise Means, Add Level-2 Random Time Slope';
TITLE2 'Three-Level Model Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 w3 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitPieceRL2RI3C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitPieceRI2RI3C, FitMore=FitPieceRL2RI3C);
TITLE1 'Ch 11a: Piecewise Means, Add Level-3 Random Time Slope';
TITLE2 'Three-Level Model Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 w3 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitPieceRL2RL3C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitPieceRL2RI3C, FitMore=FitPieceRL2RL3C);
%FitTest(FitFewer=FitPieceRL2RL3C, FitMore=FitSatUNC);
TITLE1 'Eq 11a.4: Unconditional Growth Model Predicting Student Closeness';
TITLE2 'Random Linear Time Slopes for Level-2 Students and Level-3 Classes';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 / SOLUTION CL CHISQ DDFM=Satterthwaite OUTPM=PredUncC;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovUncC;
RUN; TITLE1; TITLE2;
%TotalR2(DV=close, PredFewer=PredEmpty3C, PredMore=PredUncC);
TITLE1 'Ch 11a: Add Class Grade and Class Size';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 grade35 time1*grade35 size23 time1*size23 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Class Size Only';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 size23 time1*size23 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovSizeC;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=7, CovFewer=CovUncC, CovMore=CovSizeC);
TITLE1 'Eq 11a.5: Add Student and Class Gender';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 size23 time1*size23
girl time1*girl CMgirl50 time1*CMgirl50
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovGirlC InfoCrit=FitGirlC;
CONTRAST 'Multivariate Test of Level-2 Within-Class Gender Effects' girl 1, time1*girl 1 / CHISQ;
CONTRAST 'Multivariate Test of Level-3 Contextual Class Gender Effects' CMgirl50 1, time1*CMgirl50 1 / CHISQ;
ESTIMATE 'Contextual Gender Effect at Wave 1' CMgirl50 1 CMgirl50*time1 0 / CL;
ESTIMATE 'Contextual Gender Effect at Wave 2' CMgirl50 1 CMgirl50*time1 1 / CL;
ESTIMATE 'Contextual Gender Effect at Wave 3' CMgirl50 1 CMgirl50*time1 2 / CL;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=7, CovFewer=CovSizeC, CovMore=CovGirlC);
TITLE1 'Ch 11a: Test if Level-3 Random Time Slope Variance is still needed';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 size23 time1*size23
girl time1*girl CMgirl50 time1*CMgirl50
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=NoRandTime3C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=NoRandTime3C, FitMore=FitGirlC);
TITLE1 'Ch 11a: Add Random Gender Effect across Classes';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 size23 time1*size23
girl time1*girl CMgirl50 time1*CMgirl50
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 girl / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitRandGirlC;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitGirlC, FitMore=FitRandGirlC);
TITLE1 'Ch 11a: Saturated Means, Unstructured Model Predicting Class Emotional Support';
TITLE2 'Using Only Level-1 Ocasions Within Level-3 Classes';
PROC MIXED DATA=work.ClassPerWave11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID wave;
MODEL emosup = wave / SOLUTION CL CHISQ DDFM=Satterthwaite;
REPEATED wave / R RCORR TYPE=UN SUBJECT=ClassID;
ODS OUTPUT InfoCrit=FitSatUNE;
LSMEANS wave / DIFF=ALL CL;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Saturated Means, Random Intercept Model Predicting Class Emotional Support';
TITLE2 'Using Only Level-1 Ocasions Within Level-3 Classes';
PROC MIXED DATA=work.ClassPerWave11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID wave;
MODEL emosup = wave / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
ODS OUTPUT InfoCrit=FitSatRIE;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitSatRIE, FitMore=FitSatUNE);
TITLE1 'Ch 11a: Saturated Means, Random Time Slope Model Predicting Class Emotional Support';
TITLE2 'Using Only Level-1 Ocasions Within Level-3 Classes';
PROC MIXED DATA=work.ClassPerWave11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID wave;
MODEL emosup = wave / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.6: Add Time-Varying and Class Emotional Support';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 size23 time1*size23
girl time1*girl CMgirl50 time1*CMgirl50
emosup5 time1*emosup5 CMemosup5 time1*CMemosup5
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovEmosup13C InfoCrit=FitEmosup13C;
CONTRAST 'Multivariate Test of Level-1 Within-Class Emotional Support Effects' emosup5 1, time1*emosup5 1 / CHISQ;
CONTRAST 'Multivariate Test of Level-3 Contextual Class Emotional Support Effects' CMemosup5 1, time1*CMemosup5 1 / CHISQ;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=7, CovFewer=CovGirlC, CovMore=CovEmosup13C);
TITLE1 'Ch 11a: Remove Class Size, Add Random Level-1 Emotional Support across Classes';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
emosup5 time1*emosup5 CMemosup5 time1*CMemosup5
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 emosup5 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitEmosup13RC;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: New Baseline for Pseudo-R2 without Class Size Effects';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=FitGirlNewC;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Just Level-3 Emotional Support Effects';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovEmosup3C InfoCrit=FitEmosup3C;
CONTRAST 'Multivariate Test of Level-3 Between-Class Emotional Support Effects' CMemosup5 1, time1*CMemosup5 1 / CHISQ;
ESTIMATE 'Between-Class Emotional Support Effect at Wave 1' CMemosup5 1 CMemosup5*time1 0 / CL;
ESTIMATE 'Between-Class Emotional Support Effect at Wave 2' CMemosup5 1 CMemosup5*time1 1 / CL;
ESTIMATE 'Between-Class Emotional Support Effect at Wave 3' CMemosup5 1 CMemosup5*time1 2 / CL;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=7, CovFewer=FitGirlNewC, CovMore=CovEmosup3C);
TITLE1 'Eq 11a.3: Saturated Means, Unstructured Level-3 and Level-2 Variances';
TITLE2 'for Student Victimization';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID wave;
MODEL victim = wave / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM wave / G GCORR TYPE=UN SUBJECT=ClassID;
REPEATED wave / R RCORR TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitSatUNV;
LSMEANS wave / DIFF=ALL CL;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Piecewise Means, Level-3 and Level-2 Random Intercepts';
TITLE2 'Three-Level Model Predicting Student Victimization';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL victim = time1 w3 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitPieceRI2RI3V;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitPieceRI2RI3V, FitMore=FitSatUNV);
TITLE1 'Ch 11a: Piecewise Means, Add Level-2 Random Time Slope';
TITLE2 'Three-Level Model Predicting Student Victimization';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL victim = time1 w3 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitPieceRL2RI3V;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitPieceRI2RI3V, FitMore=FitPieceRL2RI3V);
TITLE1 'Ch 11a: Piecewise Means, Add Level-3 Random Time Slope';
TITLE2 'Three-Level Model Predicting Student Victimization';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL victim = time1 w3 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitPieceRL2RL3V;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitPieceRL2RI3V, FitMore=FitPieceRL2RL3V);
%FitTest(FitFewer=FitPieceRL2RL3V, FitMore=FitSatUNV);
TITLE1 'Ch 11a: Fixed Linear Time, Level-3 and Level-2 Random Intercepts';
TITLE2 'Three-Level Model Predicting Student Victimization';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL victim = time1 / SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add All 3 Main Effects of Student Vicitimization Predicting Student Closeness';
TITLE2 'Using Variable-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
WSvictim WCvictim CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovVicVBC InfoCrit=FitVicVBC;
ESTIMATE 'Level-1 Within-Student Victim Effect' WSvictim 1 / CL;
ESTIMATE 'Level-2 Within-Class Victim Effect' WCvictim 1 / CL;
ESTIMATE 'Level-3 Between-Class Victim Effect' CMvictim3 1 / CL;
ESTIMATE 'Level-2 Within-Class Contextual Victim Effect' WSvictim -1 WCvictim 1 / CL;
ESTIMATE 'Level-3 Between-Class Contextual Victim Effect' WCvictim -1 CMvictim3 1 / CL;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=7, CovFewer=CovEmosup3C, CovMore=CovVicVBC);
TITLE1 'Ch 11a: Add All 3 Main Effects of Student Vicitimization Predicting Student Closeness';
TITLE2 'Using Constant-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
victim3 SMvictim3 CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovVicCBC;
ESTIMATE 'Level-1 Within-Student Victim Effect' victim3 1 / CL;
ESTIMATE 'Level-2 Within-Class Victim Effect' victim3 1 SMvictim3 1 / CL;
ESTIMATE 'Level-3 Between-Class Victim Effect' victim3 1 SMvictim3 1 CMvictim3 1 / CL;
ESTIMATE 'Level-2 Within-Class Contextual Victim Effect' SMvictim3 1 / CL;
ESTIMATE 'Level-3 Between-Class Contextual Victim Effect' CMvictim3 1 / CL;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=7, CovFewer=CovEmosup3C, CovMore=CovVicCBC);
TITLE1 'Ch 11a: Constant-Centered Student Vicitimization Predicting Student Closeness';
TITLE2 'For Table 11.3: Level-2 and Level-3 Effects, Omitting Level-1 Effect';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 SMvictim3 CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Constant-Centered Student Vicitimization Predicting Student Closeness';
TITLE2 'For Table 11.3: Level-1 and Level-3 Effects Only, Omitting Level-2 Effect';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 victim3 CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Constant-Centered Student Vicitimization Predicting Student Closeness';
TITLE2 'For Table 11.3: Level-1 and Level-2 Effects, Omitting Level-3 Effect';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 victim3 SMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Constant-Centered Student Vicitimization Predicting Student Closeness';
TITLE2 'For Table 11.3: Level-1 Effect Only, Omitting Level-2 and Level-3 Effects';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 victim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add All 3 Victim*Time Interactions Predicting Student Closeness';
TITLE2 'Using Variable-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
WSvictim WCvictim CMvictim3
time1*WSvictim time1*WCvictim time1*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add All 3 Victim*Time Interactions Predicting Student Closeness';
TITLE2 'Using Constant-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
victim3 SMvictim3 CMvictim3
time1*victim3 time1*SMvictim3 time1*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Random Within-Class Vicitimization Effect across Classes';
TITLE2 'Using Variable-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
WSvictim WCvictim CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 WCvictim / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitVicRWC3C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitVicVBC, FitMore=FitVicRWC3C);
TITLE1 'Ch 11a: Add Random Within-Student Vicitimization Effect across Students';
TITLE2 'Using Variable-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
WSvictim WCvictim CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovRandVic InfoCrit=FitVicRWS2C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitVicVBC, FitMore=FitVicRWS2C);
TITLE1 'Ch 11a: Add Random Within-Student Vicitimization Effect across Classes';
TITLE2 'Using Variable-Centered Level-1 and Level-2 Victim Predictors';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5
WSvictim WCvictim CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 WCvictim / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT InfoCrit=FitVicRWS23C;
RUN; TITLE1; TITLE2;
%FitTest(FitFewer=FitVicRWS2C, FitMore=FitVicRWS23C);
TITLE1 'Ch 11a: Add Quadratic Level-3 Effects of Gender';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMgirl50 time1*CMgirl50*CMgirl50
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Quadratic Level-3 Effects of Emotional Support';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMemosup5*CMemosup5 time1*CMemosup5*CMemosup5
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Quadratic Effect of Victimization at Each Level';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMvictim3*CMvictim3 WCvictim*WCvictim WSvictim*WSvictim
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Two-Way and Three-Way Interactions Among Level-3 Effects';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMgirl50*CMvictim3 CMemosup5*CMvictim3
time1*CMgirl50*CMemosup5 time1*CMgirl50*CMvictim3 time1*CMemosup5*CMvictim3
CMgirl50*CMemosup5*CMvictim3 time1*CMgirl50*CMemosup5*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Keep Gender*Emotional Support and Emotional Support*Victimization Level-3 Interactions';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovL3x;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=10, CovFewer=CovRandVic, CovMore=CovL3x);
TITLE1 'Eq 11a.8: Add Level-2 Interactions (and Contextual Level-3 Interactions)';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovL32x;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=10, CovFewer=CovL3x, CovMore=CovL32x);
TITLE1 'Ch 11a: Add Time by Level-2 Interactions (and Contextual Level-3 Interactions)';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
time1*WCvictim time1*girl*WCvictim time1*CMvictim3 time1*CMgirl50*WCvictim
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Level-3 by Student Gender Cross-Level Interactions';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
girl*CMgirl50 girl*CMemosup5 girl*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Level-3 by Within-Class Victim Cross-Level Interactions';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
WCvictim*CMemosup5 WCvictim*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Ch 11a: Add Level-3 by Within-Student Victim Cross-Level Interactions';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
WSvictim*CMgirl50 WSvictim*CMemosup5 WSvictim*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.9: Add Level-2 and Level-3 Victim by Within-Student Victim Cross-Level Interactions';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
WSvictim*WCvictim WSvictim*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite OUTPM=FinalC;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
ODS OUTPUT CovParms=CovL32xVicx;
ESTIMATE 'Contextual Gender Effect at Wave 1' CMgirl50 1 CMgirl50*time1 0 / CL;
ESTIMATE 'Contextual Gender Effect at Wave 2' CMgirl50 1 CMgirl50*time1 1 / CL;
ESTIMATE 'Contextual Gender Effect at Wave 3' CMgirl50 1 CMgirl50*time1 2 / CL;
ESTIMATE 'Between-Class Emotional Support Effect at Wave 1' CMemosup5 1 CMemosup5*time1 0 / CL;
ESTIMATE 'Between-Class Emotional Support Effect at Wave 2' CMemosup5 1 CMemosup5*time1 1 / CL;
ESTIMATE 'Between-Class Emotional Support Effect at Wave 3' CMemosup5 1 CMemosup5*time1 2 / CL;
ESTIMATE 'Level-2 Victim Effect in Girls' WCvictim 1 WCvictim*girl 1 / CL;
RUN; TITLE1; TITLE2;
%PseudoR2(NCov=10, CovFewer=CovL32x, CovMore=CovL32xVicx);
%TotalR2(DV=close, PredFewer=PredEmpty, PredMore=FinalC);
TITLE1 'Ch 11a: Add Level-2 and Level-3 Gender by Within-Student Victim Cross-Level Interactions';
TITLE2 'Predicting Student Closeness';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=REML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim WSvictim*WCvictim WSvictim*CMvictim3
WSvictim*girl WSvictim*CMgirl50
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
TITLE1 'Eq 11a.9: Add Level-2 and Level-3 Victim by Within-Student Victim Cross-Level Interactions';
TITLE2 'Predicting Student Closeness using ML instead of REML';
PROC MIXED DATA=work.Chapter11a COVTEST NOCLPRINT NAMELEN=100 IC METHOD=ML;
CLASS ClassID StudentID;
MODEL close = time1 girl time1*girl CMgirl50 time1*CMgirl50
CMemosup5 time1*CMemosup5 WSvictim WCvictim CMvictim3
CMgirl50*CMemosup5 CMemosup5*CMvictim3
girl*WCvictim CMgirl50*WCvictim
WSvictim*WCvictim WSvictim*CMvictim3
/ SOLUTION CL CHISQ DDFM=Satterthwaite;
RANDOM INTERCEPT time1 / TYPE=UN SUBJECT=ClassID;
RANDOM INTERCEPT time1 WSvictim / TYPE=UN SUBJECT=ClassID*StudentID;
RUN; TITLE1; TITLE2;
ODS HTML CLOSE;