******************************************************************************* * File HALCyon cognitive syntax_ELSA.do * BY       Rebecca Hardy, MRC Unit for Lifelong Health and Ageing at UCL * FOR     HALCyon cross-cohort collaboration (funded by the New Dynamics of Ageing (RES-353-25-0001)) * DATASET ELSA * Date Created 07/04/2010 * PURPOSE Recodes and derives cognitive variables for use in cross-cohort analyses ******************************************************************************* # delimit; set more off; *To obtain age and sex variables, please first run HALCyon PC covariate syntax_ELSA.do /*run demographic recodes*/ do "Q:\aix\halcyon\NDAanalysis\ELSA\ELSA_v1.do" ; /*Creating break between newly recoded cognitive variables and variables in existing dataset with a blank variable */ gen cogrecodes_below=. ; /*********************************************************************************/ /*no measure of crystallised cognitive ability*/ /*10-item word list - immediate and delayed recall*/ /*set to missing -9=refusal, -8=don't know, -1=not applicable*/ gen wordlist_w1=cflisenw1 ; label variable wordlist_w1 "10-item word list immediate recall at wave 1" ; gen wordlistd_w1=cflisdw1 ; label variable wordlistd_w1 "10-item word list delayed recall at wave 1" ; mvdecode wordlist_w1 wordlistd_w1, mv(-1, -9, -8) ; gen wordlist_w2=CfLisEnw2 ; label variable wordlist_w2 "10-item word list immediate recall at wave 2" ; gen wordlistd_w2=CfLisDw2 ; label variable wordlistd_w2 "10-item word list delayed recall at wave 2" ; mvdecode wordlist_w2 wordlistd_w2, mv(-1, -9, -8) ; gen wordlist_w3=CfLisEnw3 ; label variable wordlist_w3 "10-item word list immediate recall at wave 3" ; gen wordlistd_w3=CfLisDw3 ; label variable wordlistd_w3 "10-item word list delayed recall at wave 3" ; mvdecode wordlist_w3 wordlistd_w3, mv(-1, -9, -8) ; /*derive word list total*/ /*range 0-20*/ gen wlt_w1=wordlist_w1+wordlistd_w1 ; label variable wlt_w1 "10-item word list immediate+delayed recall at wave 1" ; gen wlt_w2=wordlist_w2+wordlistd_w2 ; label variable wlt_w2 "10-item word list immediate+delayed recall at wave 2" ; gen wlt_w3=wordlist_w3+wordlistd_w3 ; label variable wlt_w3 "10-item word list immediate+delayed recall at wave 3" ; /*standardise word list to whole sample*/ egen wltz_w1=std(wlt_w1) if sex!=.; label variable wltz_w1 "standardised word list recall total at wave 1" ; egen wltz_w2=std(wlt_w2) if sex!=.; label variable wltz_w2 "standardised word list recall total at wave 2" ; egen wltz_w3=std(wlt_w3) if sex!=.; label variable wltz_w3 "standardised word list recall total at wave 3" ; /*standardise word list for men and women seprately*/ egen wltzm_w1=std(wlt_w1) if sex==1; egen wltzf_w1=std(wlt_w1) if sex==2; label variable wltzm_w1 "standardised word list total for men at wave 1" ; label variable wltzf_w1 "standardised word list total for women at wave 1" ; egen wltzm_w2=std(wlt_w2) if sex==1; egen wltzf_w2=std(wlt_w2) if sex==2; label variable wltzm_w2 "standardised word list total for men at wave 2" ; label variable wltzf_w2 "standardised word list total for women at wave 2" ; egen wltzm_w3=std(wlt_w3) if sex==1; egen wltzf_w3=std(wlt_w3) if sex==2; label variable wltzm_w3 "standardised word list total for men at wave 3" ; label variable wltzf_w3 "standardised word list total for women at wave 3" ; /*combine in one variable*/ gen wltzs_w1=. ; replace wltzs_w1=wltzm_w1 if sex==1; replace wltzs_w1=wltzf_w1 if sex==2; label variable wltzs_w1 "sex-standardised word list total at wave 1" ; gen wltzs_w2=.; replace wltzs_w2=wltzm_w2 if sex==1; replace wltzs_w2=wltzf_w2 if sex==2; label variable wltzs_w2 "sex-standardised word list total at wave 2" ; gen wltzs_w3=. ; replace wltzs_w3=wltzm_w3 if sex==1; replace wltzs_w3=wltzf_w3 if sex==2; label variable wltzs_w3 "sex-standardised word list total at wave 3" ; /*age and sex-standardised word list - standardised residuals from regression on age and sex*/ xi: regress wlt_w1 age_w1 i.sex ; predict wltzage_w1, rstandard ; label variable wltzage_w1 "age and sex-standardised word list total at wave 1" ; xi: regress wlt_w2 age_w2 i.sex ; predict wltzage_w2, rstandard ; label variable wltzage_w2 "age and sex-standardised word list total at wave 2" ; xi: regress wlt_w3 age_w3 i.sex ; predict wltzage_w3, rstandard ; label variable wltzage_w3 "age and sex-standardised word list total at wave 3" ; /*letter cancellation task*/ /*set -1 to missing*/ /*search speed*/ gen searchsp_w1=nrowclmw1 ; label variable searchsp_w1 "Search speed at wave 1"; mvdecode searchsp_w1, mv(-1); gen searchsp_w2=nrowclw2; label variable searchsp_w2 "Search speed at wave 2"; mvdecode searchsp_w2, mv(-1); gen searchsp_w3=NRowClmw3; label variable searchsp_w3 "Search speed at wave 3"; mvdecode searchsp_w3, mv(-1, -2); /*standardise word list to whole sample*/ egen searchspz_w1=std(searchsp_w1) if sex!=.; label variable searchspz_w1 "Search speed at at wave 1" ; egen searchspz_w2=std(searchsp_w2) if sex!=. ; label variable searchspz_w2 "Search speed at at wave 2" ; egen searchspz_w3=std(searchsp_w3) if sex!=. ; label variable searchspz_w3 "Search speed at at wave 3" ; /*standardise seacrh speed for men and women seprately*/ egen searchspzm_w1=std(searchsp_w1) if sex==1; egen searchspzf_w1=std(searchsp_w1) if sex==2; label variable searchspzm_w1 "standardised search speed for men at wave 1" ; label variable searchspzf_w1 "standardised search speed for women at wave 1" ; egen searchspzm_w2=std(searchsp_w2) if sex==1; egen searchspzf_w2=std(searchsp_w2) if sex==2; label variable searchspzm_w2 "standardised search speed for men at wave 2" ; label variable searchspzf_w2 "standardised search speed for women at wave 2" ; egen searchspzm_w3=std(searchsp_w3) if sex==1; egen searchspzf_w3=std(searchsp_w3) if sex==2; label variable searchspzm_w3 "standardised search speed for men at wave 3" ; label variable searchspzf_w3 "standardised search speed for women at wave 3" ; /*combine in one variable*/ gen searchspzs_w1=. ; replace searchspzs_w1=searchspzm_w1 if sex==1; replace searchspzs_w1=searchspzf_w1 if sex==2; label variable searchspzs_w1 "sex-standardised search speed at wave 1" ; gen searchspzs_w2=.; replace searchspzs_w2=searchspzm_w2 if sex==1; replace searchspzs_w2=searchspzf_w2 if sex==2; label variable searchspzs_w2 "sex-standardised search speed at wave 2" ; gen searchspzs_w3=. ; replace searchspzs_w3=searchspzm_w3 if sex==1; replace searchspzs_w3=searchspzf_w3 if sex==2; label variable searchspzs_w3 "sex-standardised search speed at wave 3" ; /*age and sex-standardised search speed - standardised residuals from regression on age and sex*/ xi: regress searchsp_w1 age_w1 i.sex ; predict searchspzage_w1, rstandard ; label variable searchspzage_w1 "age and sex-standardised search speed at wave 1" ; xi: regress searchsp_w2 age_w2 i.sex ; predict searchspzage_w2, rstandard ; label variable searchspzage_w2 "age and sex-standardised search speed at wave 2" ; xi: regress searchsp_w3 age_w3 i.sex ; predict searchspzage_w3, rstandard ; label variable searchspzage_w3 "age and sex-standardised search speed at wave 3" ; /*other variables from letter cancellation task*/ /*search accuracy=number searched-number missed*/ /*set -1 and -2 to missing*/ gen ncorr_w1=ncorrecw1; label variable ncorr_w1 "letter cancellation task (number correct) - wave 1"; gen nmissed_w1=nmissedw1; label variable nmissed_w1 "letter cancellation task (number missed) - wave 1"; mvdecode ncorr_w1 nmissed_w1, mv(-1); gen searchacc_w1=ncorr_w1-nmissed_w1 ; label variable searchacc_w1 "letter cancellation task (number correct-number missed) - wave 1"; gen ncorr_w2=nncorrew2; label variable ncorr_w2 "letter cancellation task (number correct) - wave 2"; gen nmissed_w2=nnmissew2; label variable nmissed_w2 "letter cancellation task (number missed) - wave 2"; mvdecode ncorr_w2 nmissed_w2, mv(-1); gen searchacc_w2=ncorr_w2-nmissed_w2 ; label variable searchacc_w2 "letter cancellation task (number correct-number missed) - wave 2"; gen ncorr_w3=NCorrectw3; label variable ncorr_w3 "letter cancellation task (number correct) - wave 3"; gen nmissed_w3=NMissedw3; label variable nmissed_w3 "letter cancellation task (number missed) - wave 3"; mvdecode ncorr_w3 nmissed_w3, mv(-2, -1); gen searchacc_w3=ncorr_w3-nmissed_w3; label variable searchacc_w3 "letter cancellation task (number correct-number missed) - wave 3"; histogram searchacc_w3, width(1); /*category fluency*/ /*set -9, -8 and -1 to missing*/ gen catfl_w1=cfaniw1; label variable catfl_w1 "category fluency (animal naming) score at wave 1"; mvdecode catfl_w1, mv(-9, -8, -1); gen catfl_w2=CfAniw2; label variable catfl_w2 "category fluency (animal naming) score at wave 2"; mvdecode catfl_w2, mv(-9, -8, -1); gen catfl_w3=CfAniw3; label variable catfl_w3 "category fluency (animal naming) score at wave 3"; mvdecode catfl_w3, mv(-9, -8, -1); /*standardise category fluency score*/ egen catflz_w1=std(catfl_w1) if sex!=. ; label variable catflz_w1 "standardised category fluency (animal naming) at wave 1" ; egen catflz_w2=std(catfl_w2) if sex!=. ; label variable catflz_w2 "standardised category fluency (animal naming) at wave 2" ; egen catflz_w3=std(catfl_w3) if sex!=. ; label variable catflz_w3 "standardised category fluency (animal naming) at wave 3" ; /*standardise category fluency (animal naming) for men and women seprately*/ egen catflzm_w1=std(catfl_w1) if sex==1; egen catflzf_w1=std(catfl_w1) if sex==2; label variable catflzm_w1 "standardised category fluency (animal naming) for men at wave 1" ; label variable catflzf_w1 "standardised category fluency (animal naming) for women at wave 1" ; egen catflzm_w2=std(catfl_w2) if sex==1; egen catflzf_w2=std(catfl_w2) if sex==2; label variable catflzm_w2 "standardised category fluency (animal naming) for men at wave 2" ; label variable catflzf_w2 "standardised category fluency (animal naming) women at wave 2" ; egen catflzm_w3=std(catfl_w3) if sex==1; egen catflzf_w3=std(catfl_w3) if sex==2; label variable catflzm_w3 "standardised category fluency (animal naming) for men at wave 3" ; label variable catflzf_w3 "standardised category fluency (animal naming) for women at wave 3" ; /*combine in one variable*/ gen catflzs_w1=. ; replace catflzs_w1=catflzm_w1 if sex==1; replace catflzs_w1=catflzf_w1 if sex==2; label variable catflzs_w1 "sex-standardised category fluency (animal naming) at wave 1" ; gen catflzs_w2=.; replace catflzs_w2=catflzm_w2 if sex==1; replace catflzs_w2=catflzf_w2 if sex==2; label variable catflzs_w2 "sex-standardised category fluency (animal naming) at wave 2" ; gen catflzs_w3=. ; replace catflzs_w3=catflzm_w3 if sex==1; replace catflzs_w3=catflzf_w3 if sex==2; label variable catflzs_w3 "sex-standardised category fluency (animal naming) at wave 3" ; /*age and sex-standardised category fluency (animal naming) - standardised residuals from regression on age and sex*/ xi: regress catfl_w1 age_w1 i.sex ; predict catflzage_w1, rstandard ; label variable catflzage_w1 "age and sex-standardised category fluency (animal naming) at wave 1" ; xi: regress catfl_w2 age_w2 i.sex ; predict catflzage_w2, rstandard ; label variable catflzage_w2 "age and sex-standardised category fluency (animal naming) at wave 2" ; xi: regress catfl_w3 age_w3 i.sex ; predict catflzage_w3, rstandard ; label variable catflzage_w3 "age and sex-standardised category fluency (animal naming) at wave 3" ; /*derive fluid cognitive ability - Gf*/ factor wltz_w1 catflz_w1 searchspz_w1, factors(1) pcf ; predict Gf_w1 ; label variable Gf_w1 "Gf at wave 1" ; factor wltz_w2 catflz_w2 searchspz_w2, factors(1) pcf ; predict Gf_w2 ; label variable Gf_w2 "Gf at wave 2" ; factor wltz_w3 catflz_w3 searchspz_w3, factors(1) pcf ; predict Gf_w3 ; label variable Gf_w1 "Gf at wave 3" ; /*using age and sex-standardised scores*/ factor wltzage_w1 catflzage_w1 searchspzage_w1, factors(1) pcf ; predict Gfage_w1 ; label variable Gfage_w1 "Gf (age and sex-adjusted) at wave 1" ; factor wltzage_w2 catflzage_w2 searchspzage_w2, factors(1) pcf ; predict Gfage_w2 ; label variable Gfage_w2 "Gf (age and sex-adjusted) at wave 2" ; factor wltzage_w3 catflzage_w3 searchspzage_w3, factors(1) pcf ; predict Gfage_w3 ; label variable Gfage_w1 "Gf (age and sex-adjusted) at wave 3" ;