TEDS Data Dictionary

Derived Variables in the 2 Year Dataset

This page gives a listing of derived variables in the 2 Year dataset, in alphabetical order of variable name. For each variable, a short written description is followed by a box containing the SPSS syntax that was used to derive the variable.

This page does not include descriptions of background variables that are derived from other sources and that are included in the 2 Year dataset. For information about such variables, see pages describing background variables, exclusions and scrambled IDs.

List of variables described on this page

Click on a variable name in the table below to go to the description on this page. Alternatively, scroll down and find variables in alphabetical order.

Definitions of derived variables

Listed alphabetically

badparc1/2

Total score for the five parent-administered Parca tests in the child booklet, computed as a simple sum with unequal weightings for the various tests. Derived as variable badparc in the syntax below, and later double entered to become badparc1/2.

* This is a sum of the 5 test score totals: drawing (0-4).
* matching (0-8), block (0-12), folding (0-2) and copying (0-8).
* Making a total score with range 0 to 34.
* Require at least two test scores to be non-missing.
* so if other scores are missing they are treated like zero scores.
COMPUTE badparc = SUM.2(bdrawt, bmatcht, bblockt, bfoldt, bcopyt).
EXECUTE.
badparn1/2

Standardised overall score for the five parent-administered Parca tests in the child booklet. Derived as a mean of the standardised scores, giving equal weighting to each test. The variables are standardised on the non-excluded sample, defined by variable exclude1.
The syntax below derives variable badparn, which is later double entered to become badparn1/2.

* Filter out all the standard exclusions for the twin.
* (medical, perinatal, unknown sex/zyg, missing 1st Contact).
* before standardising variables.
USE ALL.
COMPUTE filter_$=(exclude1 = 0).
VARIABLE LABEL filter_$ 'exclude1 = 0 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE.

* Standardise the 5 test score totals.
DESCRIPTIVES VARIABLES=bdrawt (zdrawt) bmatcht (zmatcht) 
 bblockt (zblockt) bfoldt (zfoldt) bcopyt (zcopyt) /SAVE.
* Find the mean - require at least two to be non-missing.
COMPUTE adparn = MEAN.2(zdrawt, zmatcht, zblockt, zfoldt, zcopyt).
EXECUTE.
* Now standardise this mean.
DESCRIPTIVES VARIABLES=adparn (badparn) /SAVE.

* Remove filter.
FILTER OFF.
USE ALL.
EXECUTE.
bagemdex, bagestex

Exclusion variables (coded 1=exclude, 0=not excluded) based on twin age criteria. The criteria are strict for variable bagestex, and moderate for variable bagemdex. See comments in syntax below for detailed exclusion criteria.
Derived from double-entered twin booklet age variables btwbage1/2, and age difference variable btwbagediff, which are described elsewhere on this page.

* Moderate version: each twin age no greater than 30/12 (2 years 6 months).
* and no less than 22/12 (1 year 10 months).
* Applies only to twin measures in the twin booklet (not parent booklet age).
COMPUTE bagemdex = 0.
EXECUTE.
IF (btwbage1 > (30/12) | btwbage2 > (30/12)) bagemdex = 1.
IF (btwbage1 < (22/12) | btwbage2 < (22/12)) bagemdex = 1.
EXECUTE.

* Strict version: each twin age no greater than 27/12 (2 years 3 months).
* and no less than 22/12 (1 year 10 months).
* and age differences no more than 2 months.
COMPUTE bagestex = 0.
EXECUTE.
IF (btwbage1 > (27/12) | btwbage2 > (27/12)) bagestex = 1.
IF (btwbage1 < (22/12) | btwbage2 < (22/12)) bagestex = 1.
EXECUTE.
IF (btwbagediff > (2/12)) bagestex = 1.
EXECUTE.
bcont1/2, bemot1/2, bhypt1/2, bprot1/2

