eAppendix for “Targeted estimation of associations between having an adult child in the US, physical functioning, and unmet needs for care among older Mexican adults”
Contents
1. eAppendix Table 1. Additional Details Regarding Select Covariates
2. eAppendix Table 2. Additional baseline (2001) descriptive characteristics for Mexican adults > 50 years with at least one living child.
3. eAppendix Table 3. Marginal risk differences in estimated lower-body functional limitations outcomes (range 0 – 8) for Mexican adults > 50 years with at least one adult in the US versus no adult children in the US
4. eAppendix Table 4. Observed and Selection Bias Corrected Relative Risks of Reporting Need for Assistance with > 1 Activity of Daily Living Among Direct and Proxy Respondents to the Mexican Health and Aging Study.
5. eAppendix Table 5. Marginal risk differences in the estimated physical functioning outcomes for
Mexican adults > 50 years with at least one adult daughter in the US versus no adult daughters in the US 6. eAppendix Table 6. Marginal risk differences in the estimated physical functioning outcomes for
Mexican adults > 50 years with at least one adult son in the US versus no adult sons in the US
7. eAppendix Figure 1. Flowchart depicting analytic sample selection and attrition for analyses of lower- body functional limitations and needs for assistance with activities/independent activities of daily living.
8. eAppendix Figure B. Flowchart depicting analytic sample selection and attrition for analyses of unmet needs for care.
9. Sample Code for Longitudinal Analyses and Sensitivity Analyses
Appendix Table A. Measurement details on select covariates, Mexican Health and Aging Study
Measure Details
Residence Characteristics
Urban residence Residence in a community with 100,000 or more residents Residence in high US out-migration state
Residence in one of 6 states with highest rate of out-migration to the US from 1990-1995 (Durango, Guanajuato, Jalisco, Michoacán, Nayarit, Zacatecas)
Life-course Socio-Economic Status
Childhood poverty A binary measure of whether or not respondents had sanitation facilities before age 10
Primary lifetime occupation
Respondents were asked to indicate the occupation that they engaged in for the majority of their lifetime. We contrasted those who reported primarily laboring in domestic or agricultural sectors versus all other sectors (including no history of work outside the home)
Total household income (in Mexican pesos)
Summed from a series of questions regarding labor income, pension income and other public transfers for respondent and spouse,
respectively, as well as the couples' joint business income, real estate rents, financial assets income, and private transfers.
Total household net worth (in Mexican pesos)
Summed from a series of questions regarding individual or couples' net worth of assess in the form of homes, businesses, rental properties, vehicles or other assets, minus estimated debts.
Material items in household, range (0-6)
Count of the following items that respondents have in the household:
radio, a TV, a refrigerator, a washing machine, a phone, and a heater Health and Health Care Utilization
Depressive symptoms (0-9)
A modified 9-item Center for Epidemiological Studies – Depression (CES-D) scale of past-week depressive symptoms. The scale was adapted in the style of the 8-item CES-D scale used for the Health and Retirement Study, which reduced responses to ‘yes’ or ‘no’ for ease of use with low-education older adults.
Cognitive functioning, range (0-80)
The screening portion of the Cross-Cultural Cognitive Evaluation (CCCE). Summed such that higher values reflect better cognitive functioning.
Chronic health conditions, range (0-6) Count of the following self-reported chronic health conditions:
hypertension, diabetes, cancer, stroke, heart attack, and arthritis.
Appendix Table B. Additional baseline (2001) descriptive characteristics for Mexican adults > 50 years with at least one living child.
Women Men
6374 5432
Demographic Characteristics
Age (in years) 61.73 (9.22) 62.17 (9.42)
Urban residence 4323 (67.82) 3546 (65.28)
Residence in high US out-migration state 1779 (27.91) 1488 (27.39)
US migrant* 209 (3.28) 896 (16.49)
Married 3795 (59.53) 4658 (85.75)
Life-course Socio-Economic Status
Education (in years) 3.99 (3.92) 5.05 (4.83)
No sanitation facilities during childhood 4175 (65.50) 3753 (69.09)
Total household income (in pesos) 4510 (53384) 6083 (65977)
Total household net worth (in pesos)
362000 (697264)
429593 (889858)
Currently working 1493 (23.42) 3787 (69.72)
Material items in household, range (0-6) 4.36 (1.69) 4.35 (1.70) Health and Health Care Utilization
Major illness or injury during childhood 717 (11.25) 609 (11.21)
Health coverage 4101 (64.34) 3316 (61.05)
Past year medical visit 4578 (71.82) 3083 (56.76)
> 5 depressive symptoms 3004 (47.14) 2060 (37.92)
Chronic health conditions, range (0-6) 0.80 (0.81) 0.58 (0.78)
Cognitive function, range (0-80) 35.80 (16.94) 38.32 (17.04)
Family and Community
At least one adult child living in the household 4512 (70.79) 3953 (87.35)
Number of living children 5.57 (2.95) 5.59 (2.98)
Number of living grandchildren 11.44 (10.72) 9.41 (10.23)
Can count on neighbors/friends for help with daily activities
(support) 4092 (64.20) 3482 (64.10)
Source: Mexican Health and Aging Study
Appendix Table C. Marginal risk differences in estimated lower-body functional limitations outcomes for Mexican adults
> 50 years with at least one adult in the US versus no adult children in the US
Estimated difference in the prevalence of > 1 lower-body functional
limitation
aEstimated difference in average lower-body functional limitations
(range: 0-8) Women (n=6374)
Marginal
RD 95% CI
Marginal
RD 95% CI
2001 0.00 (-0.02, 0.02) 0.15 (0.28, 0.02) 2003 -0.02 (-0.04, 0.02) -0.14 (-0.28, 0.01) 2012 0.02 (-0.00, 0.04) 0.06 (-0.11, 0.23)
Men (n=5432) Marginal
RD 95% CI
Marginal
RD 95% CI
2001 0.02 (-0.01, 0.05)
0.11 (-0.03, 0.25)2003 0.00 (-0.03, 0.03)
0.01 (-0.15, 0.16)2012 0.00 (-0.04, 0.03)
0.04 (-0.19, 0.25)Source: Mexican Health and Aging Study, 2001 - 2012. Notes: a.
Measure of lower-body functional limitations is created from items
regarding perceived difficulty with 8 different tasks (e.g. sitting,
walking one or several blocks, climbing one or several flights of
stairs, stooping, kneeling, and running a mile). The item about
perceived difficulty running a mile was excluded from primary
analyses.
Appendix Table D. Observed and Selection Bias Corrected Relative Risks of Reporting Need for Assistance with > 1 Activity of Daily Living Among Direct and Proxy Respondents to the Mexican Health and Aging Study.
Women (n=6776)
aRR 95% CI
bObserved 1.14 (1.02, 1.28)
Selection Bias Corrected 1.14 (1.02, 1.27) Men (n=5964)
Observed 1.19 (1.03, 1.37)
Selection Bias Corrected 1.20 (1.04, 1.39) Source: Mexican Health and Aging Study. Notes: a. Analytic sample for selection bias included direct and proxy respondents >
50 years old at baseline (2001). 95% CIs based on 1000 bootstrap
replicates.
Appendix Table E. Marginal risk differences in estimated physical functioning outcomes for Mexican adults > 50 years with at least one adult daughter in the US versus no adult daughters in the US
Estimated difference in the prevalence of > 1 lower- body functional limitation
Estimated difference in average lower-body functional limitations
(range: 0-7)
Estimated difference in the prevalence of > 1 ADL/IADL
Estimated difference in average ADLs/IADLs
(range: 0 - 10) Women (n=5789)
Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
2001
0.01 (-0.02, 0.04) 0.13 (-0.02, 0.29) 0.03 (0.00, 0.06) 0.06 (-0.04, 0.17)2003
-0.01 (-0.05, 0.02) -0.13 (-0.30, 0.05) -0.03 (-0.06, -0.00) -0.13 (-0.24, -0.03)a2012
0.04 (0.00, 0.08)0.01 (-0.19, 0.20)
-0.02 (-0.05, 0.02)
-0.05 (-0.23, 0.13)
Men (n=4970) Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
2001
0.04 (-0.00, 0.08) 0.13 (-0.03, 0.29) -0.01 (-0.05, 0.02) -0.01 (-0.11, 0.10)2003
-0.01 (-0.06, 0.03) -0.05 (-0.23, 0.13) -0.02 (-0.05, 0.02) -0.01 (-0.11, 0.09)2012
-0.03 (-0.08, 0.01)-0.10 (-0.35, 0.16)
-0.02 (-0.07, 0.02)
0.01 (-0.18, 0.19)
Source: Mexican Health and Aging Study, 2001 - 2012. Notes: Analyses limited to respondents with at least one living adult daughter. a. "e-
value", or minimum strength of association that an unmeasured confounder would have to have between treatment and outcome (on the risk
ratio scale) necessary to reduce observed risk differences to the null = 1.37 (lower bound of 95% CI: 1.00).
Appendix Table F. Marginal risk differences in estimated physical functioning outcomes for Mexican adults > 50 years with at least one adult son in the US versus no adult sons in the US
Estimated difference in the prevalence of > 1 lower-body functional
limitation
Estimated difference in average lower-body functional limitations
(range: 0-7)
Estimated difference in the prevalence of > 1
ADL/IADL
Estimated difference in average ADLs/IADLs
(range: 0 - 10) Women (n=5893)
Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
2001
0.01 (-0.02, 0.04) 0.14 (-0.03, 0.30) 0.01 (-0.02, 0.03) 0.00 (-0.10, 0.11)2003
-0.02 (-0.05, 0.02) -0.18 (-0.36, -0.01)a -0.03 (-0.06, -0.01)b -0.11 (-0.21, -0.01)d2012
0.03 (0.00, 0.06)0.13 (-0.14, 0.40)
-0.04 (-0.08, -0.001)c -0.03 (-0.20, 0.15)
Men (n=5034) Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
Marginal
RD 95% CI
2001
0.01 (-0.02, 0.05) 0.05 (-0.08, 0.19) 0.00 (-0.03, 0.03) 0.00 (-0.08, 0.08)2003
-0.01 (-0.05, 0.03) -0.04 (-0.19, 0.14) 0.02 (-0.01, 0.05) 0.07 (-0.03, 0.17)2012
0.00 (-0.04, 0.05)0.02 (-0.21, 0.12)
0.02 (-0.03, 0.07)
0.01 (-0.16, 0.18)
Source: Mexican Health and Aging Study, 2001 - 2012. Notes: Analyses limited to respondents with at least one living adult son.
a. e-value, or minimum strength of association that an unmeasured confounder would have to have between treatment and outcome (on the risk ratio scale) necessary to reduce observed risk differences to the null = 1.39 (lower bound of 95% CI: 1.00);
b. e-value = 1.73 (lower bound of 95% CI: 1.26); c. e-value = 1.38 (lower bound of 95% CI: 1.00); d. e-value = 1.34 (lower
bound of 95% CI: 1.00).
Appendix Figure A. Flowchart depicting analytic sample selection and attrition for analyses of lower-body functional limitations and needs for assistance with activities/independent activities of daily living.
15186 total baseline respondents 934 proxy respondents 1685 direct respondents < 50 years 761 direct respondents > 50 years with no living children (including n=32 missing on indicator of living children)
11806
full baseline (2001) analytic sample
378 respondents died
796 interviews completed by proxy respondents
28 no longer had living children 741 lost to follow-up: no next-of-kin or follow-up interview
9863
follow-up (2003) analytic sample
2265 respondents died
739 interviews completed by proxy respondents
75 no longer had living children 812 lost to follow-up; no next-of-kin or follow-up interview.
5972
follow-up (2012) analytic sample
Appendix Figure 2. Flowchart depicting analytic sample selection and attrition for analyses of unmet needs for
care.
Sample R Code library(gdata) library(plyr) library(foreign) library(devtools)
install.packages("data.table") require("data.table")
#Latest stremr package
#devtools::install_github('osofr/stremr') #Version 0.8.99 require("stremr")
#devtools::install_github('jeremyrcoyle/sl3') library(sl3)
library(stremr) library(magrittr) library(ggplot2) library(tibble) library(tidyr) library(purrr) library(dplyr)
#library("sl3")
#install.packages("h2o")
#library("h2o")
#install.packages("glmnet") library(glmnet)
#require("h2o")
#h2o::h2o.init(nthreads = -1)
#install.packages("Rsolnp") library("Rsolnp")
library(Amelia)
#Loading long-format data for 1st imputed dataset, women only
#Example is for outcome (Y) of >=1 lower-body functional limitations
#Exposure (A) is a binary measure of having an at least one adult child in the US
#Censoring (C) is a multi-category of indicator of attrition, set to 0 for all respondents in the baseline wave
#And values of 0 (no attrition), 1 (death), 2 (q'naire answered by proxy), 3 (loss to follow-up) load("women.imp1.Rdata")
require("data.table")
women.imp1DT <- as.data.table(women.imp1, key=c(ID, t))
#creating some lags
women.imp1DT[, ("Y.tminus1") := shift(get("Y"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("TI.tminus1") := shift(get("TI"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("cog.tminus1") := shift(get("cognition"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("urban.tminus1") := shift(get("urban"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("migration.tminus1") := shift(get("migrationstate"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("grand.tminus1") := shift(get("grand"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("sumkids.tminus1") := shift(get("sumkids"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("support.tminus1") := shift(get("support"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("marital.tminus1") := shift(get("marital"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("CESD.tminus1") := shift(get("CESD"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("work.tminus1") := shift(get("work"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("sumhouse.tminus1") := shift(get("sumhousehold"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("sumhealth.tminus1") := shift(get("sumhealth"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("econ.tminus1") := shift(get("econstatus"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("inc.tminus1") := shift(get("incontinue"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("we.tminus1") := shift(get("wecontinue"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("hcoverage.tminus1") := shift(get("hcoverage"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("kidsinMX.tminus1") := shift(get("kidsinMX"), n = 1L, type = "lag", fill = 1L), by
= ID]
women.imp1DT[, ("kidsinHS.tminus1") := shift(get("kidsinHS"), n = 1L, type = "lag", fill = 1L), by
= ID]
women.imp1DT[, ("pastyeardoc.tminus1") := shift(get("pastyeardoc"), n = 1L, type = "lag", fill = 1L), by = ID]
women.imp1DT[, ("Y.tminus2") := shift(get("Y"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("TI.tminus2") := shift(get("TI"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("cog.tminus2") := shift(get("cognition"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("urban.tminus2") := shift(get("urban"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("migration.tminus2") := shift(get("migrationstate"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("grand.tminus2") := shift(get("grand"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("sumkids.tminus2") := shift(get("sumkids"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("support.tminus2") := shift(get("support"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("marital.tminus2") := shift(get("marital"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("CESD.tminus2") := shift(get("CESD"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("sumhouse.tminus2") := shift(get("sumhousehold"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("sumhealth.tminus2") := shift(get("sumhealth"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("econ.tminus2") := shift(get("econstatus"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("inc.tminus2") := shift(get("incontinue"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("we.tminus2") := shift(get("wecontinue"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("work.tminus2") := shift(get("work"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("hcoverage.tminus2") := shift(get("hcoverage"), n = 2L, type = "lag", fill = 2L), by = ID]
women.imp1DT[, ("kidsinMX.tminus2") := shift(get("kidsinMX"), n = 2L, type = "lag", fill = 2L), by
= ID]
women.imp1DT[, ("kidsinHS.tminus2") := shift(get("kidsinHS"), n = 2L, type = "lag", fill = 2L), by
= ID]
women.imp1DT[, ("pastyeardoc.tminus2") := shift(get("pastyeardoc"), n = 2L, type = "lag", fill = 2L), by = ID]
#Defining intervention
women.imp1DT[, ("TI.set1") := 1L]
women.imp1DT[, ("TI.set0") := 0L]
#With lags, all censoring categories
women.imp1 <- importData(women.imp1DT, ID="ID", t_name = "t", CENS = c("Death", "Proxy", "Loss"),
TRT="TI", OUTCOME="Y", remove_extra_rows = FALSE)
#setting gforms for categorical censoring and binary treatment with time-invariant measures and lagged time-dependent measures
gform_CENS <- "Death + Loss + Proxy ~ age + childpoor + edcontinue + poped + lowoccupation.x + childhealth + sumkids.tminus2 + grand.tminus2 + marital.tminus2 + we.tminus2 +
inc.tminus2 + work.tminus2 + econ.tminus2 + urban.tminus2 + migration.tminus2 +
hhsanitation1 + sumhouse.tminus2 + hcoverage.tminus2 + kidsinMX.tminus2 + TI.tminus2 + kidsinHS.tminus2 + pastyeardoc.tminus2 + sumhealth.tminus2 +
cog.tminus2 + support.tminus2 + Y.tminus2 + CESD.tminus2 + sumkids.tminus1 + grand.tminus1 + marital.tminus1 + we.tminus1 + inc.tminus1 + work.tminus1 + econ.tminus1 +
urban.tminus1 + migration.tminus1 + sumhouse.tminus1 + hcoverage.tminus1 + kidsinMX.tminus1 + TI.tminus1 + kidsinHS.tminus1 + pastyeardoc.tminus1 + sumhealth.tminus1 +
cog.tminus1 + support.tminus1 + Y.tminus1 + CESD.tminus1"
gform_TRT <- "TI ~ age + childpoor + edcontinue + poped + lowoccupation.x + childhealth + sumkids.tminus2 + grand.tminus2 + marital.tminus2 + we.tminus2 + inc.tminus2 + work.tminus2 + econ.tminus2 + urban.tminus2 + migration.tminus2 +
hhsanitation1 + sumhouse.tminus2 + hcoverage.tminus2 + kidsinMX.tminus2 + TI.tminus2 + kidsinHS.tminus2 + pastyeardoc.tminus2 + sumhealth.tminus2 +
cog.tminus2 + support.tminus2 + Y.tminus2 + CESD.tminus2 + sumkids.tminus1 + grand.tminus1 + marital.tminus1 + we.tminus1 + inc.tminus1 + work.tminus1 + econ.tminus1 +
urban.tminus1 + migration.tminus1 + sumhouse.tminus1 + hcoverage.tminus1 + kidsinMX.tminus1 + TI.tminus1 + kidsinHS.tminus1 + pastyeardoc.tminus1 + sumhealth.tminus1 +
cog.tminus1 + support.tminus1 + Y.tminus1 + CESD.tminus1"
stratify_CENS <- list(Proxy=c("t==0", "t==1", "t==2"), Death=c("t==0", "t==1", "t==2"), Loss=c("t==0", "t==1", "t==2"))
stratify_TRT <- list(TI=c("t==0",
"t==1 & Proxy==0 & Death==0 & Loss==0 & TI.tminus1==0", "t==1 & Proxy==0 & Death==0 & Loss==0 & TI.tminus1==1", "t==2 & Proxy==0 & Death==0 & Loss==0 & TI.tminus1==0", "t==2 & Proxy==0 & Death==0 & Loss==0 & TI.tminus1==1"))
#setting propensity scores lrn_xgb <- Lrnr_xgboost$new() lrn_glmnet <- Lrnr_glmnet$new() lrn_glm <- Lrnr_glm$new()
## Stack the above candidates:
lrn_stack <- Stack$new(lrn_xgb, lrn_glmnet, lrn_glm)
lrn_sl <- Lrnr_sl$new(learners = lrn_stack, metalearner = Lrnr_solnp$new())
#setting propensity scores
options(stremr.verbose = TRUE, gridisl.verbose = TRUE)
define_CVfolds(women.imp1, nfolds = 10, fold_column = "fold_ID", seed = 1234) set_all_stremr_options(fit_method = "cv")
women.imp1 <- fitPropensity(women.imp1,
models_CENS = lrn_sl, models_TRT = lrn_sl, gform_TRT = gform_TRT, gform_CENS = gform_CENS, stratify_CENS = stratify_CENS, stratify_TRT = stratify_TRT, fit_method="cv")
#Getting IPWs library(magrittr)
wts.DT.1 <- getIPWeights(women.imp1, intervened_TRT = "TI.set1")
#examining distribution of weights
summary(wts.DT.1[cum.IPAW>0,][["cum.IPAW"]])
quantile(wts.DT.1[cum.IPAW>0,][["cum.IPAW"]], c(0.99))
wts.DT.0 <- getIPWeights(women.imp1, intervened_TRT = "TI.set0")
#examining distribution of weights
summary(wts.DT.0[cum.IPAW>0,][["cum.IPAW"]])
quantile(wts.DT.0[cum.IPAW>0,][["cum.IPAW"]], c(0.99))
#Setting Qforms and params t.surv <- c(0:2)
Qforms <- rep.int("Qkplus1 ~ age + childpoor + edcontinue + poped + lowoccupation.x +
childhealth + sumkids.tminus2 + grand.tminus2 + marital.tminus2 + we.tminus2 + inc.tminus2 + work.tminus2 + econ.tminus2 + urban.tminus2 + migration.tminus2 + hhsanitation1 + sumhouse.tminus2 + hcoverage.tminus2 + kidsinMX.tminus2 +
TI.tminus2 +
kidsinHS.tminus2 + pastyeardoc.tminus2 + CESD.tminus2 + sumhealth.tminus2 + cog.tminus2 + support.tminus2 + Y.tminus2 + sumkids.tminus1 + grand.tminus1 + marital.tminus1 + we.tminus1 + inc.tminus1 + work.tminus1 + econ.tminus1 + urban.tminus1 + migration.tminus1 + sumhouse.tminus1 + hcoverage.tminus1 + kidsinMX.tminus1 +
TI.tminus1 + kidsinHS.tminus1 + pastyeardoc.tminus1 + CESD.tminus1 + sumhealth.tminus1 +
cog.tminus1 + support.tminus1 + Y.tminus1", (max(t.surv + 1)))
#Running TMLE
tmle_est_women_US_treat_imp1 <- fit_GCOMP(women.imp1, tvals = t.surv, Qforms=Qforms, fit_method = "cv", models=lrn_xgb,
intervened_TRT="TI.set1", TMLE=TRUE, trunc_weights=21.98139)
tmle_est1_1 <- tmle_est_women_US_treat_imp1$estimates
tmle_est_women_US_control_imp1 <- fit_GCOMP(women.imp1, tvals = t.surv, Qforms=Qforms, fit_method = "cv", models=lrn_xgb,
intervened_TRT="TI.set0", TMLE=TRUE, trunc_weights=3.419426)
tmle_est1_0 <- tmle_est_women_US_control_imp1$estimates
#getting risk differences
RDs.tmle.limit.1 <- data.frame(get_RDs(list(tmle_est1_1, tmle_est1_0))) save(RDs.tmle.limit.1, file="RDs.tmle.limit.1.Rdata")
###After estimating all of the above for each of 10 imputed datasets:
b.out <- rbind(RDs.tmle.limit.1$RD, RDs.tmle.limit.2$RD, RDs.tmle.limit.3$RD, RDs.tmle.limit.4$RD, RDs.tmle.limit.5$RD, RDs.tmle.limit.6$RD, RDs.tmle.limit.7$RD, RDs.tmle.limit.8$RD, RDs.tmle.limit.9$RD, RDs.tmle.limit.10$RD) se.out<- rbind(RDs.tmle.limit.1$RD.SE, RDs.tmle.limit.2$RD.SE, RDs.tmle.limit.3$RD.SE, RDs.tmle.limit.4$RD.SE, RDs.tmle.limit.5$RD.SE, RDs.tmle.limit.6$RD.SE, RDs.tmle.limit.7$RD.SE, RDs.tmle.limit.8$RD.SE, RDs.tmle.limit.9$RD.SE, RDs.tmle.limit.10$RD.SE) RDs.women.US <- mi.meld(q=b.out, se=se.out)
#########################################
########Sensitivity Analyses#############
#########################################
#####Measuring Unmeasured Confounding install.packages("EValue")
library(EValue)
#Numbers of diseased/non-diseased, exposed/unexposed for binary outcomes and mean differences/standard errors
#Derived from outcome prevalence data generated by longitudinal TMLE estimates from one imputed dataset
#For counterfactual outcomes of at least one adult child/daughter/son in the US versus no adult children/daughters/sons in the US
#Calculations only done on estimates that do not cross the null
# >= 1 ADL/IADL 2003, any kid in the US, women only
#Total N (2003) = 5490; 1225 with at least one kid in US, 4265 with no kid in US
#Of the 1225 with one kid in US, 82.76955% had no ADLs/IADLs; 17.23045 with >= 1 ADL/IADL
#Of the 4265 with no kids in the US, 80.11877% had no ADLs/IADLs; 19.88123 with >=1 ADL/IADL
#Given that RD is protective, reverse exposure coding evalues.RD(848, 3417, 211, 1014, true = 0, alpha = 0.05)
# Continuous ADL/IADLs 2003, any kid in the US, women only
#Mean difference for first imputed dataset is -0.09021537 ADLs/IADLs
#This needs to be converted to a standardized difference (Cohen's d) lx <- 1225 - 1
ly <- 4265 - 1
s1 <- 0.0381305*sqrt(1225) s2 <- 0.02459728*sqrt(4265) md <- abs(-0.09021537) csd <- lx * s1^2 + ly * s2^2 csd <- csd/(lx + ly)
csd <- sqrt(csd) cd <- md/csd
evalues.MD(0.06365061, 0.0441037, true = 0)
# >= 1 Lower Body Functional Limitation (range: 0 - 7) 2012, any kid in the US, women only
# Total N (2012) = 3416, 790 with at least one kid in US, 2626 with no kid in the US
#Of the 790 with at least one child in the US, 15.38271% had no lower body functional limitations;
84.61729% with >= LBFLs
#Of the 2626 with no children in the US, 19.29057% had no lower body functional limitations;
80.70943% ith >=1 LBFLs
#Do not need to reverse code
evalues.RD(668, 122, 2119, 507, true = 0, alpha = 0.05)
#Continuous Lower Body Functional Limitation 2003 (range: 0 - 7), any kid in the US, women only lx <- 1225 - 1
ly <- 4265 - 1
s1 <- 0.05838559*sqrt(1225) s2 <- 0.03354476*sqrt(4265) md <- abs(-0.1512892) csd <- lx * s1^2 + ly * s2^2 csd <- csd/(lx + ly)
csd <- sqrt(csd) cd <- md/csd
evalues.MD(0.07008206, 0.06611258, true = 0)
#Continuous ADL/IADLs 2003, daughter in the US, women only
#Total N (2003) = 4996; 653 with at least one daughter in US, 2773 with no daughter in US lx <- 653 - 1
ly <- 4343 - 1
s1 <- 0.04826638*sqrt(653) s2 <- 0.02411326*sqrt(4343) md <- abs(-0.1293567) csd <- lx * s1^2 + ly * s2^2 csd <- csd/(lx + ly)
csd <- sqrt(csd) cd <- md/csd
evalues.MD(0.08360119, 0.05293457, true = 0)
#Continuous lower body functional limitations 2003, son in the US, women only
#Total N (2003) = 5098; 900 with at least one son in the US, 4198 with no son in the US lx <- 900 - 1
ly <- 4198 - 1
s1 <- 0.06867366*sqrt(900) s2 <- 0.03402582*sqrt(4198) md <- abs(-0.1975346) csd <- lx * s1^2 + ly * s2^2 csd <- csd/(lx + ly)
csd <- sqrt(csd) cd <- md/csd
evalues.MD(0.09061957, 0.07547953, true = 0)
#Continuous ADL/IADLs 2003, son in the US, women only
#Total N (2003) = 5098; 900 with at least one son in the US, 4198 with no son in the US lx <- 900 - 1
ly <- 4198 - 1
s1 <- 0.04513403*sqrt(900) s2 <- 0.02473714*sqrt(4198) md <- abs(-0.1125969) csd <- lx * s1^2 + ly * s2^2 csd <- csd/(lx + ly)
csd <- sqrt(csd) cd <- md/csd
evalues.MD(0.07209585, 0.05034895, true = 0)
# >= 1 ADL/IADL 2003, son in the US, women only
#Total N (2003) = 5098; 900 with at least one son in the US, 4198 with no son in the US
#Of the 900 with at least one son in the US, 83.04011% had no ADLs/IADLs; 16.55941% with >=1 ADL/IADL
#Of the 4198 with no sons in the US, 79.81095% had no ADLs/IADLs; 20.18905% with >=1 ADL/IADL
#Given that RD is protective reverse exposure coding evalues.RD(848, 3350, 149, 747, true = 0, alpha = 0.05)
# >= 1 ADL/IADL 2012, son in the US, women only
#Total N (2012) = 3235; 562 with at least one son in the US, 2673 with no son in the US
#Of the 562 with no son in the US, 61.91201% had no ADLs/IADLs; 38.08799% with >=1 ADL/IADL
#Of the 2673 with no sons in the US, 58.77625% had no ADLs/IADLs, 41.22375% with >=1 ADL/IADL
#Given that RD is protective, reverse exposure coding
evalues.RD(1102, 1571, 214, 348, true = 0, alpha = 0.05)
# >=1 Unmet Need 2003, any child in the US, women only
#Total N (2003) = 1101; 234 with at least one adult child in the US, 777 without
#Of the 234 with an adult child in the US, 34.152769% had no unmet need; 66.847231% had >=1 unmet need
#Of the 777 without an adult child in the US, 44.95433% had no unmet need; 55.04567% had >=1 unmet need
evalues.RD(154, 80, 428, 349, true = 0, alpha = 0.05)
# >=1 Unmet Need 2012, any child in the US, women only
#Total N (2012) = 1185, 284 with at least one adult child in the US, 901 without
#Of the 284 with at least one adult child in the US, 10.77294% had no unmet need; 89.22706% with
>=1 unmet need
#Of the 901 without an adult child in the US, 19.45508% had no unmet need; 80.54492% with >=1 unmet need
evalues.RD(254, 31, 726, 175, true = 0, alpha = 0.05)
# >=1 Unmet Need 2012, any child in the US, men only
#Total N (2012) = 861, 216 with at least one adult child in the US, 645 without
#Of the 216 with at least one child in the US, 5.323024% had no unmet need;
#Of the 645 with no adult child in the US, 17.16831% had no unmet need;
evalues.RD(205, 11, 534, 111, true = 0, alpha = 0.05)
#Selection Bias Analysis
#Comparing those whose q'naires were completed by proxy respondents
#to those whose were completed by respondents included in the analytic sample
#For women, there were a total of 6776 age-eligible proxy + included respondents
#install.packages("episensr") library(episensr)
selectadls.fem <- selection(matrix(c(327, 892, 1324, 4233),
dimnames = list(c("ADL+", "ADL-"), c("KidinUS+", "KidinUS-")), nrow = 2, byrow = TRUE),
bias_parms=c(0.87, 0.89, 0.94, 0.96)) select_boot_fem <- boot.bias(selectadls.fem)
print(select_boot_fem , association = "rr")
#For men, there were 5964 otherwise age-eligible proxy + included respondents selectadls.men <- selection(matrix(c(214, 599, 1165, 3986),
dimnames = list(c("ADL+", "ADL-"),
c("KidinUS+", "KidinUS-")), nrow = 2, byrow = TRUE), bias_parms=c(0.85, 0.88, 0.90, 0.92))
select_boot_men <- boot.bias(selectadls.men) print(select_boot_men, association = "rr")