Hypertension Awareness and VACS Index 2.0 Among Older People Living with HIV

KAHO Study — Results

Author

KAHO Study Team

Published

July 16, 2026

1 Results

Missing data were handled using multiple imputation by chained equations (MICE) with m = 20 imputed datasets and 20 iterations. A root-component strategy was applied: the outcomes were not imputed directly; instead their constituent variables were imputed and the outcomes passively re-derived:

  • VACS Index 2.0: height_cm + weight_kg (pmm) → new_bmi → full VACS 2.0 algorithm applied over all complete lab inputs (Hb, WBC, albumin, FIB-4, eGFR, HCV, viral load).
  • Hypertension awareness: has_a_doctor_nurse_ever_to (logreg) → htn_status derived from imputed self-report + complete BP + antihypertensive use.

Eight additional variables with missing data were also imputed: occupation (7.5%), duration_of_diagnosis_yrs (5.6%), number_of_children (3.1%), is_nhis_valid (1.9%), smoking_status (1.2%), education (0.6%), height_cm/weight_kg (0.6%), and daily_wage (58.1% — descriptive only; interpret with caution).

The imputation model used 27 auxiliary predictors aligned with the study’s prior imputation comparison analysis, including three composite variables — any_hearing (right or left hearing problem), any_visual (right or left non-Normal vision), dm_flag (antidiabetic medication or HbA1c ≥ 6.5) — plus liver enzymes (s_ast, s_alt), nutritional status (mna_fs_score), and physical activity (physical_activity_who). Predictor assignments per variable are documented in Table 6.

Results were pooled across all 20 datasets using Rubin’s rules.

1.1 Participant Characteristics

A total of 160 participants were included in the analysis after multiple imputation (20 imputed datasets, 20 iterations). Table 1 presents sociodemographic, clinical, and HIV-related characteristics stratified by hypertension awareness group.

The mean age of participants was 59.4 years (SD = 7.6), and 108 (67.5%) were female. Nearly half (34/160, 21.2%) had no formal education. The mean VACS Index 2.0 score across the full sample was 60.2 points (SD = 12.6), indicating substantial predicted mortality risk burden in this population.

Table 1: Sociodemographic, clinical, and HIV-related characteristics by hypertension awareness group (N = 160, imputed dataset m = 1). Statistics: mean (SD) for approximately normally distributed continuous variables; median (IQR) for skewed variables; n (%) for categorical variables. Kruskal-Wallis for continuous; χ² for categorical.
Table 1. VACS Index 2.0 and participant characteristics by hypertension awareness group — KAHO Study (N = 160, imputed dataset m = 1)
Characteristic
Hypertension Awareness Group
p-value2
Overall
N = 1601
Absent
N = 491
Recognized
N = 531
Under-recognized
N = 381
Unclear
N = 201
VACS Index 2.0, mean (SD) 60.2 (12.6) 63.1 (11.9) 60.4 (14.0) 54.9 (10.4) 62.7 (12.3) 0.026
Age (years), mean (SD) 59.4 (7.6) 59.9 (7.6) 60.1 (8.8) 56.2 (5.0) 62.8 (5.8) 0.004
Sex, n (%)




0.091
    Male 52 (32.5%) 18 (36.7%) 21 (39.6%) 11 (28.9%) 2 (10.0%)
    Female 108 (67.5%) 31 (63.3%) 32 (60.4%) 27 (71.1%) 18 (90.0%)
Marital status, n (%)




0.514
    Married/Cohabiting 46 (28.8%) 11 (22.4%) 16 (30.2%) 13 (34.2%) 6 (30.0%)
    Single 9 (5.6%) 2 (4.1%) 3 (5.7%) 4 (10.5%) 0 (0.0%)
    Widowed/Separated/Divorced 105 (65.6%) 36 (73.5%) 34 (64.2%) 21 (55.3%) 14 (70.0%)
Education level, n (%)




0.646
    No formal education 34 (21.3%) 13 (26.5%) 9 (17.0%) 10 (26.3%) 2 (10.0%)
    Basic/Middle school 102 (63.8%) 28 (57.1%) 35 (66.0%) 24 (63.2%) 15 (75.0%)
    Secondary/Technical/Tertiary 24 (15.0%) 8 (16.3%) 9 (17.0%) 4 (10.5%) 3 (15.0%)
Occupation, n (%)




0.097
    Full-time 99 (61.9%) 33 (67.3%) 29 (54.7%) 29 (76.3%) 8 (40.0%)
    Retired 4 (2.5%) 2 (4.1%) 1 (1.9%) 0 (0.0%) 1 (5.0%)
    Unemployed 57 (35.6%) 14 (28.6%) 23 (43.4%) 9 (23.7%) 11 (55.0%)
Below-median daily wage, n (%)




0.600
    Below median 82 (51.3%) 24 (49.0%) 31 (58.5%) 17 (44.7%) 10 (50.0%)
    Above median 78 (48.8%) 25 (51.0%) 22 (41.5%) 21 (55.3%) 10 (50.0%)
BMI (kg/m²), mean (SD) 26.0 (5.1) 25.2 (4.3) 26.4 (5.3) 26.7 (5.1) 25.9 (6.1) 0.574
BMI category, n (%)




