Multilevel Models (MLM)

Stata script from class:

* get dataset & clean

use http://www.stata-press.com/data/mlmus2/gcse

egen num = count(student), by(school)

drop if num < 10

* run overall regression

regress gcse lrt

* run individual regressions

statsby _b, by(school) saving(ols): regress gcse lrt

sort school lrt

merge school using ols

rename _b_cons intercept

rename _b_lrt slope

sum slope intercept

gen pred = intercept + slope*lrt

twoway (line pred lrt, connect(ascending))

* run fixed effects and random effects

xtreg gcse lrt, fe

estimates store fixed

xtreg gcse lrt, re

estimates store random

hausman fixed random, sigmamore

* random intercepts model

xtreg, re mle //re-run random effects via mle

xtmixed gcse lrt || school:, mle //note same results as xtreg, mle

estimates store ri

* random slopes model

xtmixed gcse lrt || school:, mle cov(unstructured)

lrtest rs ri // does adding random slopes improve fit over random intercepts only?

* relating slopes to intercepts

* do kids in high gcse schools get more out of their lrt scores?

corr slope intercept

estimates store rs