SDQ: Predictive Algorithm in STATA

The predictive algorithm is based on up to twelve input variables:

phyper =SDQ hyperactivity score from parent SDQ
thyper =SDQ hyperactivity score from teacher SDQ
shyper =SDQ hyperactivity score from self-report SDQ
pconduct =SDQ conduct problems score from parent SDQ
tconduct =SDQ conduct problems score from teacher SDQ
sconduct =SDQ conduct problems score from self-report SDQ
pemotion =SDQ emotional symptoms score from parent SDQ
temotion =SDQ emotional symptoms score from teacher SDQ
semotion =SDQ emotional symptoms score from self-report SDQ
pimpact =SDQ impact score from parent SDQ
timpact =SDQ impact score from teacher SDQ
simpact =SDQ impact score from self-report SDQ

The algorithm generates four output variables:

sdqed =prediction of an emotional disorder
(0 = unlikely, 1 = possible, 2 = probable)
sdqcd =prediction of a conduct disorder
(0 = unlikely, 1 = possible, 2 = probable)
sdqhk =prediction of a hyperactivity disorder
(0 = unlikely, 1 = possible, 2 = probable)
anydiag=prediction of any psychiatric disorder
(0 = unlikely, 1 = possible, 2 = probable)


*SDQ HYPERACTIVITY PREDICTION
gen phk=.
replace phk=0 if phyper>=0 & phyper!=. & pimpact>=0 & pimpact!=.
replace phk=1 if phyper>=6 & phyper!=. & pimpact>=1 & pimpact!=.
replace phk=2 if phyper>=7 & phyper!=. & pimpact>=2 & pimpact!=.
replace phk=2 if phyper>=9 & phyper!=. & pimpact>=1 & pimpact!=.

gen shk=.
replace shk=0 if shyper>=0 & shyper!=. & simpact>=0 & simpact!=.
replace shk=1 if shyper>=6 & shyper!=. & simpact>=1 & simpact!=.
replace shk=2 if shyper>=7 & shyper!=. & simpact>=2 & simpact!=.

gen thk=.
replace thk=0 if thyper>=0 & thyper!=. & timpact>=0 & timpact!=.
replace thk=1 if thyper>=6 & thyper!=. & timpact>=1 & timpact!=.
replace thk=2 if thyper>=7 & thyper!=. & timpact>=2 & timpact!=.

gen pshk=phk
replace pshk=shk if phk==.

gen sdqhk=.
replace sdqhk=0 if (phk>=0 & phk!=.) | (shk>=0 & shk!=.) | (thk>=0 & thk!=.)
replace sdqhk=1 if (pshk==2 & pshk!=.) | (thk==2 & thk!=.)
replace sdqhk=1 if pshk>=1 & pshk!=. & thk>=1 & thk!=.
replace sdqhk=1 if pshk>=1 & pshk!=. & thk==.
replace sdqhk=1 if pshk==. & thk>=1 & thk!=.
replace sdqhk=2 if pshk==2 & thk>=1 & thk!=.

*SDQ CONDUCT PREDICTION
gen sdqcd=.
replace sdqcd=0 if (pconduct>=0 & pconduct!=.)|(tconduct>=0 & tconduct!=.)|(sconduct>=0 & sconduct!=.)
replace sdqcd=1 if (pconduct>=4 & pconduct!=.)|(tconduct>=3 & tconduct!=.)|(sconduct>=5 & sconduct!=.)
replace sdqcd=2 if pconduct>=5 & pconduct!=. & pimpact>=2 & pimpact!=.
replace sdqcd=2 if tconduct>=4 & tconduct!=. & timpact>=2 & timpact!=.
replace sdqcd=2 if sconduct>=6 & sconduct!=. & simpact>=2 & simpact!=.
replace sdqcd=. if pimpact==. & timpact==. & simpact==.

*SDQ EMOTION PREDICTION
gen sdqed=.
replace sdqed=0 if (pemotion>=0 & pemotion!=.)|(temotion>=0 & temotion!=.)|(semotion>=0 & semotion!=.)
replace sdqed=1 if pemotion>=5 & pemotion!=. & pimpact>=1 & pimpact!=.
replace sdqed=1 if temotion>=5 & temotion!=. & timpact>=1 & timpact!=.
replace sdqed=1 if semotion>=6 & semotion!=. & simpact>=1 & simpact!=.

gen pem=0
replace pem=1 if pemotion>=6 & pemotion!=. & pimpact>=2 & pimpact!=.
gen tem=0
replace tem=1 if temotion>=6 & temotion!=. & timpact>=2 & timpact!=.
gen sem=0
replace sem=1 if semotion>=7 & semotion!=. & simpact>=2 & simpact!=.
gen allem=pem+tem+sem

replace sdqed=2 if allem>=1 & allem!=.
replace sdqed=1 if allem==1 & sdqcd==2
replace sdqed=1 if allem==1 & sdqhk==2
replace sdqed=. if pimpact==. & timpact==. & simpact==.

*SDQ ANY DISORDER PREDICTION
gen anydiag=.
replace anydiag=0 if (sdqed>=0 & sdqed!=.) | (sdqcd>=0 & sdqcd!=.) | (sdqhk>=0 & sdqhk!=.)
replace anydiag=1 if (sdqed>=1 & sdqed!=.) | (sdqcd>=1 & sdqcd!=.) | (sdqhk>=1 & sdqhk!=.)
replace anydiag=2 if sdqed==2 | sdqcd==2 | sdqhk==2

*DELETE MIDWAY VARIABLES
drop phk shk thk pshk pem tem sem allem


Last modified : 27/03/07