0.964
    Normal (18.5–24.9) 72 (45.0%) 25 (51.0%) 23 (43.4%) 15 (39.5%) 9 (45.0%)
    Underweight (<18.5) 5 (3.1%) 2 (4.1%) 1 (1.9%) 1 (2.6%) 1 (5.0%)
    Overweight (25–29.9) 50 (31.3%) 14 (28.6%) 17 (32.1%) 12 (31.6%) 7 (35.0%)
    Obese (≥30) 33 (20.6%) 8 (16.3%) 12 (22.6%) 10 (26.3%) 3 (15.0%)
Systolic BP (mmHg), mean (SD) 142.4 (23.6) 118.8 (9.1) 162.8 (16.9) 153.1 (14.8) 125.9 (10.5) <0.001
Diastolic BP (mmHg), mean (SD) 86.9 (14.0) 75.1 (6.7) 94.8 (12.3) 94.9 (13.1) 79.2 (6.2) <0.001
Diabetes mellitus, n (%)




0.466
    No diabetes 93 (58.1%) 30 (61.2%) 30 (56.6%) 23 (60.5%) 10 (50.0%)
    Prediabetes 46 (28.8%) 14 (28.6%) 14 (26.4%) 11 (28.9%) 7 (35.0%)
    Controlled diabetes 4 (2.5%) 0 (0.0%) 2 (3.8%) 0 (0.0%) 2 (10.0%)
    Uncontrolled diabetes 17 (10.6%) 5 (10.2%) 7 (13.2%) 4 (10.5%) 1 (5.0%)
Dyslipidemia, n (%) 70 (43.8%) 24 (49.0%) 24 (45.3%) 15 (39.5%) 7 (35.0%) 0.682
Renal disease (eGFR-based), n (%)




0.552
    No/Early CKD (eGFR ≥60) 109 (68.1%) 34 (69.4%) 35 (66.0%) 28 (73.7%) 12 (60.0%)
    CKD (eGFR 15–59) 50 (31.3%) 15 (30.6%) 18 (34.0%) 9 (23.7%) 8 (40.0%)
    CKD (eGFR <15) 1 (0.6%) 0 (0.0%) 0 (0.0%) 1 (2.6%) 0 (0.0%)
Depression (GDS-SF ≥5), n (%)




0.718
    Normal (0–4) 98 (61.3%) 31 (63.3%) 34 (64.2%) 23 (60.5%) 10 (50.0%)
    Depression (≥5) 62 (38.8%) 18 (36.7%) 19 (35.8%) 15 (39.5%) 10 (50.0%)
HIV-1 RNA, median (IQR) 19.1 (0.1, 21.5) 19.1 (0.1, 38.4) 19.1 (0.1, 20.2) 0.1 (0.1, 19.1) 9.6 (0.1, 21.3) 0.173
Viral suppression (<200 c/mL), n (%)




0.641
    Suppressed (<200 c/mL) 155 (96.9%) 47 (95.9%) 51 (96.2%) 38 (100.0%) 19 (95.0%)
    Unsuppressed (≥200 c/mL) 5 (3.1%) 2 (4.1%) 2 (3.8%) 0 (0.0%) 1 (5.0%)
Polypharmacy (incl. HIV), median (IQR) 2.0 (1.0, 3.0) 2.0 (1.0, 2.0) 2.0 (2.0, 3.0) 1.5 (1.0, 2.0) 3.0 (2.0, 3.0) <0.001
Medication adherence (HB-MAS), mean (SD) 34.8 (1.9) 34.8 (1.9) 34.8 (1.6) 34.8 (2.1) 34.9 (1.9) 0.873
Alcohol use (AUDIT-C), n (%)




0.460
    No alcohol 109 (68.1%) 36 (73.5%) 35 (66.0%) 24 (63.2%) 14 (70.0%)
    Low 39 (24.4%) 10 (20.4%) 11 (20.8%) 13 (34.2%) 5 (25.0%)
    Moderate 7 (4.4%) 1 (2.0%) 5 (9.4%) 0 (0.0%) 1 (5.0%)
    High/Severe 5 (3.1%) 2 (4.1%) 2 (3.8%) 1 (2.6%) 0 (0.0%)
Smoking status, n (%)




0.233
    Never 152 (95.0%) 47 (95.9%) 48 (90.6%) 38 (100.0%) 19 (95.0%)
    Former 8 (5.0%) 2 (4.1%) 5 (9.4%) 0 (0.0%) 1 (5.0%)
    Current 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%)
1 Mean (SD); n (%); Median (Q1, Q3)
2 Kruskal-Wallis test for continuous variables; χ² test for categorical variables. p-values for variables with sparse cells (expected count < 5) should be interpreted with caution.
Note

χ² p-values for multi-level categorical variables stratified across four awareness groups should be interpreted with caution given sparse cells (expected count < 5 in some strata) with N = 160. Categories were pre-collapsed to reduce sparsity (marital status: 3 groups; education: 3 groups; depression: binary; renal disease: binary).


1.2 Hypertension Awareness

Four hypertension awareness categories were identified based on self-reported diagnosis, antihypertensive medication use, and measured blood pressure (≥140/90 mmHg):

  • Absent (49/160, 30.6%): normal blood pressure, no self-report, no antihypertensive use.
  • Recognized (53/160, 33.1%): elevated BP or antihypertensive use with self-reported diagnosis.
  • Under-recognized (38/160, 23.8%): elevated BP without self-report or antihypertensive use.
  • Unclear (20/160, 12.5%): on antihypertensives or self-reported diagnosis but with BP below threshold.

