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