Relationship scale
Relationship Quality Scale – Spouse/Child/Family
Measuring: Assess the quality of social support received from spouses/partners/friends/family.
Number of Items: 7
Item1 |
Question WordingHow much does he/she really understand the way you feel about things? |
TILDA Variable | ====================================+ SCQQRSpou1 SCQQRChld1 SCQQROtherFam1 |
| 2 | How much can you rely on him/her if you have a serious problem? | SCQQRSpou2 | | SCQQRChld2 SCQQROtherFam2 |
| 3 | How much can you open up to him/her if you need to talk about your worries? | SCQQRSpou3 SCQQRChld3 SCQQROtherFam3 |
| 4 | How much does he/she make too many demands on you? | SCQQRSpou4 SCQQRChld4 | | SCQQROtherFam4 |
| 5 | How much does he/she criticise you? | SCQQRSpou5 SCQQRChld5 SCQQROtherFam5 |
| 6 | How much does he/she let you down when you are counting on him/her? | SCQQRSpou6 SCQQRChld6 SCQQROtherFam6 |
| 7 | How much does he/she get on your nerves? | SCQQRSpou7 SCQQRChld7 SCQQROtherFam7 |
Scoring Method:
Scoring Method:
4-point Likert scale.
1 = A lot
2 = Some
3 = A little
4 = Not at all
A cumulative score is generated with higher scores representing poor relationship quality with high strain (0-24).
Items 4 – Item 7 are negatively worded, and reverse scored prior to calculation.
Citation: Furman, W., & Buhrmester, D. (2009). The Network of Relationships Inventory: Behavioral Systems Version. International journal of behavioral development, 33(5), 470–478. https://doi.org/10.1177/0165025409342634
Example TILDA Papers:
- Orr, J., Layte, R., & O'Leary, N. (2019). Sexual Activity and Relationship Quality in Middle and Older Age: Findings From The Irish Longitudinal Study on Ageing (TILDA). The journals of gerontology. Series B, Psychological sciences and social sciences, 74(2), 287–297. https://doi.org/10.1093/geronb/gbx038
Code
* Spouse: includes -1 missing by design
mvdecode ///
SCQQRSpou SCQQRSpou2 SCQQRSpou3 SCQQRSpou4 ///
SCQQRSpou5 SCQQRSpou6 SCQQRSpou7, ///
mv(-1=. \ -99=. \ -812=. \ -823=. \ -834=. \ -845=.)
* Children
mvdecode ///
SCQQRChld SCQQRChld2 SCQQRChld3 SCQQRChld4 ///
SCQQRChld5 SCQQRChld6 SCQQRChld7, ///
mv(-99=. \ -812=. \ -823=. \ -834=. \ -845=.)
* Other family
mvdecode ///
SCQQROtherFam SCQQROtherFam2 SCQQROtherFam3 SCQQROtherFam4 ///
SCQQROtherFam5 SCQQROtherFam6 SCQQROtherFam7, ///
mv(-99=. \ -812=. \ -823=. \ -834=. \ -845=.)
* Friends
mvdecode ///
SCQQRFrend SCQQRFrend2 SCQQRFrend3 SCQQRFrend4 ///
SCQQRFrend5 SCQQRFrend6 SCQQRFrend7, ///
mv(-99=. \ -812=. \ -823=. \ -834=. \ -845=.)
foreach rel in Spou Chld OtherFam Frend {
* Items 1-3: 1-4 becomes 0-3
gen QR`rel'1_s = SCQQR`rel' - 1 if inrange(SCQQR`rel', 1, 4)
gen QR`rel'2_s = SCQQR`rel'2 - 1 if inrange(SCQQR`rel'2, 1, 4)
gen QR`rel'3_s = SCQQR`rel'3 - 1 if inrange(SCQQR`rel'3, 1, 4)
* Items 4-7: reverse scored
* 1->3, 2->2, 3->1, 4->0
gen QR`rel'4_s = 4 - SCQQR`rel'4 if inrange(SCQQR`rel'4, 1, 4)
gen QR`rel'5_s = 4 - SCQQR`rel'5 if inrange(SCQQR`rel'5, 1, 4)
gen QR`rel'6_s = 4 - SCQQR`rel'6 if inrange(SCQQR`rel'6, 1, 4)
gen QR`rel'7_s = 4 - SCQQR`rel'7 if inrange(SCQQR`rel'7, 1, 4)
* Calculate total
egen QR`rel'Score = rowtotal( ///
QR`rel'1_s QR`rel'2_s QR`rel'3_s QR`rel'4_s ///
QR`rel'5_s QR`rel'6_s QR`rel'7_s ///
)
* Require all seven items to have valid responses
egen QR`rel'_missing = rowmiss( ///
QR`rel'1_s QR`rel'2_s QR`rel'3_s QR`rel'4_s ///
QR`rel'5_s QR`rel'6_s QR`rel'7_s ///
)
replace QR`rel'Score = . if QR`rel'_missing > 0
}
label variable QRSpouScore ///
"Relationship quality with spouse: total strain score (0-21)"
label variable QRChldScore ///
"Relationship quality with children: total strain score (0-21)"
label variable QROtherFamScore ///
"Relationship quality with other family: total strain score (0-21)"
label variable QRFrendScore ///
"Relationship quality with friends: total strain score (0-21)"
drop QRSpou1_s-QRSpou7_s QRSpou_missing
drop QRChld1_s-QRChld7_s QRChld_missing
drop QROtherFam1_s-QROtherFam7_s QROtherFam_missing
drop QRFrend1_s-QRFrend7_s QRFrend_missing# ---------------------------------------------------------------
# Recode special missing values
# ---------------------------------------------------------------
special_missing <- c(-99, -812, -823, -834, -845)
# Spouse: includes -1 missing by design
spouse_items <- c(
"SCQQRSpou", "SCQQRSpou2", "SCQQRSpou3", "SCQQRSpou4",
"SCQQRSpou5", "SCQQRSpou6", "SCQQRSpou7"
)
for (v in spouse_items) {
data[[v]][data[[v]] %in% c(-1, special_missing)] <- NA_real_
}
# Children
child_items <- c(
"SCQQRChld", "SCQQRChld2", "SCQQRChld3", "SCQQRChld4",
"SCQQRChld5", "SCQQRChld6", "SCQQRChld7"
)
for (v in child_items) {
data[[v]][data[[v]] %in% special_missing] <- NA_real_
}
# Other family
otherfam_items <- c(
"SCQQROtherFam", "SCQQROtherFam2", "SCQQROtherFam3", "SCQQROtherFam4",
"SCQQROtherFam5", "SCQQROtherFam6", "SCQQROtherFam7"
)
for (v in otherfam_items) {
data[[v]][data[[v]] %in% special_missing] <- NA_real_
}
# Friends
friend_items <- c(
"SCQQRFrend", "SCQQRFrend2", "SCQQRFrend3", "SCQQRFrend4",
"SCQQRFrend5", "SCQQRFrend6", "SCQQRFrend7"
)
for (v in friend_items) {
data[[v]][data[[v]] %in% special_missing] <- NA_real_
}
# ---------------------------------------------------------------
# Score each relationship scale
# ---------------------------------------------------------------
score_relationship <- function(data, rel, prefix) {
raw_vars <- c(prefix, paste0(prefix, 2:7))
score_vars <- paste0("QR", rel, 1:7, "_s")
# Items 1-3: 1-4 becomes 0-3
for (i in 1:3) {
x <- data[[raw_vars[i]]]
data[[score_vars[i]]] <- ifelse(
!is.na(x) & x >= 1 & x <= 4,
x - 1,
NA_real_
)
}
# Items 4-7: reverse scored
# 1->3, 2->2, 3->1, 4->0
for (i in 4:7) {
x <- data[[raw_vars[i]]]
data[[score_vars[i]]] <- ifelse(
!is.na(x) & x >= 1 & x <= 4,
4 - x,
NA_real_
)
}
# Sum items
score_name <- paste0("QR", rel, "Score")
data[[score_name]] <- rowSums(data[score_vars], na.rm = TRUE)
# Require all seven items to have valid responses
missing_name <- paste0("QR", rel, "_missing")
data[[missing_name]] <- rowSums(is.na(data[score_vars]))
data[[score_name]][data[[missing_name]] > 0] <- NA_real_
data
}
data <- score_relationship(data, "Spou", "SCQQRSpou")
data <- score_relationship(data, "Chld", "SCQQRChld")
data <- score_relationship(data, "OtherFam", "SCQQROtherFam")
data <- score_relationship(data, "Frend", "SCQQRFrend")
# ---------------------------------------------------------------
# Variable labels
# ---------------------------------------------------------------
attr(data$QRSpouScore, "label") <-
"Relationship quality with spouse: total strain score (0-21)"
attr(data$QRChldScore, "label") <-
"Relationship quality with children: total strain score (0-21)"
attr(data$QROtherFamScore, "label") <-
"Relationship quality with other family: total strain score (0-21)"
attr(data$QRFrendScore, "label") <-
"Relationship quality with friends: total strain score (0-21)"
# ---------------------------------------------------------------
# Drop temporary scoring variables
# ---------------------------------------------------------------
temporary_vars <- c(
paste0("QRSpou", 1:7, "_s"), "QRSpou_missing",
paste0("QRChld", 1:7, "_s"), "QRChld_missing",
paste0("QROtherFam", 1:7, "_s"), "QROtherFam_missing",
paste0("QRFrend", 1:7, "_s"), "QRFrend_missing"
)
data[temporary_vars] <- NULL* ---------------------------------------------------------------.
* Recode special missing values.
* ---------------------------------------------------------------.
* Spouse: includes -1 missing by design.
RECODE
SCQQRSpou SCQQRSpou2 SCQQRSpou3 SCQQRSpou4
SCQQRSpou5 SCQQRSpou6 SCQQRSpou7
(-1=SYSMIS) (-99=SYSMIS) (-812=SYSMIS) (-823=SYSMIS)
(-834=SYSMIS) (-845=SYSMIS).
* Children.
RECODE
SCQQRChld SCQQRChld2 SCQQRChld3 SCQQRChld4
SCQQRChld5 SCQQRChld6 SCQQRChld7
(-99=SYSMIS) (-812=SYSMIS) (-823=SYSMIS)
(-834=SYSMIS) (-845=SYSMIS).
* Other family.
RECODE
SCQQROtherFam SCQQROtherFam2 SCQQROtherFam3 SCQQROtherFam4
SCQQROtherFam5 SCQQROtherFam6 SCQQROtherFam7
(-99=SYSMIS) (-812=SYSMIS) (-823=SYSMIS)
(-834=SYSMIS) (-845=SYSMIS).
* Friends.
RECODE
SCQQRFrend SCQQRFrend2 SCQQRFrend3 SCQQRFrend4
SCQQRFrend5 SCQQRFrend6 SCQQRFrend7
(-99=SYSMIS) (-812=SYSMIS) (-823=SYSMIS)
(-834=SYSMIS) (-845=SYSMIS).
* ---------------------------------------------------------------.
* Score spouse relationship scale.
* ---------------------------------------------------------------.
COMPUTE QRSpou1_s = $SYSMIS.
IF (RANGE(SCQQRSpou,1,4)) QRSpou1_s = SCQQRSpou - 1.
COMPUTE QRSpou2_s = $SYSMIS.
IF (RANGE(SCQQRSpou2,1,4)) QRSpou2_s = SCQQRSpou2 - 1.
COMPUTE QRSpou3_s = $SYSMIS.
IF (RANGE(SCQQRSpou3,1,4)) QRSpou3_s = SCQQRSpou3 - 1.
COMPUTE QRSpou4_s = $SYSMIS.
IF (RANGE(SCQQRSpou4,1,4)) QRSpou4_s = 4 - SCQQRSpou4.
COMPUTE QRSpou5_s = $SYSMIS.
IF (RANGE(SCQQRSpou5,1,4)) QRSpou5_s = 4 - SCQQRSpou5.
COMPUTE QRSpou6_s = $SYSMIS.
IF (RANGE(SCQQRSpou6,1,4)) QRSpou6_s = 4 - SCQQRSpou6.
COMPUTE QRSpou7_s = $SYSMIS.
IF (RANGE(SCQQRSpou7,1,4)) QRSpou7_s = 4 - SCQQRSpou7.
COMPUTE QRSpouScore = SUM(
QRSpou1_s, QRSpou2_s, QRSpou3_s, QRSpou4_s,
QRSpou5_s, QRSpou6_s, QRSpou7_s
).
COMPUTE QRSpou_missing = NMISS(
QRSpou1_s, QRSpou2_s, QRSpou3_s, QRSpou4_s,
QRSpou5_s, QRSpou6_s, QRSpou7_s
).
IF (QRSpou_missing > 0) QRSpouScore = $SYSMIS.
* ---------------------------------------------------------------.
* Score children relationship scale.
* ---------------------------------------------------------------.
COMPUTE QRChld1_s = $SYSMIS.
IF (RANGE(SCQQRChld,1,4)) QRChld1_s = SCQQRChld - 1.
COMPUTE QRChld2_s = $SYSMIS.
IF (RANGE(SCQQRChld2,1,4)) QRChld2_s = SCQQRChld2 - 1.
COMPUTE QRChld3_s = $SYSMIS.
IF (RANGE(SCQQRChld3,1,4)) QRChld3_s = SCQQRChld3 - 1.
COMPUTE QRChld4_s = $SYSMIS.
IF (RANGE(SCQQRChld4,1,4)) QRChld4_s = 4 - SCQQRChld4.
COMPUTE QRChld5_s = $SYSMIS.
IF (RANGE(SCQQRChld5,1,4)) QRChld5_s = 4 - SCQQRChld5.
COMPUTE QRChld6_s = $SYSMIS.
IF (RANGE(SCQQRChld6,1,4)) QRChld6_s = 4 - SCQQRChld6.
COMPUTE QRChld7_s = $SYSMIS.
IF (RANGE(SCQQRChld7,1,4)) QRChld7_s = 4 - SCQQRChld7.
COMPUTE QRChldScore = SUM(
QRChld1_s, QRChld2_s, QRChld3_s, QRChld4_s,
QRChld5_s, QRChld6_s, QRChld7_s
).
COMPUTE QRChld_missing = NMISS(
QRChld1_s, QRChld2_s, QRChld3_s, QRChld4_s,
QRChld5_s, QRChld6_s, QRChld7_s
).
IF (QRChld_missing > 0) QRChldScore = $SYSMIS.
* ---------------------------------------------------------------.
* Score other-family relationship scale.
* ---------------------------------------------------------------.
COMPUTE QROtherFam1_s = $SYSMIS.
IF (RANGE(SCQQROtherFam,1,4)) QROtherFam1_s = SCQQROtherFam - 1.
COMPUTE QROtherFam2_s = $SYSMIS.
IF (RANGE(SCQQROtherFam2,1,4)) QROtherFam2_s = SCQQROtherFam2 - 1.
COMPUTE QROtherFam3_s = $SYSMIS.
IF (RANGE(SCQQROtherFam3,1,4)) QROtherFam3_s = SCQQROtherFam3 - 1.
COMPUTE QROtherFam4_s = $SYSMIS.
IF (RANGE(SCQQROtherFam4,1,4)) QROtherFam4_s = 4 - SCQQROtherFam4.
COMPUTE QROtherFam5_s = $SYSMIS.
IF (RANGE(SCQQROtherFam5,1,4)) QROtherFam5_s = 4 - SCQQROtherFam5.
COMPUTE QROtherFam6_s = $SYSMIS.
IF (RANGE(SCQQROtherFam6,1,4)) QROtherFam6_s = 4 - SCQQROtherFam6.
COMPUTE QROtherFam7_s = $SYSMIS.
IF (RANGE(SCQQROtherFam7,1,4)) QROtherFam7_s = 4 - SCQQROtherFam7.
COMPUTE QROtherFamScore = SUM(
QROtherFam1_s, QROtherFam2_s, QROtherFam3_s, QROtherFam4_s,
QROtherFam5_s, QROtherFam6_s, QROtherFam7_s
).
COMPUTE QROtherFam_missing = NMISS(
QROtherFam1_s, QROtherFam2_s, QROtherFam3_s, QROtherFam4_s,
QROtherFam5_s, QROtherFam6_s, QROtherFam7_s
).
IF (QROtherFam_missing > 0) QROtherFamScore = $SYSMIS.
* ---------------------------------------------------------------.
* Score friends relationship scale.
* ---------------------------------------------------------------.
COMPUTE QRFrend1_s = $SYSMIS.
IF (RANGE(SCQQRFrend,1,4)) QRFrend1_s = SCQQRFrend - 1.
COMPUTE QRFrend2_s = $SYSMIS.
IF (RANGE(SCQQRFrend2,1,4)) QRFrend2_s = SCQQRFrend2 - 1.
COMPUTE QRFrend3_s = $SYSMIS.
IF (RANGE(SCQQRFrend3,1,4)) QRFrend3_s = SCQQRFrend3 - 1.
COMPUTE QRFrend4_s = $SYSMIS.
IF (RANGE(SCQQRFrend4,1,4)) QRFrend4_s = 4 - SCQQRFrend4.
COMPUTE QRFrend5_s = $SYSMIS.
IF (RANGE(SCQQRFrend5,1,4)) QRFrend5_s = 4 - SCQQRFrend5.
COMPUTE QRFrend6_s = $SYSMIS.
IF (RANGE(SCQQRFrend6,1,4)) QRFrend6_s = 4 - SCQQRFrend6.
COMPUTE QRFrend7_s = $SYSMIS.
IF (RANGE(SCQQRFrend7,1,4)) QRFrend7_s = 4 - SCQQRFrend7.
COMPUTE QRFrendScore = SUM(
QRFrend1_s, QRFrend2_s, QRFrend3_s, QRFrend4_s,
QRFrend5_s, QRFrend6_s, QRFrend7_s
).
COMPUTE QRFrend_missing = NMISS(
QRFrend1_s, QRFrend2_s, QRFrend3_s, QRFrend4_s,
QRFrend5_s, QRFrend6_s, QRFrend7_s
).
IF (QRFrend_missing > 0) QRFrendScore = $SYSMIS.
* ---------------------------------------------------------------.
* Variable labels.
* ---------------------------------------------------------------.
VARIABLE LABELS
QRSpouScore
"Relationship quality with spouse: total strain score (0-21)"
QRChldScore
"Relationship quality with children: total strain score (0-21)"
QROtherFamScore
"Relationship quality with other family: total strain score (0-21)"
QRFrendScore
"Relationship quality with friends: total strain score (0-21)".
* ---------------------------------------------------------------.
* Drop temporary variables.
* ---------------------------------------------------------------.
DELETE VARIABLES
QRSpou1_s QRSpou2_s QRSpou3_s QRSpou4_s
QRSpou5_s QRSpou6_s QRSpou7_s QRSpou_missing
QRChld1_s QRChld2_s QRChld3_s QRChld4_s
QRChld5_s QRChld6_s QRChld7_s QRChld_missing
QROtherFam1_s QROtherFam2_s QROtherFam3_s QROtherFam4_s
QROtherFam5_s QROtherFam6_s QROtherFam7_s QROtherFam_missing
QRFrend1_s QRFrend2_s QRFrend3_s QRFrend4_s
QRFrend5_s QRFrend6_s QRFrend7_s QRFrend_missing.
EXECUTE.