Prior to imputation, 12 participants (7.5%) could not be classified due to missing self-reported hypertension diagnosis (has_a_doctor_nurse_ever_to). This variable was imputed using logistic regression with predictors: age, sex, duration of HIV diagnosis, non-HIV polypharmacy, eGFR, systolic and diastolic BP, antihypertensive use, HbA1c, and viral load. Following imputation, all 160 participants were successfully classified.


1.3 VACS Index 2.0 by Hypertension Awareness

Figure 1 presents the distribution of VACS Index 2.0 scores across the four hypertension awareness groups. A Kruskal-Wallis test indicated a statistically significant overall difference in VACS scores across groups (H(3) = 9.22, p = 0.0264). Post-hoc Dunn pairwise comparisons with Bonferroni correction identified a significant difference between the Absent and Under-recognized groups (pBonferroni = 0.03).

Median VACS scores were: Absent 61 (IQR 55.3–70.6), Recognized 60.7 (IQR 49.1–69.8), Under-recognized 54.8 (IQR 47.5–62.7), and Unclear 64 (IQR 52.6–72.8).

Figure 1: Distribution of VACS Index 2.0 by hypertension awareness group (N = 160, imputed dataset m = 1). Violin plots show the full distribution; embedded box plots show median and IQR; filled circles show medians. Pairwise Dunn test with Bonferroni correction; only significant comparisons shown. Higher VACS scores indicate greater predicted all-cause mortality risk.

1.4 Association Between Hypertension Awareness and VACS Index 2.0

Table 2 presents the results of five hierarchical linear regression models examining the association between hypertension awareness and VACS Index 2.0. All estimates are pooled across 20 imputed datasets using Rubin’s rules.

In the unadjusted model (Model 1), participants in the Under-recognized group had significantly lower VACS scores compared with the Absent group (β = -2.95, 95% CI: -7.2424 to 1.3424, p = 0.181). This association attenuated progressively with adjustment for sociodemographic factors (Model 2), behavioural and cardiometabolic covariates (Model 3), and anthropometric and renal variables (Model 4). The Recognized and Unclear groups did not differ significantly from the Absent group in any model.

Table 2: Pooled linear regression: VACS Index 2.0 ~ hypertension awareness (m = 20 imputed datasets, Rubin’s rules). β = unstandardised coefficient (VACS Index 2.0 points). Reference: Absent.
Table 2. Linear regression models: VACS Index 2.0 ~ Hypertension awareness (N = 160; pooled over m = 20 imputed datasets via Rubin’s rules)
Characteristic1
Model 1 Unadjusted
Model 2 Sociodemographic
Model 3 Behavioural/Cardiometabolic
Model 4 Full DAG
Model 5 Healthcare access
Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1
htn_awareness














    Absent




    Recognized -2.48 -7.34, 2.37 0.314 -2.14 -6.57, 2.30 0.342 -0.30 -4.54, 3.95 0.891 0.65 -3.25, 4.55 0.741 0.84 -3.05, 4.73 0.670
    Under-recognized -8.10 -13.46, -2.74 0.003 -4.40 -9.34, 0.54 0.080 -3.66 -8.34, 1.02 0.124 -2.95 -7.28, 1.38 0.181 -2.85 -7.17, 1.46 0.194
    Unclear 0.12 -6.36, 6.60 0.971 -0.36 -6.54, 5.82 0.909 1.57 -4.41, 7.54 0.605 1.96 -3.50, 7.43 0.478 2.13 -3.30, 7.56 0.440
Age (years)


0.68 0.42, 0.94 <0.001 0.75 0.50, 1.00 <0.001 0.59 0.35, 0.83 <0.001 0.58 0.35, 0.82 <0.001
Sex














    Male






    Female


-5.34 -9.90, -0.78 0.022 -6.54 -10.95, -2.13 0.004 -3.50 -7.73, 0.72 0.103 -3.09 -7.34, 1.17 0.154
education_3cat














    No formal education






    Basic/Middle school


-1.93 -6.46, 2.60 0.402 -3.30 -7.58, 0.97 0.129 -4.16 -8.08, -0.23 0.038 -4.48 -8.42, -0.54 0.026
    Secondary/Technical/Tertiary


-6.52 -13.01, -0.02 0.049 -9.47 -15.85, -3.10 0.004 -8.60 -14.64, -2.57 0.006 -8.22 -14.25, -2.19 0.008
occupation














    Full-time






    Retired


4.61 -7.26, 16.49 0.443 4.71 -7.30, 16.72 0.438 2.91 -8.02, 13.85 0.598 3.36 -7.54, 14.26 0.542
    Unemployed


0.66 -3.77, 5.08 0.769 -0.47 -4.69, 3.75 0.826 -1.30 -5.15, 2.56 0.507 -1.14 -4.98, 2.69 0.556
marital_status_3cat














    Married/Cohabiting






    Single


-2.36 -10.49, 5.77 0.566 -2.21 -10.11, 5.68 0.580 -3.40 -10.65, 3.85 0.355 -3.26 -10.56, 4.04 0.379
    Widowed/Separated/Divorced


