/* Do-file for analyses in: Skrondal, A. and Rabe-Hesketh, S. (2003). Multilevel logistic regression for polytomous data and rankings. Psychometrika 68, 267-287. See also Section 13.4 in: Skrondal, A. and Rabe-Hesketh, S. (2004). Generalized Latent Variable Modeling: Multilevel, Longitudinal and Structural Equation Modeling. Chapman & Hall/CRC. This do-file requires Stata version 8.0 or higher and gllamm, downloadable from the SSC using this command: ssc install gllamm, replace See also http://www.gllamm.org */ capture log close log using bes, replace * Read data insheet using bes.dat, clear * Explode data egen maxr = max(rank), by(occ) gen chosen=1 gen id=_n stset rank, fail(chosen) id(id) stsplit , at(failures) strata(occ) riskset(occstage) replace chosen=0 if chosen==. drop if rank==maxr * generate dummy variables for the parties tab party, gen(p) rename p1 cons rename p2 lab rename p3 lib * generate all covariates gen rldist = (right-rl)^2 gen lab_mal = lab*male gen lib_mal = lib*male gen lab_pri = lab*price gen lib_pri = lib*price gen lab_man = lab*manual gen lib_man = lib*manual gen lab_age = lab*age gen lib_age = lib*age gen lab87 = cond(year==87,lab,0) gen lab92 = cond(year==92,lab,0) gen lib87 = cond(year==87,lib,0) gen lib92 = cond(year==92,lib,0) egen zprice=std(price) gen srldist=sqrt(rldist) egen zrldist=std(srldist) gen lab_zpri = lab*zprice gen lib_zpri = lib*zprice ***** Model M0 gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(occ) trace init ***** Model M1(a) eq beta: zrldist gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(occ) eq(beta) /* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M1(b) eq fac: lab lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(occ) eq(fac)/* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M2(a) eq beta: zrldist gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(serialno) eq(beta) /* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M2(b) eq fac: lab lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(serialno) eq(fac)/* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M2(c) eq gam1: lab eq gam2: lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(constit) nrf(2) eq(gam1 gam2) /* */ expand(occstage chosen o) f(binom) l(mlogit)/* */ nip(10) adapt trace ***** Model M3(a) eq beta: zrldist gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(constit) eq(beta) /* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M3(b) eq fac: lab lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(constit) eq(fac)/* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M3(c) eq gam1: lab eq gam2: lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(serialno) nrf(2) eq(gam1 gam2) /* */ expand(occstage chosen o) f(binom) l(mlogit) /* */ nip(10) adapt trace ***** Model M12(a) eq beta: zrldist gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(occ serialno) /* */ eq(beta beta) expand(occstage chosen o) f(binom) l(mlogit) /* */ nip(10) adapt trace ***** Model M12(b) eq fac: lab lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(occ serialno) eq(fac fac)/* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) adapt trace ***** Model M23(a) eq beta: zrldist gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(serialno constit) /* */ eq(beta beta) expand(occstage chosen o) f(binom) l(mlogit) /* */ nip(10) adapt trace ***** Model M23(b) eq fac: lab lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(serialno constit) eq(fac fac)/* */ expand(occstage chosen o) f(binom) l(mlogit) nip(10) from(a) adapt trace ***** Model M23(c) eq gam1: lab eq gam2: lib gllamm party zrldist lab87 lib87 lab92 lib92 lab_mal lib_mal lab_age lib_age /* */ lab_man lib_man lab_zpri lib_zpri, nocons i(serialno constit) /* */ nrf(2 2) eq(gam1 gam2 gam1 gam2) /* */ expand(occstage chosen o) f(binom) l(mlogit) nip(7) adapt trace log close exit