Overall behaviour scales derived from all suitable Behar behaviour items and not just those that are comparable with SDQ items.
bcont1/2: Conduct scale, from 9 Behar items.
bemot1/2: Emotion scale, from 5 Behar items.
bhypt1/2: Hyperactivity scale, from 5 Behar items.
bprot1/2: Prosocial scale, from 10 Behar items.
These are very similar to equivalent Behar scales used at age 3, except that (a) an extra emotion item was added at age 3, and (b) 3 extra hyperactivity items were added at age 3.
See comments in syntax below for further details. At least half of the component items are required to be non-missing for each subscale.

* Overall Behar scales, using all suitable correlating items.
* and not just those that are similar to SDQ items.
* These are comparable with the overall scales used at ages 3 and 4.
* although those scales include some additional items.
* that were not included at age 2.
* Conduct problems: 9 Behar items.
COMPUTE bcont = 9 * MEAN.5(bbeh05, bbeh07, bbeh12, bbeh17, 
   bbeh23, bbeh29, bbeh35, bbeh38, bbeh40).
* Emotion problems: 5 Behar items.
COMPUTE bemot = 5 * MEAN.3(bbeh10, bbeh14, bbeh20, bbeh33, bbeh42).
* Hyperactivity: 5 Behar items.
COMPUTE bhypt = 5 * MEAN.3(bbeh02, bbeh04, bbeh19, bbeh30, bbeh37).
* Prosocial: 10 Behar items.
COMPUTE bprot = 10 * MEAN.5(bbeh01, bbeh03, bbeh09, bbeh13, bbeh18, 
   bbeh21, bbeh25, bbeh36, bbeh41, bbeh43).
EXECUTE.
* (no Peer problems scale here because there are no additional items. 
*  beyond the 3 used in the SDQ-comparable scale).

* Note that some Behar items (beh06, 15, 16, 22, 24, 26, 27, 28, 32, 34, 39).
*  have not been included in any scales because they show little if any correlation.
*  or because they do not clearly belong to these traits.
*  (conduct, emotion, hyperactivity, prosocial, peer).
bblockt1/2

Total score for the block-building Parca test, derived as a sum of item scores. Each item score has range 0-3, so the total score has range 0-12.
The item scores are derived variables that are described elsewhere on this page.
In the syntax below, the score is derived as variable bblockt, which is later double-entered to become bblockt1/2.

* Total Block test score is a simple sum of the 4 item scores.
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE bblockt = SUM.1(bpb01s, bpb02s, bpb03s, bpb04s).
EXECUTE.
bcomplx1/2

Total score for sentence complexity, derived as the sum of the 12 item scores plus the 6th word use item score. Each of these items has scores 0/1, hence the sentence complexity total score has range 0-13.
Derived as variable bcomplx in the syntax below, and later double-entered to become bcomplx1/2.

* Sum of the 12 sentence complexity item scores.
* plus the 6th word use item score.
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE bcomplx = SUM.1(bs01s, bs02s, bs03s, bs04s, bs05s, bs06s,
 bs07s, bs08s, bs09s, bs10s, bs11s, bs12s, bwu06s).
EXECUTE.
* Note that if bwu06s = 0 (not using sentences yet) then the.
* sentence complexity item scores have been recoded to zero.
* in the cleaning syntax; hence sentence complexity total will be zero.
bcont1/2

See bbeht1/2, etc above.

bcopyt1/2

Total score for the copy (or follow the leader) Parca test. Derived as the sum of the 4 item score variables, which are described elsewhere on this page.
Derived as variable bcopyt in the syntax below, and later double-entered to become bcopyt1/2.

* Total Copy test score is a simple sum of the 4 item scores.
* all of which are 0-2 so total score has range 0-8.
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE bcopyt = SUM.1(bpc01s, bpc05s, bpc06s, bpc07s).
EXECUTE.
bdrawt1/2