3.86 -0.45, 8.16 0.079 3.58 -0.58, 7.74 0.091 2.55 -1.29, 6.39 0.191 2.76 -1.14, 6.66 0.163
audit_c_cat














    No alcohol








    Low





-6.88 -11.11, -2.65 0.002 -5.44 -9.36, -1.51 0.007 -5.56 -9.46, -1.65 0.006
    Moderate





-15.63 -23.95, -7.31 <0.001 -12.61 -20.31, -4.92 0.001 -12.10 -19.78, -4.41 0.002
    High/Severe





1.62 -8.28, 11.51 0.747 0.54 -8.56, 9.64 0.907 -0.89 -10.20, 8.43 0.851
diabetes_cat














    No diabetes








    Prediabetes





-1.63 -5.50, 2.23 0.405 1.24 -2.46, 4.94 0.510 1.62 -2.12, 5.35 0.393
    Controlled diabetes





-8.03 -19.10, 3.04 0.154 -8.16 -18.32, 2.00 0.114 -7.31 -17.54, 2.93 0.160
    Uncontrolled diabetes





-7.85 -13.38, -2.32 0.006 -4.15 -9.38, 1.08 0.119 -3.64 -8.88, 1.60 0.172
gds_binary














    Normal (0–4)








    Depression (≥5)





-1.86 -5.38, 1.66 0.298 -1.63 -4.88, 1.61 0.321 -2.04 -5.30, 1.22 0.218
dyslipidemia_any














    No








    Yes





-1.90 -5.51, 1.71 0.299 0.06 -3.35, 3.47 0.972 0.32 -3.10, 3.74 0.854
new_bmi








-0.93 -1.27, -0.58 <0.001 -0.97 -1.32, -0.62 <0.001
renal_binary














    No/Early CKD (eGFR ≥60)










    CKD (eGFR 15–59)








3.24 -0.22, 6.71 0.066 3.24 -0.23, 6.72 0.067
    CKD (eGFR <15)








1.77 -18.24, 21.78 0.861 1.21 -18.78, 21.19 0.905
nhis_valid














    Not valid












    Valid











-6.14 -15.31, 3.04 0.188
Medication adherence (HB-MAS)











-0.55 -1.41, 0.32 0.212
1 β = unstandardised regression coefficient (VACS index points). Reference group: Absent (no hypertension, no antihypertensive, BP <140/90 mmHg). Model 2: adjusted for age, sex, education, occupation, marital status. Model 3: Model 2 + AUDIT-C, diabetes, depression (GDS-SF), dyslipidemia. Model 4: Model 3 + BMI + renal disease (eGFR-based). Model 5: Model 4 + NHIS registration + medication adherence (HB-MAS).
Abbreviation: CI = Confidence Interval
Table 3: Standardised pooled linear regression (continuous predictors z-scored within each imputed dataset). β_std = effect in SD units of VACS Index 2.0. Reference: Absent.
Characteristic1
M1 Unadjusted
M2 Sociodemographic
M3 Behavioural
M4 Full
M5 + Healthcare
Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1 Beta1 95% CI1 p-value1
htn_awareness














    Absent




    Recognized -0.20 -0.58, 0.19 0.314 -0.17 -0.52, 0.18 0.342 -0.02 -0.36, 0.31 0.891 0.05 -0.26, 0.36 0.741 0.07 -0.24, 0.37 0.670
    Under-recognized -0.64 -1.07, -0.22 0.003 -0.35 -0.74, 0.04 0.080 -0.29 -0.66, 0.08 0.124 -0.23 -0.58, 0.11 0.181 -0.23 -0.57, 0.12 0.194
    Unclear 0.01 -0.50, 0.52 0.971 -0.03 -0.52, 0.46 0.909 0.12 -0.35, 0.60 0.605 0.16 -0.28, 0.59 0.478 0.17 -0.26, 0.60 0.440
age


0.40 0.25, 0.56 <0.001 0.45 0.30, 0.60 <0.001 0.35 0.21, 0.49 <0.001 0.35 0.21, 0.49 <0.001
Sex














    Male






    Female


-0.42 -0.78, -0.06 0.022 -0.52 -0.87, -0.17 0.004 -0.28 -0.61, 0.06 0.103 -0.24 -0.58, 0.09 0.154
education_3cat














    No formal education






    Basic/Middle school


-0.15 -0.51, 0.21 0.402 -0.26 -0.60, 0.08 0.129 -0.33 -0.64, -0.02 0.038 -0.35 -0.67, -0.04 0.026
    Secondary/Technical/Tertiary


-0.52 -1.03, 0.00 0.049 -0.75 -1.25, -0.25 0.004 -0.68 -1.16, -0.20 0.006 -0.65 -1.13, -0.17 0.008
occupation














    Full-time






    Retired


0.36 -0.57, 1.30 0.443 0.37 -0.58, 1.32 0.438 0.23 -0.63, 1.10 0.598 0.27 -0.60, 1.13 0.542
    Unemployed


0.05 -0.30, 0.40 0.769 -0.04 -0.37, 0.30 0.826 -0.10 -0.41, 0.20 0.507 -0.09 -0.39, 0.21 0.556
marital_status_3cat














    Married/Cohabiting






    Single


