Theoretical concept for study
library(haven)
data_clean <- read_sav("C:/Users/binht/Dropbox/Hue/data/2022_data_consultant/01 DD 1/data_clean.sav")
names(data_clean)
## [1] "ID"
## [2] "C1.Name"
## [3] "C2.Medical_record_code"
## [4] "C3.Gender"
## [5] "C4.1Address"
## [6] "C4.2Phone_number"
## [7] "C5.Age"
## [8] "NHOMTUOI"
## [9] "C6.Education_level"
## [10] "C7.Occupation"
## [11] "C8.Living_with"
## [12] "C9.1Caregiver_myself"
## [13] "C9.2Caregiver_spouse"
## [14] "C9.3.Caregiver_children"
## [15] "C10.1First_year_diagnosis"
## [16] "C10.2Number_of_year_disease"
## [17] "PHANLOAINAMMACBENH"
## [18] "C11.Comobidity"
## [19] "C11.1What_comobidity"
## [20] "C11.TANGHUYETAP"
## [21] "C11SUYTIM"
## [22] "C11VIEMDADAY"
## [23] "C11DTD"
## [24] "C11KHAC"
## [25] "C12.1.metered_dose_inhaler"
## [26] "C12.2.Turberhaler"
## [27] "C12.3.Accuhaler"
## [28] "C13.Number_year_use_medicine"
## [29] "C14.Received_instruction"
## [30] "Phanloainamdungthuoc"
## [31] "C15.1.Instructors_health_care_worker"
## [32] "C15.2.Instructors_radio_television"
## [33] "C15.3.Instructors_Internet"
## [34] "C15.4.Instructors_reading_guideline"
## [35] "C15.5.Instructors_Poster"
## [36] "C15.5.Instructors_Another_person"
## [37] "C15.5.Instructors_other"
## [38] "C16.Smoking_past"
## [39] "C17.Smoking_present"
## [40] "sogoi"
## [41] "phanloai"
## [42] "solannhapvien"
## [43] "phanloaisolannhapvien"
## [44] "sodotcap"
## [45] "phanloaidotcap"
## [46] "Mucdotacnghen"
## [47] "II.Knowledge.1"
## [48] "II.2"
## [49] "II.3"
## [50] "II.4"
## [51] "II.5"
## [52] "II.6"
## [53] "II.7"
## [54] "II.8"
## [55] "II.9"
## [56] "II.10"
## [57] "II.11"
## [58] "II.12"
## [59] "II.13"
## [60] "TONG_KIENTHUCCHUNG"
## [61] "III.1"
## [62] "III.2"
## [63] "III.3"
## [64] "III.4"
## [65] "III.5"
## [66] "III.6"
## [67] "III.7"
## [68] "III.8"
## [69] "III.9"
## [70] "III.10"
## [71] "III.11"
## [72] "III.12"
## [73] "III.13"
## [74] "TONG_LYTHUYET"
## [75] "TONGYDINH"
## [76] "TONGATB"
## [77] "TONGSN"
## [78] "TONGPBC"
## [79] "IV.1.1"
## [80] "IV.1.2"
## [81] "IV.1.3"
## [82] "IV.1.4"
## [83] "IV.1.5"
## [84] "IV.1.6"
## [85] "IV.2.1"
## [86] "IV.2.2"
## [87] "IV.2.3"
## [88] "IV.2.4"
## [89] "IV.2.5"
## [90] "IV.2.6"
## [91] "IV.3.1"
## [92] "IV.3.2"
## [93] "IV.3.3"
## [94] "IV.3.4"
## [95] "IV.3.5"
## [96] "IV.3.6"
## [97] "DIEMTHUCHANH"
## [98] "PL_THUCHANH"
## [99] "V.1.MMAS8"
## [100] "V.2"
## [101] "V.3"
## [102] "V.4"
## [103] "V.5"
## [104] "V.6"
## [105] "V.7"
## [106] "V.8"
## [107] "TONGMMAS8"
## [108] "PL_MMAS8"
## [109] "VI.1TAI"
## [110] "VI.2"
## [111] "VI.3"
## [112] "VI.4"
## [113] "VI.5"
## [114] "VI.6"
## [115] "VI.7"
## [116] "VI.8"
## [117] "VI.9"
## [118] "VI.10"
## [119] "TONGTAI10ITEMS"
## [120] "phantai3new"
## [121] "VI.11"
## [122] "VI.12"
## [123] "TONGTAI15"
## [124] "PHANLAOI15"
## [125] "TONGTAI610"
## [126] "PHANLOAI610"
## [127] "TONGTAI1112"
## [128] "PHANLOAI1112"
## [129] "PL_TAI3GROUP"
## [130] "TONGmMRC"
## [131] "PHANLOAIMmrc"
## [132] "CAT1"
## [133] "CAT2"
## [134] "CAT3"
## [135] "CAT4"
## [136] "CAT5"
## [137] "CAT6"
## [138] "CAT7"
## [139] "CAT8"
## [140] "TONGCAT"
## [141] "PHANCAT"
## [142] "MMASgroup2"
## [143] "TAI2group"
## [144] "TUANTHUKHAM"
1.1. Personal factors:
+ Current smoking: STT 39 C17.Smoking_present
+ Knowledge : STT: 60 TONG_KIENTHUCCHUNG
+ Smoking technique STT: 98 PL_THUCHANH
1.2. Independent variables
Covars 1: Social Supportive: STT 12,13,1,4 C9.1Caregiver_myself; C9.2Caregiver_spouse; C9.3.Caregiver_children
Covars 2: mMRC: 130 TONGCAT ; TONG_LYTHUYET
CAT: STT 140 PHANLOAIMmrc
Group 1: TONGYDINH ; TONGATB ; TONGSN
1.3. Mediators: Intention : TONGYDINH
1.4. Outcome Treatment adherence : Tuân thủ điều trị:143 TAI2group
data <- subset(data_clean, select = c("C9.1Caregiver_myself", "C9.2Caregiver_spouse", "C9.3.Caregiver_children","TONG_LYTHUYET", "C17.Smoking_present", "TONG_KIENTHUCCHUNG", "PL_THUCHANH", "TONGmMRC", "TONGCAT", 'TONGYDINH',"TONGATB" , "TONGSN", "TONGPBC", "TAI2group"))
names(data)
## [1] "C9.1Caregiver_myself" "C9.2Caregiver_spouse"
## [3] "C9.3.Caregiver_children" "TONG_LYTHUYET"
## [5] "C17.Smoking_present" "TONG_KIENTHUCCHUNG"
## [7] "PL_THUCHANH" "TONGmMRC"
## [9] "TONGCAT" "TONGYDINH"
## [11] "TONGATB" "TONGSN"
## [13] "TONGPBC" "TAI2group"
View(data)
Define the variables
data$C17.Smoking_present=as.factor(data$C17.Smoking_present)
data$PL_THUCHANH=as.factor(data$PL_THUCHANH)
data$C9.1Caregiver_myself=as.factor(data$C9.1Caregiver_myself)
data$C9.2Caregiver_spouse=as.factor(data$C9.2Caregiver_spouse)
data$C9.3.Caregiver_children=as.factor(data$C9.3.Caregiver_children)
library(compareGroups)
t1=compareGroups(TAI2group~C17.Smoking_present+TONG_KIENTHUCCHUNG+PL_THUCHANH++ C9.1Caregiver_myself+C9.2Caregiver_spouse+C9.3.Caregiver_children+TONGmMRC+TONGYDINH+TONGATB+TONGSN+TONGPBC+TONG_LYTHUYET, data=data)
## Warning in chisq.test(xx, correct = FALSE): Chi-squared approximation may be
## incorrect
Table 1. Distribution for selected variables and associations with outcome
createTable(t1)
##
## --------Summary descriptives table by '01'---------
##
## __________________________________________________________
## 0 1 p.overall
## N=265 N=155
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
## C17.Smoking_present: 0.048
## 1 139 (52.5%) 65 (41.9%)
## 2 126 (47.5%) 90 (58.1%)
## TONG_KIENTHUCCHUNG 9.30 (3.43) 10.7 (2.62) <0.001
## PL_THUCHANH: <0.001
## 0 195 (73.6%) 73 (47.1%)
## 1 70 (26.4%) 82 (52.9%)
## C9.1Caregiver_myself: 0.245
## 0 6 (2.26%) 7 (4.52%)
## 1 259 (97.7%) 148 (95.5%)
## C9.2Caregiver_spouse: 0.047
## 0 70 (26.4%) 56 (36.1%)
## 1 195 (73.6%) 99 (63.9%)
## C9.3.Caregiver_children: 0.094
## 0 242 (91.3%) 133 (85.8%)
## 1 22 (8.30%) 22 (14.2%)
## 3 1 (0.38%) 0 (0.00%)
## TONGmMRC 2.68 (0.58) 2.45 (0.67) <0.001
## TONGYDINH 2.26 (0.45) 4.23 (0.51) <0.001
## TONGATB 7.06 (1.54) 14.5 (1.17) <0.001
## TONGSN 11.4 (2.49) 29.3 (2.49) <0.001
## TONGPBC 7.09 (1.52) 14.4 (0.97) <0.001
## TONG_LYTHUYET 27.8 (5.73) 62.4 (4.78) <0.001
## ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Model Model 1 (mediator ~ indepent+covariates)
Model 2 (Ourcome ~ all)
library(mediation)
## Loading required package: MASS
## Loading required package: Matrix
## Loading required package: mvtnorm
## Loading required package: sandwich
## mediation: Causal Mediation Analysis
## Version: 4.5.0
model.0 <- glm(TAI2group ~ TONGATB+TONGSN+TONGPBC+ C17.Smoking_present+TONG_KIENTHUCCHUNG+PL_THUCHANH + C9.1Caregiver_myself+C9.2Caregiver_spouse+C9.3.Caregiver_children+TONGmMRC, data = data, family=binomial(link='logit'))
model.m <- lm(TONGYDINH ~ TONGATB+TONGSN +TONGPBC+ C17.Smoking_present+TONG_KIENTHUCCHUNG+PL_THUCHANH + C9.1Caregiver_myself+C9.2Caregiver_spouse+C9.3.Caregiver_children+TONGmMRC, data = data)
model.y <- glm(TAI2group ~TONGYDINH+ TONGYDINH+TONGATB+TONGSN+TONGPBC+ C17.Smoking_present+TONG_KIENTHUCCHUNG+PL_THUCHANH+ C9.1Caregiver_myself+C9.2Caregiver_spouse+C9.3.Caregiver_children+TONGmMRC, data = data, family=binomial(link='logit'))
summary(model.0)
##
## Call:
## glm(formula = TAI2group ~ TONGATB + TONGSN + TONGPBC + C17.Smoking_present +
## TONG_KIENTHUCCHUNG + PL_THUCHANH + C9.1Caregiver_myself +
## C9.2Caregiver_spouse + C9.3.Caregiver_children + TONGmMRC,
## family = binomial(link = "logit"), data = data)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.0885 -0.0283 -0.0091 0.0254 3.7510
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -23.74643 7.89627 -3.007 0.00264 **
## TONGATB -0.97976 0.74983 -1.307 0.19133
## TONGSN 0.43418 0.34521 1.258 0.20850
## TONGPBC 1.92892 0.81356 2.371 0.01774 *
## C17.Smoking_present2 0.84597 1.19525 0.708 0.47908
## TONG_KIENTHUCCHUNG -0.20766 0.22711 -0.914 0.36054
## PL_THUCHANH1 1.63093 1.41844 1.150 0.25023
## C9.1Caregiver_myself1 4.68708 2.83223 1.655 0.09794 .
## C9.2Caregiver_spouse1 1.02587 1.53641 0.668 0.50432
## C9.3.Caregiver_children1 2.26460 2.01984 1.121 0.26221
## C9.3.Caregiver_children3 -7.30635 2399.54635 -0.003 0.99757
## TONGmMRC -0.08416 1.12903 -0.075 0.94058
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 553.095 on 419 degrees of freedom
## Residual deviance: 27.687 on 408 degrees of freedom
## AIC: 51.687
##
## Number of Fisher Scoring iterations: 15
summary(model.m)
##
## Call:
## lm(formula = TONGYDINH ~ TONGATB + TONGSN + TONGPBC + C17.Smoking_present +
## TONG_KIENTHUCCHUNG + PL_THUCHANH + C9.1Caregiver_myself +
## C9.2Caregiver_spouse + C9.3.Caregiver_children + TONGmMRC,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.54118 -0.18795 -0.02627 0.12716 0.71650
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.349559 0.117370 2.978 0.00307 **
## TONGATB 0.104313 0.023028 4.530 7.76e-06 ***
## TONGSN 0.046485 0.008851 5.252 2.43e-07 ***
## TONGPBC 0.062699 0.021679 2.892 0.00403 **
## C17.Smoking_present2 -0.012067 0.027389 -0.441 0.65975
## TONG_KIENTHUCCHUNG -0.004908 0.004316 -1.137 0.25619
## PL_THUCHANH1 -0.095735 0.029791 -3.214 0.00142 **
## C9.1Caregiver_myself1 0.116156 0.082799 1.403 0.16142
## C9.2Caregiver_spouse1 0.039867 0.031570 1.263 0.20737
## C9.3.Caregiver_children1 0.039576 0.047143 0.839 0.40169
## C9.3.Caregiver_children3 -0.028082 0.278811 -0.101 0.91982
## TONGmMRC 0.042383 0.022914 1.850 0.06509 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2755 on 408 degrees of freedom
## Multiple R-squared: 0.9349, Adjusted R-squared: 0.9332
## F-statistic: 533 on 11 and 408 DF, p-value: < 2.2e-16
summary(model.y)
##
## Call:
## glm(formula = TAI2group ~ TONGYDINH + TONGYDINH + TONGATB + TONGSN +
## TONGPBC + C17.Smoking_present + TONG_KIENTHUCCHUNG + PL_THUCHANH +
## C9.1Caregiver_myself + C9.2Caregiver_spouse + C9.3.Caregiver_children +
## TONGmMRC, family = binomial(link = "logit"), data = data)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.2686 -0.0372 -0.0115 0.0195 3.4943
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -21.6128 7.8774 -2.744 0.00608 **
## TONGYDINH -2.7313 2.8557 -0.956 0.33885
## TONGATB -0.6215 0.7703 -0.807 0.41981
## TONGSN 0.6207 0.4120 1.507 0.13193
## TONGPBC 1.8645 0.8056 2.314 0.02064 *
## C17.Smoking_present2 0.8714 1.2363 0.705 0.48089
## TONG_KIENTHUCCHUNG -0.2369 0.2322 -1.020 0.30770
## PL_THUCHANH1 1.5017 1.4590 1.029 0.30336
## C9.1Caregiver_myself1 5.3430 3.0713 1.740 0.08191 .
## C9.2Caregiver_spouse1 0.9715 1.6110 0.603 0.54647
## C9.3.Caregiver_children1 2.1004 1.9575 1.073 0.28327
## C9.3.Caregiver_children3 -8.1083 2399.5463 -0.003 0.99730
## TONGmMRC -0.1049 1.2026 -0.087 0.93048
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 553.095 on 419 degrees of freedom
## Residual deviance: 26.734 on 407 degrees of freedom
## AIC: 52.734
##
## Number of Fisher Scoring iterations: 15
Identify mediator via the median analysis
model0 <- glm(TAI2group ~ TONGYDINH+TONGATB+TONGSN+TONGPBC+PL_THUCHANH, data = data, family=binomial(link='logit'))
model1 <- lm(TONGYDINH ~ TONGATB+TONGSN +TONGPBC+PL_THUCHANH, data = data)
model2<- lm(TAI2group ~TONGYDINH+TONGATB+TONGSN+TONGPBC+PL_THUCHANH, data = data)
out.1 <- mediate(model1, model2, sims = 1000, treat = "TONGPBC",
mediator = "TONGYDINH")
out.2 <- mediate(model1, model2, sims = 1000, boot = TRUE, treat = "TONGPBC",
mediator = "TONGYDINH")
## Running nonparametric bootstrap
summary(out.2)
##
## Causal Mediation Analysis
##
## Nonparametric Bootstrap Confidence Intervals with the Percentile Method
##
## Estimate 95% CI Lower 95% CI Upper p-value
## ACME -0.00764 -0.01298 0.00 <2e-16 ***
## ADE 0.01603 -0.01898 0.06 0.61
## Total Effect 0.00839 -0.02762 0.06 0.82
## Prop. Mediated -0.91088 -4.94973 5.60 0.82
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Sample Size Used: 420
##
##
## Simulations: 1000
### ACME = ...., 95% CI [0.,,,, 0....] # significant!
### ACME stands for Average Causal Mediation Effects
### ADE stands for Average Direct Effects
### Total Effect is a sum of a mediation (indirect) effect and a direct effect
model_4<- glm(TAI2group ~TONGYDINH+TONGATB+TONGSN +TONGPBC+TONGYDINH*TONGPBC+PL_THUCHANH, data = data, family=binomial)
summary(model_4)
##
## Call:
## glm(formula = TAI2group ~ TONGYDINH + TONGATB + TONGSN + TONGPBC +
## TONGYDINH * TONGPBC + PL_THUCHANH, family = binomial, data = data)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.84098 -0.03350 -0.03350 0.01664 1.71150
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 15.54897 6.54109 2.377 0.0174 *
## TONGYDINH -6.40347 3.64292 -1.758 0.0788 .
## TONGATB -2.65576 1.91218 -1.389 0.1649
## TONGSN -0.08592 0.51407 -0.167 0.8673
## TONGPBC -1.82865 1.11450 -1.641 0.1008
## PL_THUCHANH1 0.08059 1.68575 0.048 0.9619
## TONGYDINH:TONGPBC 1.46153 0.53080 2.753 0.0059 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 553.095 on 419 degrees of freedom
## Residual deviance: 18.073 on 413 degrees of freedom
## AIC: 32.073
##
## Number of Fisher Scoring iterations: 10
library(epiDisplay)
## Loading required package: foreign
## Loading required package: survival
## Loading required package: nnet
logistic.display(model_4)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
##
## Logistic regression predicting TAI2group
##
## crude OR(95%CI) adj. OR(95%CI)
## TONGYDINH (cont. var.) 814.06 (161.34,4107.51) 0 (0,2.09)
##
## TONGATB (cont. var.) 4.25 (3,6.04) 0.07 (0,2.98)
##
## TONGSN (cont. var.) 1.81 (1.56,2.11) 0.92 (0.34,2.51)
##
## TONGPBC (cont. var.) 5.21 (3.34,8.13) 0.16 (0.02,1.43)
##
## PL_THUCHANH: 1 vs 0 3.13 (2.06,4.75) 1.08 (0.04,29.51)
##
## TONGYDINH:TONGPBC - 4.31 (1.52,12.21)
##
## P(Wald's test) P(LR-test)
## TONGYDINH (cont. var.) 0.079 0.054
##
## TONGATB (cont. var.) 0.165 0.052
##
## TONGSN (cont. var.) 0.867 0.866
##
## TONGPBC (cont. var.) 0.101 0.054
##
## PL_THUCHANH: 1 vs 0 0.962 0.962
##
## TONGYDINH:TONGPBC 0.006 < 0.001
##
## Log-likelihood = -9.0367
## No. of observations = 420
## AIC value = 32.0734
sens.cont <- medsens(out.2, rho.by = 0.05)
summary(sens.cont)
##
## Mediation Sensitivity Analysis for Average Causal Mediation Effect
##
## Sensitivity Region
##
## Rho ACME 95% CI Lower 95% CI Upper R^2_M*R^2_Y* R^2_M~R^2_Y~
## [1,] -0.35 0.0027 -0.0005 0.0059 0.1225 5e-04
## [2,] -0.30 0.0010 -0.0017 0.0038 0.0900 4e-04
## [3,] -0.25 -0.0005 -0.0032 0.0022 0.0625 3e-04
## [4,] -0.20 -0.0020 -0.0050 0.0010 0.0400 2e-04
## [5,] -0.15 -0.0034 -0.0070 0.0001 0.0225 1e-04
##
## Rho at which ACME = 0: -0.25
## R^2_M*R^2_Y* at which ACME = 0: 0.0625
## R^2_M~R^2_Y~ at which ACME = 0: 3e-04
plot(sens.cont, sens.par = "rho")
plot(sens.cont, sens.par = "R2", r.type = 2,
sign.prod = -1)