Total score for the drawing Parca test, derived as the sum of the 4 item scores.
Derived as variable bdrawt in the syntax below, and later double-entered to become bdrawt1/2.

* Total score is the sum of the 4 item scores (each 0/1).
* so total score has range 0-4.
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE bdrawt = SUM.1(bpd01, bpd02, bpd03, bpd04).
EXECUTE.
bemot1/2

See bbeht1/2, etc above.

bexcludm, bexcluds

Twin pair exclusion variables (coded 1=exclude, 0=not excluded) incorporating standard analysis exclusions plus twin age exclusions. Variable bexcluds incorporates strict age exclusions, while variable bexcludm incorporates moderate age exclusion criteria.
Derived from the standard exclusion variables exclude1/2 and from age exclusion variables bagemdex and bagestex, which are described elsewhere on this page.

COMPUTE bexcludm = 0.
COMPUTE bexcluds = 0.
EXECUTE.
IF (bagemdex = 1 | exclude1 = 1 | exclude2 = 1) bexcludm = 1.
EXECUTE.
IF (bagestex = 1 | exclude1 = 1 | exclude2 = 1) bexcluds = 1.
EXECUTE.
bfoldt1/2

Total score for the paper-folding Parca test, derived as a sum of the 2 item scores.
Derived as variable bfoldt in the syntax below, and later double-entered to become bfoldt1/2.

* There are only 2 items, each scored 0/1.
* Total score is a sum, having range 0-2.
COMPUTE bfoldt = SUM.1(bpp01a, bpp01b).
EXECUTE.
bgramma1/2

Composite Grammar score, with ordinal values 0, 1 and 2. Derived from sentence complexity total score bcomplx (described elsewhere on this page) and from word use item score bwu06s (which itself contributes to the sentence complexity score).
Derived as variable bgramma in the syntax below, and later double-entered to become bgramma1/2.

* Grammar ordinal score.
* This is essentially an ordinal (0/1/2) version of sentence complexity.
* 0 if not using sentences yet.
IF (bwu06s = 0) bgramma = 0.
EXECUTE.
* 1 if using sentences but sentence complexity score is 1.
* (bwu06s = 1 but no scores from the sentence complexity items).
IF (bcomplx = 1) bgramma = 1.
EXECUTE.
* 2 if sentence complexity score is greater than 1.
* (bwu06s = 1 and at least 1 score from the sentence complexity items).
IF (bcomplx > 1) bgramma = 2.
EXECUTE.
bhypt1/2

See bbeht1/2, etc above.

bmatcht1/2

Total score for the matching Parca test. Derived as the sum of the 8 item scores, which are described elswhere on this page.
Derived as variable bmatcht in the syntax below, and later double-entered to become bmatcht1/2.

* Total score is the sum of the 8 item scores (each 0/1).
* so total score has range 0-8.
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE bmatcht = SUM.1(bpm01s, bpm02s, bpm03s,
 bpm04s, bpm05s, bpm06s, bpm07s, bpm08s).
EXECUTE.
bparca1/2

Standardised overall score for Parca cognitive tests, computed as the mean of the parent-administered and parent-reported Parca scores, equally weighted. The variables are standardised on the non-excluded sample, defined by variable exclude1. The constituent scores are breparc and badparc, which are described elsewhere on this page.
The syntax below derives variable bparca, which is later double entered to become bparca1/2.

* Filter out all the standard exclusions for the twin.
* (medical, perinatal, unknown sex/zyg, missing 1st Contact).
* This will affect all standardised variables derived below.
USE ALL.
COMPUTE filter_$=(exclude1 = 0).
VARIABLE LABEL filter_$ 'exclude1 = 0 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE.