-0.19 -0.83, 0.46 0.566 -0.18 -0.80, 0.45 0.580 -0.27 -0.84, 0.30 0.355 -0.26 -0.84, 0.32 0.379
    Widowed/Separated/Divorced


0.31 -0.04, 0.65 0.079 0.28 -0.05, 0.61 0.091 0.20 -0.10, 0.51 0.191 0.22 -0.09, 0.53 0.163
audit_c_cat














    No alcohol








    Low





-0.54 -0.88, -0.21 0.002 -0.43 -0.74, -0.12 0.007 -0.44 -0.75, -0.13 0.006
    Moderate





-1.24 -1.89, -0.58 <0.001 -1.00 -1.61, -0.39 0.001 -0.96 -1.57, -0.35 0.002
    High/Severe





0.13 -0.65, 0.91 0.747 0.04 -0.68, 0.76 0.907 -0.07 -0.81, 0.67 0.851
diabetes_cat














    No diabetes








    Prediabetes





-0.13 -0.44, 0.18 0.405 0.10 -0.19, 0.39 0.510 0.13 -0.17, 0.42 0.393
    Controlled diabetes





-0.64 -1.51, 0.24 0.154 -0.65 -1.45, 0.16 0.114 -0.58 -1.39, 0.23 0.160
    Uncontrolled diabetes





-0.62 -1.06, -0.18 0.006 -0.33 -0.74, 0.09 0.119 -0.29 -0.70, 0.13 0.172
gds_binary














    Normal (0–4)








    Depression (≥5)





-0.15 -0.43, 0.13 0.298 -0.13 -0.39, 0.13 0.321 -0.16 -0.42, 0.10 0.218
dyslipidemia_any














    No








    Yes





-0.15 -0.44, 0.14 0.299 0.00 -0.26, 0.27 0.972 0.03 -0.25, 0.30 0.854
new_bmi








-0.37 -0.51, -0.23 <0.001 -0.39 -0.53, -0.25 <0.001
renal_binary














    No/Early CKD (eGFR ≥60)










    CKD (eGFR 15–59)








0.26 -0.02, 0.53 0.066 0.26 -0.02, 0.53 0.067
    CKD (eGFR <15)








0.14 -1.44, 1.72 0.861 0.10 -1.49, 1.68 0.905
nhis_valid














    Not valid












    Valid











-0.49 -1.21, 0.24 0.188
hbmas











-0.08 -0.21, 0.05 0.212
1 β_std = standardised coefficient. Continuous predictors (age, BMI, HB-MAS) z-scored within each imputed dataset. Categorical predictors on natural scale.
Abbreviation: CI = Confidence Interval
Table 4: Unstandardised and standardised β coefficients for hypertension awareness vs Absent, across all five models.
Category β (95% CI) β_std (95% CI) p
Unadjusted
Recognized -2.48 (-7.30, 2.33) -0.20 (-0.58, 0.18) 0.31383
Under-recognized -8.10 (-13.42, -2.78) -0.64 (-1.06, -0.22) 0.00331 **
Unclear 0.12 (-6.31, 6.55) 0.01 (-0.50, 0.52) 0.97114
+ Sociodemographic
Recognized -2.14 (-6.53, 2.26) -0.17 (-0.52, 0.18) 0.3422
Under-recognized -4.40 (-9.30, 0.50) -0.35 (-0.74, 0.04) 0.0803
Unclear -0.36 (-6.49, 5.77) -0.03 (-0.51, 0.46) 0.9089
+ Behavioural/Cardiometabolic
Recognized -0.30 (-4.51, 3.91) -0.02 (-0.36, 0.31) 0.89071
Under-recognized -3.66 (-8.30, 0.98) -0.29 (-0.66, 0.08) 0.12434
Unclear 1.57 (-4.35, 7.48) 0.12 (-0.34, 0.59) 0.60467
Full DAG
Recognized 0.65 (-3.21, 4.52) 0.05 (-0.25, 0.36) 0.74095
Under-recognized -2.95 (-7.24, 1.34) -0.23 (-0.57, 0.11) 0.18053
Unclear 1.96 (-3.45, 7.37) 0.16 (-0.27, 0.58) 0.47836
+ Healthcare access
Recognized 0.84 (-3.01, 4.69) 0.07 (-0.24, 0.37) 0.66982
Under-recognized -2.85 (-7.13, 1.42) -0.23 (-0.56, 0.11) 0.19351
Unclear 2.13 (-3.25, 7.51) 0.17 (-0.26, 0.59) 0.43992
β = unstandardised (VACS points). β_std = standardised (SD units of VACS). *** p<0.001, ** p<0.01, * p<0.05.

1.4.1 Forest Plot

Figure 2 presents the unstandardised (left) and standardised (right) β coefficients for the three hypertension awareness categories (vs Absent) across all five regression models. The Under-recognized group consistently showed a negative association with VACS scores in Models 1–3, though this attenuated after adjustment for BMI and renal disease in Model 4.

Figure 2: Forest plots of β (left, VACS Index points) and β_std (right, SD units) for hypertension awareness categories across five models (reference: Absent). Points = pooled estimate; horizontal bars = 95% CI. Models adjusted as described in Methods.

2 Supplementary Material

2.1 S1. Missing Data and Imputation

2.1.1 Missing Data Pattern

