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?