* Standardised overall Parca score, based on the simple.
* total scores for parent-administered and parent-reported Parca.
* First standardise the two overall scores.
DESCRIPTIVES VARIABLES=breparc (zreparc) badparc (zadparc) /SAVE.
* get the mean - require at least one to be non-missing.
COMPUTE parca = MEAN.1(zreparc, zadparc).
EXECUTE.
* Now standardise this mean.
DESCRIPTIVES VARIABLES=parca (bparca) /SAVE.

* Remove filter.
FILTER OFF.
USE ALL.
EXECUTE.
bpb01s1/2, bpb02s1/2, bpb03s1/2, bpb04s1/2

Scores for the 4 main block-building test items. Item 1 has two parts (a and b) while items 3 and 4 each have three parts (a, b and c). The scores from each part are combined so that each item, 1 to 4, has a single overall score with values 0, 1, 2 or 3.
The scores are computed as variables bpb01s, bpb02s, bpb03s and bpb04s in the syntax below, which are later double-entered to become bpb01s1/2, bpb02s1/2, bpb03s1/2 and bpb04s1/2.

* Each test item has two or more parts; combine into a single item score (0-3).

* Item 1 score 0 if 0 or 1 blocks put together.
IF (ANY(bpb01a,0,1)) bpb01s = 0.
* score 1 if 2-4 blocks put together.
IF (ANY(bpb01a,2,3,4)) bpb01s = 1.
* score 2 if 5+ blocks put together but not pushed.
IF (bpb01a > 4 & (bpb01b = 0 | SYSMIS(bpb01b))) bpb01s = 2.
* score 3 if 5+ blocks put together and pushed.
IF (bpb01a > 4 & bpb01b = 1) bpb01s = 3.
EXECUTE.

* Item 2: recode number of bricks (0-10) to 0/1/2/3 ordinal score.
RECODE bpb02 (0=0) (1=0) (2=1) (3=1) (4=2) (5=2) (6 THRU 10=3)
INTO bpb02s.
EXECUTE.

* Items 3 and 4: each is a sum of three parts, all scored 1Y 0N.
* Require at least one to be non-missing (if others missing, treat as zero).
COMPUTE bpb03s = SUM.1(bpb03a, bpb03b, bpb03c).
COMPUTE bpb04s = SUM.1(bpb04a, bpb04b, bpb04c).
EXECUTE.
bpbage, btwbage1/2

Twin ages (in years) when the 2 year booklets were completed: bpbage for the parent booklet, btwbage1/2 for the the child booklet.
The parent booklet age is the same for both twins, hence only one variable is required. The child booklet age is computed as btwbage in the syntax below, and later double entered to become btwbage1/2.
The ages are computed from corresponding temporary date variables (bpbdate, btwbdate) which are derived from raw date variables but not retained in the dataset. The variable AONSBdate is the twins' birth date, and is a temporary variable (from admin data) that is not retained in the dataset.

* get best estimate of parent booklet date.
* Start with the 'anything new' date.
COMPUTE bpbdate = bnewdate .
EXECUTE.
* if missing, use the consent date.
IF (SYSMIS(bpbdate)) bpbdate = bcondate.
EXECUTE.
* if parent booklet still missing, use the twin booklet date.
IF (SYSMIS(bpbdate)) bpbdate = btwdate.
EXECUTE.
* conversely, if twin booklet date is missing, use parent booklet date.
IF (SYSMIS(btwdate)) btwdate = bpbdate.
EXECUTE.
* fill in any remaining missing values with the admin return date.
IF (SYSMIS(bpbdate)) bpbdate = ReturnedDate.
IF (SYSMIS(btwdate)) btwdate = ReturnedDate.
EXECUTE.

* Age variables.
* Compute twin ages (in decimal years) when parent and twin booklets completed.
* Twin booklet.
COMPUTE btwbage = RND(((DATEDIFF(btwdate,aonsdob,"days")) / 365.25), 0.1) .
EXECUTE.
* Parent booklet.
COMPUTE bpbage =  RND(((DATEDIFF(bpbdate,aonsdob,"days")) / 365.25), 0.1) .
EXECUTE.
bpbLLCage, bpbLLCdate, btwbLLCage1/2, btwbLLCdate1/2