Table 5: S1.1 Missingness in imputed variables and their derivation role.
Variable N missing % missing Method1 Derived outcome
daily_wage2 93 58.1 logreg below_median_wage (descriptive)
has_a_doctor_nurse_ever_to 18 11.2 logreg htn_status (HTN awareness)
occupation 12 7.5 polyreg
duration_of_diagnosis_yrs 9 5.6 pmm
number_of_children 5 3.1 pmm
is_nhis_valid 3 1.9 logreg nhis_valid (Model 5)
smoking_binary 2 1.2 logreg smoking_3cat (descriptive)
height_cm 1 0.6 pmm new_bmi → VACS Index 2.0
weight_kg 1 0.6 pmm new_bmi → VACS Index 2.0
education 1 0.6 polyreg
1 pmm = predictive mean matching; logreg = logistic regression; polyreg = polytomous logistic regression.
2 ⚠ daily_wage has 58.1% missing — likely non-response rather than MAR. Imputed values used in Table 1 only; interpret with caution.
   age gender marital_status b_p_systolic b_p_diastolic antihypertensive hba1c
50   1      1              1            1             1                1     1
68   1      1              1            1             1                1     1
3    1      1              1            1             1                1     1
9    1      1              1            1             1                1     1
3    1      1              1            1             1                1     1
6    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
3    1      1              1            1             1                1     1
3    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
2    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
1    1      1              1            1             1                1     1
     0      0              0            0             0                0     0
   egfrcr new_polypharmacy new_hiv_polypharmacy audit_c_scores new_viral_load
50      1                1                    1              1              1
68      1                1                    1              1              1
3       1                1                    1              1              1
9       1                1                    1              1              1
3       1                1                    1              1              1
6       1                1                    1              1              1
1       1                1                    1              1              1
3       1                1                    1              1              1
3       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
2       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
1       1                1                    1              1              1
        0                0                    0              0              0
   s_cholesterol s_hdl_cholesterol s_ldl_cholesterol s_triglyceride any_hearing
50             1                 1                 1              1           1
68             1                 1                 1              1           1
3              1                 1                 1              1           1
9              1                 1                 1              1           1
3              1                 1                 1              1           1
6              1                 1                 1              1           1
1              1                 1                 1              1           1
3              1                 1                 1              1           1
3              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
2              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
1              1                 1                 1              1           1
               0                 0                 0              0           0
   any_visual dm_flag s_ast s_alt mna_fs_score physical_activity_who height_cm
50          1       1     1     1            1                     1         1
68          1       1     1     1            1                     1         1
3           1       1     1     1            1                     1         1
9           1       1     1     1            1                     1         1
3           1       1     1     1            1                     1         1
6           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
3           1       1     1     1            1                     1         1
3           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
2           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         1
1           1       1     1     1            1                     1         0
            0       0     0     0            0                     0         1
   weight_kg education smoking_binary is_nhis_valid number_of_children
50         1         1              1             1                  1
68         1         1              1             1                  1
3          1         1              1             1                  1
9          1         1              1             1                  1
3          1         1              1             1                  1
6          1         1              1             1                  1
1          1         1              1             1                  1
3          1         1              1             1                  1
3          1         1              1             1                  1
1          1         1              1             1                  1
1          1         1              1             1                  1
1          1         1              1             1                  1
2          1         1              1             1                  0
1          1         1              1             1                  0
1          1         1              1             1                  0
1          1         1              1             0                  1
1          1         1              1             0                  1
1          1         1              1             0                  1
1          1         1              0             1                  1
1          1         1              0             1                  1
1          1         0              1             1                  1
1          0         1              1             1                  0
           1         1              2             3                  5
   duration_of_diagnosis_yrs occupation has_a_doctor_nurse_ever_to daily_wage
50                         1          1                          1          1
68                         1          1                          1          0
3                          1          1                          0          1
9                          1          1                          0          0
3                          1          0                          1          1
6                          1          0                          1          0
1                          1          0                          0          0
3                          0          1                          1          1
3                          0          1                          1          0
1                          0          1                          0          1
1                          0          1                          0          0
1                          0          0                          1          0
2                          1          1                          1          1
1                          1          1                          1          0
1                          1          0                          1          0
1                          1          1                          1          1
1                          1          1                          1          0
1                          1          1                          0          1
1                          1          1                          1          1
1                          1          1                          0          1
1                          1          1                          1          0
1                          1          1                          0          1
                           9         12                         18         93
      
50   0
68   1
3    1
9    2
3    1
6    2
1    3
3    1
3    2
1    2
1    3
1    3
2    1
1    2
1    3
1    1
1    2
1    2
1    1
1    2
1    2
1    4
   145
Figure 3: S1.2 Missing data pattern across all variables in the imputation dataset. Blue = observed; red = missing. Row counts indicate the number of participants with each pattern.

2.1.2 Composite Predictor Variables

Three composite predictor variables were derived prior to imputation, following the specification in the study’s prior imputation comparison analysis:

Composite variable Definition Source variables
any_hearing 1 if right OR left hearing problem present rt_hearing_problem, lt_hearing_problem
any_visual 1 if right OR left vision non-Normal rt_visual_impairment_category, lt_visual_impairment_category
dm_flag 1 if on antidiabetic medication OR HbA1c ≥ 6.5% antidiabetic_med, hba1c

All composite variables were complete (0 missing) and used as predictors only, not as imputation targets.

