Multilevel models
Post date: Nov 06, 2017 5:45:56 PM
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 < 4
* run overall regression
regress gcse lrt
* run individual regressions
statsby _b, by(school) saving(ols,replace): regress gcse lrt
sort school lrt
merge school using ols
drop _merge
rename _b_cons intercept
rename _b_lrt slope
sum slope intercept
gen pred = intercept + slope*lrt
twoway (line pred lrt, connect(ascending))
* examine relationship between slopes and intercepts
twoway scatter slope intercept || lfit scatter slope, xtitle(Intercept) ytitle(Slope)
pwcorr slope intercept
* random intercepts model
xtmixed gcse lrt || school:, mle //note same results as xtreg, mle
estimates store ri
* random slopes model
xtmixed gcse lrt || school:lrt, cov(unstructured) mle
estimates store rs
lrtest rs ri // does adding random slopes improve fit over random intercepts only?