Age and date variables derived for use in datasets in the LLC TRE (but not to be used in other datasets).
Ages and dates are derived for the parent booklet ('bpb') and twin booklet ('btwb').
The LLC date variables contain only the month and year, not the day, as a means of reducing identifiability. The date variables are strings formatted as 'yyyy-mm'. These LLC dates are designed to enable the TEDS measures to be placed in a time sequence with NHS medical diagnosis dates in the data in the TRE.
The LLC age variables are integers measuring the number of months between birth and the given TEDS activity, consistent with the matching LLC date variables.
Variable aonsdob is the twin birth date - the raw date variables are not retained in the dataset.

* First extract year and month as temp variables, from birth date and activity dates.
COMPUTE birthyear = XDATE.YEAR(aonsdob).
COMPUTE birthmonth = XDATE.MONTH(aonsdob).
COMPUTE btwbyear = XDATE.YEAR(btwdate).
COMPUTE btwbmonth = XDATE.MONTH(btwdate).
COMPUTE bpbyear = XDATE.YEAR(bpbdate).
COMPUTE bpbmonth = XDATE.MONTH(bpbdate).
EXECUTE.

* The agreed LLC date format is a string yyyy-mm (nominal by default for strings).
* adding '0' where necessary for two-digit months.
STRING btwbLLCdate bpbLLCdate (A7).
IF (btwbmonth < 10) btwbLLCdate = CONCAT(STRING(btwbyear, F4), '-0', STRING(btwbmonth, F1)).
IF (btwbmonth >= 10) btwbLLCdate = CONCAT(STRING(btwbyear, F4), '-', STRING(btwbmonth, F2)).
IF (bpbmonth < 10) bpbLLCdate = CONCAT(STRING(bpbyear, F4), '-0', STRING(bpbmonth, F1)).
IF (bpbmonth >= 10) bpbLLCdate = CONCAT(STRING(bpbyear, F4), '-', STRING(bpbmonth, F2)).
EXECUTE.

* The agreed LLC age variable is in integer months.
* and it must agree with the birth and booklet year/month variables that will be available in the LLC.
COMPUTE btwbLLCage = (btwbmonth + (btwbyear * 12)) - (birthmonth + (birthyear * 12)).
COMPUTE bpbLLCage = (bpbmonth + (bpbyear * 12)) - (birthmonth + (birthyear * 12)).
EXECUTE.
bpc01s1/2, bpc05s1/2, bpc06s1/2, bpc07s1/2

Scores for the 4 main parts of the copy (follow the leader) Parca test.
The score for the first part, bpc01s, derives from items 1 to 4. The scores for the three other parts, bpc05s, bpc06s and bpc07s, derive from items 5, 6 and 7 respectively, each of which items has two parts (a and b). Each of the 4 scores has ordinal values 0, 1 or 2.
The scores are computed as variables bpc01s, bpc05s, bpc06s and bpc07s in the syntax below, which are later double-entered to become bpc01s1/2, bpc05s1/2, bpc06s1/2 and bpc07s1/2.

* Each test item has two or more parts; combine into a single item score.

* Sum items 1 to 4 (all scored 0/1), and use the sum to derive.
* an ordinal score with values 0/1/2.
IF (SUM(bpc01, bpc02, bpc03, bpc04) = 0) bpc01s = 0.
IF (ANY(SUM(bpc01, bpc02, bpc03, bpc04),1,2,3)) bpc01s = 1.
IF (SUM(bpc01, bpc02, bpc03, bpc04) = 4) bpc01s = 2.
EXECUTE.