2.1.3 Predictor Specification

Table 6: S1.3 Predictors assigned to each imputed variable in the MICE model. Variables with 0 missing are used as auxiliaries only.
Imputed variable Method Predictors
education polyreg age, gender, occupation
occupation polyreg age, gender, marital_status, number_of_children, education, duration_of_diagnosis_yrs, any_hearing, any_visual
duration_of_diagnosis_yrs pmm age, gender, education, occupation, new_viral_load, new_hiv_polypharmacy, egfrcr
number_of_children pmm age, gender, marital_status, education, occupation, duration_of_diagnosis_yrs
smoking_binary logreg age, gender, education, occupation, audit_c_scores
is_nhis_valid logreg age, gender, education, occupation, b_p_systolic, egfrcr, new_viral_load, new_hiv_polypharmacy
daily_wage logreg age, gender, education, marital_status, number_of_children, is_nhis_valid [occupation excluded — perfect separation with Retired]
height_cm pmm age, gender, weight_kg, mna_fs_score, b_p_systolic, audit_c_scores, s_cholesterol
weight_kg pmm age, gender, height_cm, mna_fs_score, physical_activity_who, b_p_systolic, b_p_diastolic, hba1c, dm_flag, s_ast, s_alt, s_cholesterol, s_ldl, s_hdl, s_triglyceride, audit_c_scores
has_a_doctor_nurse_ever_to logreg age, gender, duration_of_diagnosis_yrs, new_polypharmacy, egfrcr, b_p_systolic, b_p_diastolic, antihypertensive, hba1c, new_viral_load
Highlighted rows: root-component targets whose imputed values drive passive re-derivation of VACS Index 2.0 and hypertension awareness.

2.1.4 MICE Convergence

Figure 4: S1.4 MICE convergence trace plots for all 10 imputed variables (m = 20 chains, 20 iterations). Good convergence: chains interweave without systematic trends or separation.
Figure 5: S1.4 MICE convergence trace plots for all 10 imputed variables (m = 20 chains, 20 iterations). Good convergence: chains interweave without systematic trends or separation.

2.1.5 Imputed Distributions

Figure 6: S1.5 Strip plots for imputed categorical variables. Observed values (blue, .imp = 0) should anchor the imputed distribution (red points).
Figure 7: S1.6 Passively re-derived outcome distributions: observed (complete cases) vs imputed dataset m = 1. Left: VACS Index 2.0 (1 case resolved). Right: hypertension awareness (12 cases resolved).

2.1.6 Sensitivity: MICE vs Complete-Case Analysis

Table 7: S1.7 Sensitivity analysis: Model 4 estimates from MICE (m = 20) vs complete-case analysis (n = 148). Hypertension awareness coefficients vs Absent.
Term
MICE (n = 160, m = 20)
Complete-case (n = 147)
MICE β MICE SE MICE p CC β CC SE CC p
Recognized 0.65 1.97 0.741 1.06 2.06 0.606
Under-recognized -2.95 2.19 0.181 -1.19 2.28 0.604
Unclear 1.96 2.76 0.478 4.80 2.96 0.107
β = unstandardised coefficient vs Absent. CC = complete-case analysis.

2.2 S2. Model Diagnostics

Residual diagnostics were performed on Model 4 fitted to imputed dataset m = 1 as a representative check. Formal inference uses pooled estimates across all 20 datasets.

Figure 8: S2.1 Standard diagnostic plots for Model 4 (imputed dataset m = 1).
Figure 9: S2.2 Residual distribution (Model 4, m = 1). Orange dashed line = normal reference.
Table 8: S2.3 Shapiro-Wilk test of normality — Model 4 residuals (n = 160).
Statistic p-value Conclusion
0.9901 0.327 No significant departure from normality
Table 9: S2.4 Variance Inflation Factors (VIF) — Models 4 and 5 (imputed dataset m = 1). Adjusted VIF = GVIF^(1/(2×Df))² for multi-level categorical predictors.
Term VIF_M4 VIF_M5
htn_awareness 1.15 1.15
age 1.48 1.49
gender 1.82 1.86
education_3cat 1.29 1.32
occupation 1.30 1.30
marital_status_3cat 1.21 1.24
audit_c_cat 1.18 1.19
diabetes_cat 1.14 1.17
gds_binary 1.15 1.18
dyslipidemia_any 1.31 1.33
new_bmi 1.38 1.45
renal_binary 1.16 1.18
nhis_valid NA 1.16
hbmas NA 1.19
VIF > 5: moderate; VIF > 10: severe. Model 5 adds nhis_valid + hbmas.
Figure 10: S2.5 Cook’s distance for Model 4 (m = 1). Observations exceeding 4/n (dashed line) are labelled.
Table 10: S2.6 Model fit statistics (imputed dataset m = 1; illustrative only — formal inference uses pooled estimates).
Model Adj. R² Residual SE F statistic df p (F-test)
Model 1: Unadjusted 0.063 0.045 12.35 3.50 3, 156 0.0169
Model 4: Full DAG 0.523 0.446 9.40 6.83 22, 137 <0.001
Model 5: + Healthcare 0.534 0.451 9.36 6.45 24, 135 <0.001
Single imputed dataset only. Not for formal inference.

2.3 S3. Pooled SDs Used for Standardisation

