Hospital Anxiety and Depression Scale – Anxiety Subscale (HADS-A)
Description: Detecting states of depression and anxiety.
Number of Items: 7
| Item | Question Wording | TILDA Variable (CAPI) (W2-4) | TILDA Variable (SCQ)(W1) |
|---|---|---|---|
| 1 | I feel tense or wound up. | mh201 | SCQAnxiety1 |
| 2 | I get a sort of frightened feeling as if something awful is about to happen. | mh202 | SCQAnxiety2 |
| 3 | Worrying thoughts go through my mind. | mh203 | SCQAnxiety3 |
| 4 | I can sit at ease and feel relaxed. | mh204 | SCQAnxiety4 |
| 5 | I get a sort of frightened feeling like “butterflies” in the stomach. | mh205 | SCQAnxiety5 |
| 6 | I feel restless as if I have to be on the move. | mh206 | SCQAnxiety6 |
| 7 | I get sudden feelings of panic. | mh207 | SCQAnxiety7 |
Scoring Method:
Response options differ dependent on item. All 4-point Likert scale.
A cumulative score is generated with higher scores representing greater levels of anxiety (range 0-21).
Item 4 is positively worded and reverse scored prior to calculation.
Citation:
Zigmond, A. S., & Snaith, R. P. (1983). The hospital anxiety and depression scale. Acta psychiatrica Scandinavica, 67(6), 361–370. https://doi.org/10.1111/j.1600-0447.1983.tb09716.x
Sivertsen, H. E., Helvik, A. S., Gjøra, L., & Haugan, G. (2023). Psychometric validation of the Hospital Anxiety and Depression Scale (HADS) in community-dwelling older adults. BMC psychiatry, 23(1), 903. https://doi.org/10.1186/s12888-023-05407-2
Example TILDA Papers:
Orr, J., O'Connell, M.D.L. and Kenny, R.A. (2019). Religious attendance, social networks and mental health in older adults. Research on Aging.
Briggs, R. et al. (2021). The 'Wish to Die' in Later Life: Prevalence, Longitudinal Course and Mortality. Data from TILDA. Age and Ageing.
Code
///SCQ Version
///Questions 4 and 5 is reversed, the others are all 3 2 1 0, ie 4 minus coded score
gen hadsa = 0 if has_scq == 1
foreach posq in SCQAnxiety1 SCQAnxiety2 SCQAnxiety3 SCQAnxiety6 SCQAnxiety7{
replace hadsa = hadsa + (4-`posq')
replace hadsa = . if `posq' == 999 | `posq' <0
}
replace hadsa = hadsa + (SCQAnxiety4-1)
replace hadsa = hadsa + (SCQAnxiety5-1)
replace hadsa = . if SCQAnxiety4 == 999 | SCQAnxiety4<0
replace hadsa = . if SCQAnxiety5 == 999 | SCQAnxiety5<0
label variable hadsa "HADS-A Anxiety Scale"
rename hadsa MHhadsa
///CAPI Version
gen hadsa = 0
foreach posq in mh201 mh202 mh203 mh206 mh207{
replace hadsa = hadsa + (4-`posq')
replace hadsa = . if `posq' == 98 | `posq' ==99 | `posq' ==-1
}
foreach negq in mh204 mh205{
replace hadsa = hadsa + (`negq'-1)
replace hadsa = . if `negq' == 98 | `negq' ==99 | `negq' ==-1
}
label variable hadsa "HADS-A Anxiety Scale (CAPI)"
rename hadsa MHhadsa_capi
notes MHhadsa_capi : HADS-A moved from SCQ to CAPI in Wave 2# ============================================================
# HADS-A Anxiety Scale - SCQ Version
# ============================================================
# Initialise score only for participants who completed the SCQ
data$hadsa <- NA_real_
data$hadsa[data$has_scq == 1 & !is.na(data$has_scq)] <- 0
# Positively scored items
posq <- c(
"SCQAnxiety1",
"SCQAnxiety2",
"SCQAnxiety3",
"SCQAnxiety6",
"SCQAnxiety7"
)
for (var in posq) {
data$hadsa <- data$hadsa + (4 - data[[var]])
# Set total score to missing if item is invalid/missing
data$hadsa[
!is.na(data[[var]]) &
(data[[var]] == 999 | data[[var]] < 0)
] <- NA_real_
}
# Questions 4 and 5 are scored in the opposite direction
data$hadsa <- data$hadsa + (data$SCQAnxiety4 - 1)
data$hadsa <- data$hadsa + (data$SCQAnxiety5 - 1)
# Set total score to missing if either item is invalid/missing
data$hadsa[
!is.na(data$SCQAnxiety4) &
(data$SCQAnxiety4 == 999 | data$SCQAnxiety4 < 0)
] <- NA_real_
data$hadsa[
!is.na(data$SCQAnxiety5) &
(data$SCQAnxiety5 == 999 | data$SCQAnxiety5 < 0)
] <- NA_real_
# Variable label
attr(data$hadsa, "label") <- "HADS-A Anxiety Scale"
# Rename
names(data)[names(data) == "hadsa"] <- "MHhadsa"
# ============================================================
# HADS-A Anxiety Scale - CAPI Version
# ============================================================
data$hadsa <- 0
# Positively scored items
posq <- c("mh201", "mh202", "mh203", "mh206", "mh207")
for (var in posq) {
data$hadsa <- data$hadsa + (4 - data[[var]])
data$hadsa[
!is.na(data[[var]]) &
data[[var]] %in% c(98, 99, -1)
] <- NA_real_
}
# Negatively scored items
negq <- c("mh204", "mh205")
for (var in negq) {
data$hadsa <- data$hadsa + (data[[var]] - 1)
data$hadsa[
!is.na(data[[var]]) &
data[[var]] %in% c(98, 99, -1)
] <- NA_real_
}
# Variable label
attr(data$hadsa, "label") <- "HADS-A Anxiety Scale (CAPI)"
# Rename
names(data)[names(data) == "hadsa"] <- "MHhadsa_capi"* ============================================================.
* HADS-A Anxiety Scale - SCQ Version.
* ============================================================.
COMPUTE hadsa = $SYSMIS.
IF (has_scq = 1) hadsa = 0.
* Positively scored items.
COMPUTE hadsa = hadsa + (4 - SCQAnxiety1).
IF (SCQAnxiety1 = 999 OR SCQAnxiety1 < 0) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - SCQAnxiety2).
IF (SCQAnxiety2 = 999 OR SCQAnxiety2 < 0) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - SCQAnxiety3).
IF (SCQAnxiety3 = 999 OR SCQAnxiety3 < 0) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - SCQAnxiety6).
IF (SCQAnxiety6 = 999 OR SCQAnxiety6 < 0) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - SCQAnxiety7).
IF (SCQAnxiety7 = 999 OR SCQAnxiety7 < 0) hadsa = $SYSMIS.
* Questions 4 and 5 scored in opposite direction.
COMPUTE hadsa = hadsa + (SCQAnxiety4 - 1).
COMPUTE hadsa = hadsa + (SCQAnxiety5 - 1).
IF (SCQAnxiety4 = 999 OR SCQAnxiety4 < 0) hadsa = $SYSMIS.
IF (SCQAnxiety5 = 999 OR SCQAnxiety5 < 0) hadsa = $SYSMIS.
VARIABLE LABELS hadsa "HADS-A Anxiety Scale".
RENAME VARIABLES (hadsa = MHhadsa).
* ============================================================.
* HADS-A Anxiety Scale - CAPI Version.
* ============================================================.
COMPUTE hadsa = 0.
* Positively scored items.
COMPUTE hadsa = hadsa + (4 - mh201).
IF (mh201 = 98 OR mh201 = 99 OR mh201 = -1) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - mh202).
IF (mh202 = 98 OR mh202 = 99 OR mh202 = -1) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - mh203).
IF (mh203 = 98 OR mh203 = 99 OR mh203 = -1) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - mh206).
IF (mh206 = 98 OR mh206 = 99 OR mh206 = -1) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (4 - mh207).
IF (mh207 = 98 OR mh207 = 99 OR mh207 = -1) hadsa = $SYSMIS.
* Negatively scored items.
COMPUTE hadsa = hadsa + (mh204 - 1).
IF (mh204 = 98 OR mh204 = 99 OR mh204 = -1) hadsa = $SYSMIS.
COMPUTE hadsa = hadsa + (mh205 - 1).
IF (mh205 = 98 OR mh205 = 99 OR mh205 = -1) hadsa = $SYSMIS.
VARIABLE LABELS hadsa "HADS-A Anxiety Scale (CAPI)".
RENAME VARIABLES (hadsa = MHhadsa_capi).
EXECUTE.