* Each of items 5 to 7 have two parts (scored 0/1).
* so sum them to get item scores with values 0-2.
COMPUTE bpc05s = SUM(bpc05a, bpc05b).
COMPUTE bpc06s = SUM(bpc06a, bpc06b).
COMPUTE bpc07s = SUM(bpc07a, bpc07b).
EXECUTE.
bpm01s1/2 through to bpm08s1/2

Scores for the 8 items of the matching Parca test.
Each score is coded 1=correct, 0=incorrect, and is derived simply by recoding the item responses.
In the syntax below, the scores are derived as variables bpm01s through to bpm08s, which are later double entered to become variables bpm01s1/2 through to bpm08s1/2.

* recode matching responses into new score variables.
* according to the 'correct' answer.
NUMERIC bpm01s bpm02s bpm03s bpm04s bpm05s bpm06s bpm07s bpm08s (F1.0).
RECODE PM01 PM03 PM07 (3=1) (SYSMIS=SYSMIS) (ELSE=0)
INTO bpm01s bpm03s bpm07s .
RECODE PM02 PM04 PM05 (2=1) (SYSMIS=SYSMIS) (ELSE=0)
INTO bpm02s bpm04s bpm05s .
RECODE PM06 PM08 (4=1) (SYSMIS=SYSMIS) (ELSE=0)
INTO bpm06s bpm08s .
EXECUTE.
bprot1/2

See bbeht1/2, etc above.

brawg1/2, bscnv1/2, bscv1/2

Standardised cognitive ability composite scores.
bscv1/2 is the verbal ability composite, bscnv1/2 is the non-verbal ability composite, and brawg1/2 is 'g' or the general cognitive ability composite.
Each composite is derived as an equally-weighted mean of the appropriate standardised component variables: breparc, badparn, bvocab and bgramma; each of these variables is described elsewhere on this page.
The variables are standardised on the non-excluded sample, defined by variable exclude1.
In the syntax below the scores are computed as variables brawg, bscnv and bscv, which are later double-entered to become brawg1/2, bscnv1/2 and bscv1/2.

* Filter non-exclusions for the twin.
* This will affect all standardised variables derived below.
USE ALL.
COMPUTE filter_$=(exclude1 = 0).
VARIABLE LABEL filter_$ 'exclude1 = 0 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE.

* Standardised contributing variables: parent-reported Parca total.
DESCRIPTIVES VARIABLES=breparc (zreparc) /SAVE.
* and vocab and grammar scores.
DESCRIPTIVES VARIABLES=bvocab (zvocab) bgramma (zgramma) /SAVE.
* We will also use badparn (parent-administered Parca composite).
* but this is already standardised.

* General cognitive ability composites.
* combine the parent-report and parent-administered Parca.
* (non-verbal ability) with the vocab and grammar (verbal ability).
* Derive composites as means from standardised scores.
* requiring all of them to be non-missing.

* Verbal ability composite: from vocab and grammar.
COMPUTE scv = MEAN.2(zvocab, zgramma).
EXECUTE.
* Non-verbal ability composite: from two Parca scores.
COMPUTE scnv = MEAN.2(badparn, zreparc).
EXECUTE.
* General cognitive ability ('g'): from all four scores.
COMPUTE rawg = MEAN.4(zvocab, zgramma, badparn, zreparc).
EXECUTE.
* Now standardise them.
DESCRIPTIVES VARIABLES=scv (bscv) scnv (bscnv) rawg (brawg) /SAVE.

* Remove filter.
FILTER OFF.
USE ALL.
EXECUTE.
breparc1/2

Total score for the parent-reported Parca measure, derived as a simple sum of the 26 item scores.
Derived as variable breparc in the syntax below, and later double-entered to become breparc1/2.

* Sum of the 26 items, all scored 0/1.
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE breparc = SUM.1(bpr01, bpr02, bpr03, bpr04,
 bpr05, bpr06, bpr07, bpr08, bpr09, bpr10, bpr11,
 bpr12, bpr13, bpr14, bpr15, bpr16, bpr17, bpr18,
 bpr19, bpr20, bpr21, bpr22, bpr23, bpr24, bpr25, bpr26).