Table 11: S3.1 Pooled standard deviations of continuous variables across m = 20 imputed datasets, used for standardising regression coefficients.
Variable Pooled SD
score_v2 12.64
age 7.55
new_bmi 5.06
hbmas 1.86
new_hiv_polypharmacy 0.76
audit_c_scores 1.58
SD pooled as the mean SD across 20 imputed datasets.

2.4 Session Information

sessionInfo()
R version 4.5.2 (2025-10-31)
Platform: x86_64-apple-darwin20
Running under: macOS Ventura 13.7.8

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.5-x86_64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.5-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Africa/Accra
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] officer_0.7.5      readstata13_0.11.0 janitor_2.2.1      haven_2.5.5       
 [5] labelled_2.16.0    flextable_0.9.11   car_3.1-5          carData_3.0-6     
 [9] patchwork_1.3.2    ggstatsplot_0.13.5 gt_1.3.0           gtsummary_2.5.0   
[13] miceadds_3.20-10   mice_3.19.0        lubridate_1.9.5    forcats_1.0.1     
[17] stringr_1.6.0      dplyr_1.2.0        purrr_1.2.1        readr_2.2.0       
[21] tidyr_1.3.2        tibble_3.3.1       ggplot2_4.0.2      tidyverse_2.0.0   

loaded via a namespace (and not attached):
  [1] RColorBrewer_1.1-3      rstudioapi_0.18.0       jsonlite_2.0.0         
  [4] shape_1.4.6.1           datawizard_1.3.0        correlation_0.8.8      
  [7] magrittr_2.0.5          SuppDists_1.1-9.9       TH.data_1.1-5          
 [10] estimability_1.5.1      jomo_2.7-6              cardx_0.3.2            
 [13] farver_2.1.2            nloptr_2.2.1            rmarkdown_2.31         
 [16] fs_2.0.1                ragg_1.5.1              vctrs_0.7.3            
 [19] memoise_2.0.1           minqa_1.2.8             paletteer_1.7.0        
 [22] base64enc_0.1-6         askpass_1.2.1           effectsize_1.0.2       
 [25] htmltools_0.5.9         broom_1.0.12            BWStest_0.2.3          
 [28] Formula_1.2-5           mitml_0.4-5             sass_0.4.10            
 [31] parallelly_1.46.1       htmlwidgets_1.6.4       sandwich_3.1-1         
 [34] cachem_1.1.0            emmeans_2.0.2           zoo_1.8-15             
 [37] uuid_1.2-2              commonmark_2.0.0        lifecycle_1.0.5        
 [40] iterators_1.0.14        pkgconfig_2.0.3         Matrix_1.7-4           
 [43] R6_2.6.1                fastmap_1.2.0           PMCMRplus_1.9.12       
 [46] rbibutils_2.4.1         future_1.69.0           snakecase_0.11.1       
 [49] digest_0.6.39           furrr_0.3.1             rematch2_2.1.2         
 [52] prismatic_1.1.2         textshaping_1.0.5       labeling_0.4.3         
 [55] timechange_0.4.0        abind_1.4-8             compiler_4.5.2         
 [58] fontquiver_0.2.1        withr_3.0.2             S7_0.2.1               
 [61] backports_1.5.0         DBI_1.3.0               ggsignif_0.6.4         
 [64] broom.mixed_0.2.9.7     pan_1.9                 MASS_7.3-65            
 [67] openssl_2.3.5           tools_4.5.2             otel_0.2.0             
 [70] zip_2.3.3               statsExpressions_1.7.3  nnet_7.3-20            
 [73] glue_1.8.1              nlme_3.1-168            grid_4.5.2             
 [76] generics_0.1.4          gtable_0.3.6            tzdb_0.5.0             
 [79] data.table_1.18.2.1     hms_1.1.4               utf8_1.2.6             
 [82] xml2_1.5.2              ggrepel_0.9.7           markdown_2.0           
 [85] foreach_1.5.2           pillar_1.11.1           mitools_2.4            
 [88] splines_4.5.2           lattice_0.22-7          gmp_0.7-5.1            
 [91] survival_3.8-3          tidyselect_1.2.1        fontLiberation_0.1.0   
 [94] knitr_1.51              fontBitstreamVera_0.1.1 reformulas_0.4.4       
 [97] litedown_0.9            xfun_0.57               stringi_1.8.7          
[100] yaml_2.3.12             boot_1.3-32             kSamples_1.2-12        
[103] evaluate_1.0.5          codetools_0.2-20        gdtools_0.5.0          
[106] multcompView_0.1-11     cli_3.6.6               RcppParallel_5.1.11-2  
[109] rpart_4.1.24            xtable_1.8-8            parameters_0.28.3      
[112] systemfonts_1.3.2       Rdpack_2.6.6            Rcpp_1.1.1-1.1         
[115] globals_0.19.1          zeallot_0.2.0           coda_0.19-4.1          
[118] parallel_4.5.2          rstantools_2.6.0        bayestestR_0.17.0      
[121] Rmpfr_1.1-2             lme4_2.0-1              listenv_0.10.1         
[124] glmnet_4.1-10           broom.helpers_1.22.0    mvtnorm_1.3-5          
[127] scales_1.4.0            insight_1.4.6           rlang_1.2.0            
[130] multcomp_1.4-30         cards_0.7.1