data teachmet1;
input met teacher gen $ student score y_ex @@;
/* Variable Codings */
female = 0;
if gen eq 'f' then female = 1;
met1 = 0;
if met eq 1 then met1 = 1;
met2 = 0;
if met eq 2 then met2 = 1;
met3 = 0;
if met eq 3 then met3 = 1;
teacher1 = 0;
if teacher eq 1 then teacher1 = 1;
teacher2 = 0;
if teacher eq 2 then teacher2 = 1;
teacher3 = 0;
if teacher eq 3 then teacher3 = 1;
teacher4 = 0;
if teacher eq 4 then teacher4 = 1;
datalines;
1 1 f 1 15 11 1 1 f 2 17 11 1 1 f 3 16 11
1 1 f 4 16 11 1 1 m 1 17 11 1 1 m 2 16 11
1 1 m 3 17 11 1 1 m 4 17 11 1 2 f 1 18 8
1 2 f 2 17 8 1 2 f 3 17 8 1 2 f 4 16 8
1 2 m 1 16 8 1 2 m 2 17 8 1 2 m 3 18 8
1 2 m 4 17 8 1 3 f 1 15 9 1 3 f 2 15 9
1 3 f 3 15 9 1 3 f 4 16 9 1 3 m 1 15 9
1 3 m 2 15 9 1 3 m 3 15 9 1 3 m 4 16 9
1 4 f 1 16 17 1 4 f 2 17 17 1 4 f 3 16 17
1 4 f 4 15 17 1 4 m 1 14 17 1 4 m 2 17 17
1 4 m 3 17 17 1 4 m 4 16 17 2 1 f 1 21 6
2 1 f 2 22 6 2 1 f 3 22 6 2 1 f 4 21 6
2 1 m 1 20 6 2 1 m 2 20 6 2 1 m 3 21 6
2 1 m 4 22 6 2 2 f 1 21 11 2 2 f 2 20 11
2 2 f 3 20 11 2 2 f 4 21 11 2 2 m 1 18 11
2 2 m 2 19 11 2 2 m 3 20 11 2 2 m 4 19 11
2 3 f 1 23 13 2 3 f 2 23 13 2 3 f 3 24 13
2 3 f 4 23 13 2 3 m 1 21 13 2 3 m 2 20 13
2 3 m 3 21 13 2 3 m 4 22 13 2 4 f 1 23 18
2 4 f 2 22 18 2 4 f 3 22 18 2 4 f 4 22 18
2 4 m 1 19 18 2 4 m 2 19 18 2 4 m 3 19 18
2 4 m 4 20 18 3 1 f 1 33 8 3 1 f 2 31 8
3 1 f 3 31 8 3 1 f 4 32 8 3 1 m 1 27 8
3 1 m 2 28 8 3 1 m 3 27 8 3 1 m 4 27 8
3 2 f 1 28 18 3 2 f 2 27 18 3 2 f 3 27 18
3 2 f 4 29 18 3 2 m 1 23 18 3 2 m 2 23 18
3 2 m 3 24 18 3 2 m 4 23 18 3 3 f 1 30 12
3 3 f 2 29 12 3 3 f 3 29 12 3 3 f 4 30 12
3 3 m 1 25 12 3 3 m 2 25 12 3 3 m 3 26 12
3 3 m 4 24 12 3 4 f 1 28 6 3 4 f 2 27 6
3 4 f 3 28 6 3 4 f 4 30 6 3 4 m 1 25 6
3 4 m 2 25 6 3 4 m 3 22 6 3 4 m 4 25 6
;
/* PROC REG - Dummy 변수 */
proc reg data=teachmet1;
model score = met1 met2;
run;
/* PROC Genmod - Dummy 변수 */
proc genmod data=teachmet1;
model score = met1 met2 / dist = normal link = identity;
run;
/* PROC Genmod - Class 사용 */
proc genmod data=teachmet1;
class met;
model score = met / dist = normal link = identity;
run;
/* PROC GLM - Class 사용 */
proc glm data=teachmet1;
class met;
model score = met / solution;
run;
/* PROC MIXED */
proc mixed data=teachmet1;
class met;
model score = met / solution;
run;
/* PROC NLMIXED */
proc nlmixed data=teachmet1;
parms b0=0 b1=0 b2=0 sigsq=1;
mu = b0 + b1*met1 + b2*met2;
model score ~ normal(mu,sigsq);
run;
/* Mixed Model Specifications */
proc mixed data=teachmet1;
class teacher met;
model score = met / solution ddfm=kr;
random teacher / solution;
run;
proc mixed data=teachmet1;
class teacher met;
model score = met / solution ddfm=kr;
random teacher(met) / solution;
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.