EXECUTE.
bscnv1/2, bscv1/2

See brawg1/2, bscnv1/2, bscv1/2 above.

bsdqcbeht1/2, bsdqccont1/2, bsdqcemot1/2, bsdqchypt1/2, bsdqcpert1/2, bsdqcprot1/2

SDQ-comparable subscales derived from Behar behaviour items.
Each is derived from items that are very similar to SDQ items used at age 4 and later, to enable longitudinal comparisons of near-equivalent scales. These age 2 scales are the same as used at age 3, except that an additional emotion item was added at age 3.
bsdqccont1/2: conduct problems subscale, from 4 items.
bsdqcemot1/2: emotional problems subscale, from 2 items.
bsdqchypt1/2: hyperactivity subscale, from 3 items.
bsdqcpert1/2: peer problems subscale, from 3 items.
bsdqcprot1/2: prosocial subscale, from 5 items.
bsdqcbeht1/2: total behaviour problems subscale, from the 10 conduct, emotion and hyperactivity items.
See comments in syntax below for more detailed descriptions.

* SDQ-comparable Behar scales.
* (same as used at age 3, except that another emotion item was added at age 3).
* Derived from Behar items that are very similar to equivalent SDQ items.
*  used at ages 4 and later, to enable longitudinal comparisons.
* Omit age 2 Behar items that are dissimilar to the SDQ.
*  even if they correlate well (used in overall scales instead).
* Conduct subscale from 4 items.
*  Note that bbeh07 (fights) and bbeh29 (bullies) correlate highly.
*  with each other and equate to a single SDQ item.
*  so only use one of them (bbeh29) here so they do not skew the scale.
COMPUTE bsdqccont = 4 * MEAN.2(bbeh12, bbeh17, bbeh23, bbeh29).
* Emotion subscale from 2 items.
COMPUTE bsdqcemot = 2 * MEAN.1(bbeh10, bbeh14).
* Hyperactivity subscale from 3 items.
COMPUTE bsdqchypt = 3 * MEAN.2(bbeh02, bbeh04, bbeh19).
* Peer problem subscale from 3 items.
COMPUTE bsdqcpert = 3 * MEAN.3(bbeh08, bbeh11, bbeh31r).
* Prosocial subscale from 5 items.
*  Note that bbeh03 and bbeh18 are in fact identical to SDQ items.
*  Note also that bbeh13, 21 and 25 (helping children who are hurt, ill, upset).
*  correlate highly with each other and equate to a single SDQ item.
*  so only use one of them (bbeh13) here so they do not skew the scale.
COMPUTE bsdqcprot = 5 * MEAN.3(bbeh03, bbeh09, bbeh13, bbeh18, bbeh36).
* Total behaviour problems, from 12 conduct/emotion/hyperactivity/peer items.
COMPUTE bsdqcbeht = 12 * MEAN.6(bbeh02, bbeh04, bbeh07, bbeh08,
  bbeh10, bbeh11, bbeh14, bbeh17, bbeh19, bbeh23, bbeh29, bbeh31r).
EXECUTE.
btwbage1/2

See bpbage, btwbage1/2 above.

btwbagediff

Twin pair age difference (in years) for completion of the child booklet.
Computed from double-entered derived age variables btwbage1/2, which are described elsewhere on this page.

* Difference in ages between pair of twins when child booklets completed.
COMPUTE btwbagediff = RND((ABS(btwbage1 - btwbage2)), 0.1).
EXECUTE.
btwbLLCage1/2, btwbLLCdate1/2

See bpbLLCage, etc above.

btwoyear

Flag variable showing the presence (1=yes) of 2 year booklet data.
The syntax below was executed after merging together the parent booklet and twin booklet data in the double entered dataset. Hence btwoyear=1 if parent booklet data is present and/or child booklet data is present for either or both twins.

COMPUTE btwoyear = 1.
EXECUTE.
buse1/2

Total score for Word Use, computed as the sum of 5 item scores.
The item scores are derived variables that are described elsewhere on this page.
Derived as variable buse in the syntax below, and later double-entered to become buse1/2.

* Sum of 5 item scores, each 0-1.
* (item 6 not used here - used for sentence complexity score).
* Require at least one item to be non-missing.
* so if other items are missing they are treated like zero scores.
COMPUTE buse = SUM.1(bwu01s, bwu02s, bwu03s, bwu04s, bwu05s).
EXECUTE.
bvocab1/2

Total score for Vocabulary, computed as a simple sum of the 100 item scores.
As shown in the syntax, a correction is made in an attempt to remove bogus zero scores which may have been recorded by default in place of missing data. This correction makes use of other derived variables (buse, bvocab, bcomplx, bwu06s), all of which are described elsewhere on this page.
Derived as variable bvocab in the syntax below, and later double-entered to become bvocab1/2.

* Sum of the 100 vocab item scores.
COMPUTE bvocab = SUM(bvc001, bvc002, bvc003, bvc004, bvc005, 
 bvc006, bvc007, bvc008, bvc009, bvc010, bvc011, bvc012, bvc013, 
 bvc014, bvc015, bvc016, bvc017, bvc018, bvc019, bvc020, bvc021, 
 bvc022, bvc023, bvc024, bvc025, bvc026, bvc027, bvc028, bvc029, 
 bvc030, bvc031, bvc032, bvc033, bvc034, bvc035, bvc036, bvc037, 
 bvc038, bvc039, bvc040, bvc041, bvc042, bvc043, bvc044, bvc045, 
 bvc046, bvc047, bvc048, bvc049, bvc050, bvc051, bvc052, bvc053, 
 bvc054, bvc055, bvc056, bvc057, bvc058, bvc059, bvc060, bvc061, 
 bvc062, bvc063, bvc064, bvc065, bvc066, bvc067, bvc068, bvc069, 
 bvc070, bvc071, bvc072, bvc073, bvc074, bvc075, bvc076, bvc077, 
 bvc078, bvc079, bvc080, bvc081, bvc082, bvc083, bvc084, bvc085, 
 bvc086, bvc087, bvc088, bvc089, bvc090, bvc091, bvc092, bvc093, 
 bvc094, bvc095, bvc096, bvc097, bvc098, bvc099, bvc100).
EXECUTE.
* Default coding for vocab items is 0 not missing.
* Hence there are some dubious zero scores arising from missing data.
* Identify these where Word Use items give evidence of productive speech.
* and recode zero vocab scores to missing.
DO IF ((buse > 0 | bwu06s = 1) & bvocab = 0).
 RECODE bvocab (0=SYSMIS).
END IF.
EXECUTE.
* Also, if word use and sentence complexity scores are missing.
* and vocab score is zero, this suggests the entire section was skipped.
DO IF (SYSMIS(buse) & SYSMIS(bcomplx) & bvocab = 0).
 RECODE bvocab (0=SYSMIS).
END IF.
EXECUTE.
bwu01s1/2 through to bwu06s1/2

Item scores for the 6 Word Use items, derived by recoding the item responses. Each item is given a score of 1 for a response of 'often' or 'sometimes' or 0 for a response of 'not yet'.
In the syntax below, the scores are derived as variables bwu01s through to bwu06s, which are later double entered to become variables bwu01s1/2 through to bwu06s1/2.

* recode word use responses into new score variables).
* treating 1=often and 2=sometimes both as correct scoring 1.
RECODE WU01 WU02 WU03 WU04 WU05 WU06 (1=1) (2=1) (3=0)
INTO bwu01s bwu02s bwu03s bwu04s bwu05s bwu06s.
EXECUTE.