Hypertension/Stroke Knowledge Questionnaire (HKQ)

Author

Dr Samuel Blay Nguah

Published

May 24, 2024

Import data

Show the code
df_paper_03 <- dget("df_for_papers") 

Summary table: All data

Show the code
gtsummary::theme_gtsummary_compact()
df_paper_03 %>%
    gtsummary::tbl_summary(
        include = c(
            a_agebase, a_gender, maristat, educ, a_livingsit, a_religion, 
            a_domicile, income, d_st_type, d_stroke_ct, bmi, barthels_index, 
            aa_bp_115_75:aa_strokeris, aa_hkq, aa_hkq_cat, hosp_cat),
        digits = gtsummary::all_categorical()~ c(0,1),
        statistic = gtsummary::all_categorical() ~ "{n} ({p})",
        missing_text = "Missing"
    ) %>% 
    gtsummary::bold_labels() %>% 
    gtsummary::modify_caption("General overview of data") 
Table 1: General overview of data
Characteristic N = 5001
Age in years
    Median (IQR) 58 (51, 67)
    Mean (SD) 58 (12)
    Range 14, 88
Gender
    Male 281 (56.2)
    Female 219 (43.8)
Marital Status
    Currently Married 333 (66.6)
    Previously Married 144 (28.8)
    Never Married 23 (4.6)
Educational Status
    None 49 (9.8)
    Primary 205 (41.0)
    Secondary 164 (32.8)
    Tertiary 82 (16.4)
Living Status
    Lives Alone 29 (5.8)
    Lives With Spouse and Children 272 (54.4)
    Lives in a Nursing Home 1 (0.2)
    Lives With Spouse 30 (6.0)
    Lives With Extended Family 72 (14.4)
    Lives With Children 96 (19.2)
Religion
    Christianity 448 (89.6)
    Islam 49 (9.8)
    Other 3 (0.6)
Domicile
    Rural 35 (7.0)
    Semi-Urban 165 (33.0)
    Urban 300 (60.0)
Income in GHC
    0-100 102 (20.6)
    101-250 160 (32.4)
    251-500 145 (29.4)
    >500 87 (17.6)
    Missing 6
Stroke Type (Choose One)
    Ischemic Stroke 316 (73.7)
    Intracerebral Hemorrhagic Stroke 98 (22.8)
    Ischemic With Hemorrhagic Transformation 10 (2.3)
    Untyped Stroke (no CT scan available) 5 (1.2)
    Missing 71
Stroke Subtype ( with results of Brain CT scan)
    Ischaemic 306 (73.7)
    Haemorrhage infarct 15 (3.6)
    Haemorrhagic 82 (19.8)
    Ischaemic and Haemorrhagic 12 (2.9)
    Missing 85
Body Mass Index
    Median (IQR) 26.2 (22.7, 30.0)
    Mean (SD) 26.6 (5.5)
    Range 11.4, 47.9
    Missing 24
Barthels Index
    Median (IQR) 80 (40, 90)
    Mean (SD) 66 (27)
    Range 0, 90
    Missing 19
(1) If someones blood pressure is 115/75. it is ......
    High 51 (10.3)
    Low 158 (31.8)
    Normal 119 (23.9)
    Dont Know 169 (34.0)
    Missing 3
(2) If someones blood pressure is 160/100. It is....
    High 330 (66.7)
    Low 10 (2.0)
    Normal 9 (1.8)
    Dont Know 146 (29.5)
    Missing 5
(3) Once someone has high blood pressure, it usually lasts for
    A few years 76 (15.4)
    5-10 Years 25 (5.1)
    The Rest of their Life 178 (36.0)
    Dont Know 216 (43.6)
    Missing 5
(4) People with high blood pressure should take their medicine
    Everyday 465 (95.3)
    At Least a few Times a week 11 (2.3)
    Only When They feel sick 12 (2.5)
    Missing 12
(5) Losing weight usually makes blood pressure
    Go up 40 (8.2)
    Go Down 322 (66.4)
    Stay the same 123 (25.4)
    Missing 15
(6) Eating less salt usually makes blood pressure
    Go Up 50 (10.2)
    Go Down 370 (75.2)
    Stay the Same 72 (14.6)
    Missing 8
(7) High blood pressure can cause heart attacks
    Yes 345 (69.7)
    No 11 (2.2)
    Dont Know 139 (28.1)
    Missing 5
(8) High blood pressure can cause cancer
    Yes 147 (29.6)
    No 59 (11.9)
    Dont Know 290 (58.5)
    Missing 4
(9) High blood pressure can cause can kidney problems
    Yes 238 (48.0)
    No 23 (4.6)
    Dont Know 235 (47.4)
    Missing 4
(10) High blood pressure can cause strokes
    Yes 392 (79.2)
    No 8 (1.6)
    Dont Know 95 (19.2)
    Missing 5
(11) Someone who has had a stroke is at higher risk of having another
    Yes 258 (52.1)
    No 29 (5.9)
    Dont Know 208 (42.0)
    Missing 5
(12) If someone is not having headaches they can stop taking medications
    Yes 94 (19.0)
    No 274 (55.4)
    Dont Know 127 (25.7)
    Missing 5
(13) If someone is feeling good it is ok to miss doses of medication
    Never 354 (71.5)
    Once a Month 11 (2.2)
    Once a week 7 (1.4)
    Dont know 123 (24.8)
    Missing 5
(14) Once someone has had a stroke, they will be at risk for stroke for ....
    A Few Years 139 (28.2)
    5-10 Years 21 (4.3)
    The Rest of Their Life 62 (12.6)
    Dont Know 271 (55.0)
    Missing 7
Total HKQ Score
    Median (IQR) 8 (6, 10)
    Mean (SD) 8 (3)
    Range 0, 13
    Missing 30
Categorised Total HKQ Score
    Median & below 240 (51.1)
    Above Median 230 (48.9)
    Missing 30
Health institution category
    Primary 148 (29.6)
    Secondary 119 (23.8)
    Tertiary 233 (46.6)
1 n (%)

Tables

Table 1

Show the code
gtsummary::reset_gtsummary_theme()
gtsummary::theme_gtsummary_compact()

table_1 <-
    df_paper_03 %>% 
    select(matches("(aa)*(correct)")) %>% 
    gtsummary::tbl_summary(
        missing = "no"
    ) %>% 
    bold_labels() %>% 
    add_n() %>% 
    gtsummary::modify_caption("Item response rate to the HKQ")

table_1
file.remove("paper_3_table_1.docx")
[1] TRUE
Show the code
table_1 %>% 
    gtsummary::as_gt() %>% 
    gt::gtsave(filename = "paper_3_table_1.docx")
Table 2: Item response rate to the HKQ
Characteristic N N = 5001
If someones blood pressure is 160/100. It is 495 330 (67%)
Once someone has high blood pressure, it usually lasts for 495 178 (36%)
People with high blood pressure should take their medicine 488 465 (95%)
Losing weight usually makes blood pressure 485 322 (66%)
Eating less salt usually makes blood pressure 492 370 (75%)
High blood pressure can cause heart attacks 495 345 (70%)
High blood pressure can cause cancer 496 59 (12%)
High blood pressure can cause strokes 495 392 (79%)
High blood pressure can cause can kidney problems 496 238 (48%)
Someone who has had a stroke is at higher risk of having another 495 258 (52%)
If someone is not having headaches they can stop taking medications 495 274 (55%)
If someone is feeling good it is ok to miss doses of medication 495 354 (72%)
Once someone has had a stroke, they will be at risk for stroke for 493 62 (13%)
1 n (%)

Table 2

Show the code
gtsummary::theme_gtsummary_compact()
table_2 <- 
    df_paper_03 %>% 
    filter(!is.na(aa_hkq_cat)) %>% 
    gtsummary::tbl_summary(
        type = list(ranking ~ "continuous2"),
        include = c(
            a_agebase, male, educ, a_religion,  a_domicile, income, d_st_type, 
            ranking, nihss_scale, ee_sbp_0, ee_dbp_0, bmi, aa_hkq_cat, hosp_cat),
        digits = gtsummary::all_categorical()~ c(0,1),
        statistic = gtsummary::all_categorical() ~ "{n} ({p})",
        missing = "no",
        by = aa_hkq_cat
    ) %>% 
    gtsummary::bold_labels() %>% 
    gtsummary::modify_caption(
        "Baseline Demographic & Clinical Characteristics According 
        to Scores Obtained on the HKQ") %>% 
    gtsummary::modify_spanning_header(
    gtsummary::all_stat_cols() ~ "**Categorised Total HKQ Score**") %>% 
    gtsummary::add_overall(last = T) %>% 
    gtsummary::add_p(pvalue_fun = ~ gtsummary::style_pvalue(.x, digits = 3))

table_2
file.remove("paper_3_table_2.docx")
[1] TRUE
Show the code
table_2 %>% 
    gtsummary::as_gt() %>% 
    gt::gtsave(filename = "paper_3_table_2.docx")
Table 3: Baseline Demographic & Clinical Characteristics According to Scores Obtained on the HKQ
Characteristic Categorised Total HKQ Score Overall, N = 4701 p-value2
Median & below, N = 2401 Above Median, N = 2301
Age in years 58 (50, 68) 58 (52, 65) 58 (51, 67) 0.717
Male sex 115 (47.9) 144 (62.6) 259 (55.1) 0.001
Educational Status


<0.001
    None 32 (13.3) 12 (5.2) 44 (9.4)
    Primary 117 (48.8) 76 (33.0) 193 (41.1)
    Secondary 71 (29.6) 85 (37.0) 156 (33.2)
    Tertiary 20 (8.3) 57 (24.8) 77 (16.4)
Religion


0.060
    Christianity 208 (86.7) 212 (92.2) 420 (89.4)
    Islam 29 (12.1) 18 (7.8) 47 (10.0)
    Other 3 (1.3) 0 (0.0) 3 (0.6)
Domicile


0.376
    Rural 14 (5.8) 20 (8.7) 34 (7.2)
    Semi-Urban 85 (35.4) 72 (31.3) 157 (33.4)
    Urban 141 (58.8) 138 (60.0) 279 (59.4)
Income in GHC


0.019
    0-100 62 (26.2) 35 (15.4) 97 (20.9)
    101-250 78 (32.9) 73 (32.0) 151 (32.5)
    251-500 61 (25.7) 77 (33.8) 138 (29.7)
    >500 36 (15.2) 43 (18.9) 79 (17.0)
Stroke Type (Choose One)


0.297
    Ischemic Stroke 141 (70.1) 157 (77.0) 298 (73.6)
    Intracerebral Hemorrhagic Stroke 51 (25.4) 42 (20.6) 93 (23.0)
    Ischemic With Hemorrhagic Transformation 5 (2.5) 4 (2.0) 9 (2.2)
    Untyped Stroke (no CT scan available) 4 (2.0) 1 (0.5) 5 (1.2)
Modified Ranking Score


0.023
    Median (IQR) 2.00 (1.00, 3.00) 2.00 (1.00, 3.00) 2.00 (1.00, 3.00)
NIH Stroke Scale 4.0 (0.0, 9.0) 2.0 (0.0, 6.0) 3.0 (0.0, 8.0) <0.001
Systolic blood pressure (mm Hg)-Baseline 155 (146, 172) 154 (146, 168) 155 (146, 170) 0.265
Diastolic Blood Pressure 96 (89, 106) 94 (87, 103) 95 (88, 105) 0.070
Body Mass Index 25.9 (22.4, 28.7) 26.4 (23.0, 30.9) 26.2 (22.7, 30.1) 0.059
Health institution category


0.672
    Primary 75 (31.3) 67 (29.1) 142 (30.2)
    Secondary 59 (24.6) 52 (22.6) 111 (23.6)
    Tertiary 106 (44.2) 111 (48.3) 217 (46.2)
1 Median (IQR); n (%)
2 Wilcoxon rank sum test; Pearson’s Chi-squared test; Fisher’s exact test

Linear regression of Total HKQ and covariates

Show the code
tbl1 <- 
    df_paper_03 %>% 
    select(
        a_agebase, male, educ, a_religion,  a_domicile, income, d_st_type, 
        ranking, nihss_scale, ee_sbp_0, ee_dbp_0, bmi, aa_hkq, hosp_cat) %>% 
    tbl_uvregression(
        y = aa_hkq, 
        method = lm,
        pvalue_fun = function(x) style_pvalue(x, digits = 3)) %>% 
    modify_header(
        update = list(estimate ~ "**Estimate**", label ~ "**Variable**")) %>% 
    bold_labels() %>% 
    bold_p()

tbl2 <- 
    df_paper_03 %>% 
    select(
        male, educ, a_religion,  ranking, nihss_scale, bmi, aa_hkq, hosp_cat) %>% 
    lm(aa_hkq ~ ., data = .) %>% 
    tbl_regression(pvalue_fun = function(x) style_pvalue(x, digits = 3)) %>% 
    modify_header(
        update = list(estimate ~ "**Estimate**", label ~ "**Variable**")) %>% 
    bold_labels() %>% 
    bold_p()

 
table_3 <- 
    tbl_merge(
    list(tbl1, tbl2),
    tab_spanner = c("**Univariate**", "**Multivariate**")) %>%    
    modify_caption(
        caption = "Univartiate and multivariate linear regression predicting HKQ") 

table_3
file.remove("paper_3_table_3.docx")
[1] TRUE
Show the code
table_3 %>% 
    gtsummary::as_gt() %>% 
    gt::gtsave(filename = "paper_3_table_3.docx")
Table 4: Univartiate and multivariate linear regression predicting HKQ
Variable Univariate Multivariate
N Estimate 95% CI1 p-value Estimate 95% CI1 p-value
Age in years 470 -0.02 -0.05, 0.00 0.092


Male sex 470





    No


    Yes
0.67 0.10, 1.2 0.022 0.41 -0.21, 1.0 0.196
Educational Status 470





    None


    Primary
1.5 0.51, 2.5 0.003 1.1 0.02, 2.1 0.046
    Secondary
2.2 1.2, 3.2 <0.001 1.6 0.52, 2.7 0.004
    Tertiary
3.1 2.0, 4.3 <0.001 2.4 1.2, 3.6 <0.001
Religion 470





    Christianity


    Islam
-1.6 -2.6, -0.69 <0.001 -1.4 -2.4, -0.49 0.003
    Other
-3.6 -7.1, -0.04 0.048 -3.4 -7.5, 0.68 0.102
Domicile 470





    Rural




    Semi-Urban
-0.87 -2.0, 0.30 0.143


    Urban
-0.94 -2.1, 0.18 0.101


Income in GHC 465





    0-100




    101-250
0.04 -0.77, 0.84 0.930


    251-500
0.32 -0.51, 1.1 0.451


    >500
0.31 -0.63, 1.3 0.512


Stroke Type (Choose One) 405





    Ischemic Stroke




    Intracerebral Hemorrhagic Stroke
-0.48 -1.2, 0.21 0.170


    Ischemic With Hemorrhagic Transformation
-0.40 -2.4, 1.6 0.692


    Untyped Stroke (no CT scan available)
-1.9 -4.5, 0.76 0.163


Modified Ranking Score 469 -0.39 -0.61, -0.16 <0.001 0.05 -0.25, 0.35 0.726
NIH Stroke Scale 461 -0.13 -0.18, -0.08 <0.001 -0.15 -0.22, -0.07 <0.001
Systolic blood pressure (mm Hg)-Baseline 467 -0.01 -0.03, 0.00 0.113


Diastolic Blood Pressure 467 -0.01 -0.03, 0.01 0.216


Body Mass Index 451 0.10 0.05, 0.15 <0.001 0.08 0.03, 0.13 0.002
Health institution category 470





    Primary


    Secondary
0.81 0.03, 1.6 0.042 0.48 -0.30, 1.3 0.228
    Tertiary
0.50 -0.16, 1.2 0.137 -0.39 -1.1, 0.34 0.297
1 CI = Confidence Interval

Logistit regression - Item 11

Item # 11: If someone has had a stroke is at a higher risk of having another stroke

Show the code
tbl3 <- 
    df_paper_03 %>% 
    mutate(aa_highrisk_correct = factor(aa_highrisk_correct)) %>% 
    select(
        a_agebase, male, educ, a_religion,  a_domicile, income, d_st_type, 
        ranking, nihss_scale, ee_sbp_0, ee_dbp_0, bmi, aa_highrisk_correct, hosp_cat) %>% 
    tbl_uvregression(
        y = aa_highrisk_correct, 
        method = glm,
        method.args = family(binomial),
        exponentiate = TRUE,
        pvalue_fun = function(x) style_pvalue(x, digits = 3)) %>% 
    modify_header(
        update = list(estimate ~ "**cOR**", label ~ "**Variable**")) %>% 
    bold_labels() %>% 
    bold_p()


tbl4 <- 
    df_paper_03 %>% 
    mutate(aa_highrisk_correct = factor(aa_highrisk_correct)) %>% 
    select(
        a_agebase, male, educ, a_religion, income, nihss_scale, bmi, hosp_cat, 
        aa_highrisk_correct) %>% 
    glm(aa_highrisk_correct ~ ., data = ., family=binomial) %>%
    tbl_regression(
        exponentiate = T, 
        pvalue_fun = function(x) style_pvalue(x, digits = 3)) %>% 
    modify_header(
        update = list(estimate ~ "**aOR**", label ~ "**Variable**")) %>% 
    bold_labels() %>% 
    bold_p()

table_4 <-
    tbl_merge(
    list(tbl3, tbl4),
    tab_spanner = c("**Univariate**", "**Multivariate**")) %>%    
    modify_caption(
        caption = "Univartiate and multivariate logistic regression of Item 11 of HKQ") 
table_4
file.remove("paper_3_table_4.docx")
[1] TRUE
Show the code
table_4 %>% 
    gtsummary::as_gt() %>% 
    gt::gtsave(filename = "paper_3_table_4.docx")
Table 5: Univartiate and multivariate logistic regression of Item 11 of HKQ
Variable Univariate Multivariate
N cOR1 95% CI1 p-value aOR1 95% CI1 p-value
Age in years 495 0.98 0.97, 1.00 0.041 1.00 0.98, 1.01 0.665
Male sex 495





    No


    Yes
1.88 1.32, 2.70 <0.001 1.66 1.07, 2.59 0.025
Educational Status 495





    None


    Primary
3.01 1.47, 6.69 0.004 2.35 1.07, 5.51 0.039
    Secondary
5.87 2.82, 13.2 <0.001 3.99 1.76, 9.66 0.001
    Tertiary
8.44 3.75, 20.4 <0.001 4.75 1.87, 12.8 0.001
Religion 495





    Christianity


    Islam
0.50 0.26, 0.90 0.024 0.72 0.35, 1.45 0.358
    Other
0.43 0.02, 4.49 0.488 1.24 0.05, 32.4 0.883
Domicile 495





    Rural




    Semi-Urban
1.56 0.74, 3.32 0.243


    Urban
1.34 0.66, 2.77 0.425


Income in GHC 490





    0-100


    101-250
1.16 0.70, 1.91 0.564 0.78 0.44, 1.38 0.396
    251-500
1.75 1.05, 2.94 0.032 1.02 0.55, 1.87 0.954
    >500
1.40 0.79, 2.52 0.251 0.85 0.42, 1.71 0.641
Stroke Type (Choose One) 425





    Ischemic Stroke




    Intracerebral Hemorrhagic Stroke
0.88 0.56, 1.40 0.594


    Ischemic With Hemorrhagic Transformation
3.32 0.82, 22.2 0.133


    Untyped Stroke (no CT scan available)
0.21 0.01, 1.42 0.162


Modified Ranking Score 494 0.94 0.82, 1.08 0.386


NIH Stroke Scale 485 0.96 0.93, 1.0 0.025 0.98 0.94, 1.02 0.372
Systolic blood pressure (mm Hg)-Baseline 492 1.00 0.99, 1.01 0.683


Diastolic Blood Pressure 492 1.00 0.99, 1.01 0.925


Body Mass Index 474 1.05 1.02, 1.09 0.003 1.06 1.02, 1.10 0.007
Health institution category 495





    Primary


    Secondary
1.57 0.96, 2.57 0.071 1.38 0.79, 2.40 0.260
    Tertiary
2.18 1.43, 3.33 <0.001 1.78 1.06, 3.01 0.029
1 OR = Odds Ratio, CI = Confidence Interval

Logistit regression - Item 14

Item # 14: If someone has had a stroke is at a higher risk of having another stroke

Show the code
tbl5 <- 
    df_paper_03 %>% 
    mutate(aa_strokeris_correct = factor(aa_strokeris_correct)) %>% 
    select(
        a_agebase, male, educ, a_religion,  a_domicile, income, d_st_type, 
        ranking, nihss_scale, ee_sbp_0, ee_dbp_0, bmi, aa_strokeris_correct, hosp_cat) %>% 
    tbl_uvregression(
        y = aa_strokeris_correct, 
        method = glm,
        method.args = family(binomial),
        exponentiate = TRUE,
        pvalue_fun = function(x) style_pvalue(x, digits = 3)) %>% 
    modify_header(
        update = list(estimate ~ "**cOR**", label ~ "**Variable**")) %>% 
    bold_labels() %>% 
    bold_p()


tbl6 <- 
    df_paper_03 %>% 
    mutate(aa_strokeris_correct = factor(aa_strokeris_correct)) %>% 
    select(a_domicile, income, ranking, hosp_cat, aa_strokeris_correct) %>% 
    glm(aa_strokeris_correct ~ ., data = ., family=binomial) %>%
    tbl_regression(
        exponentiate = T, 
        pvalue_fun = function(x) style_pvalue(x, digits = 3)) %>% 
    modify_header(
        update = list(estimate ~ "**aOR**", label ~ "**Variable**")) %>% 
    bold_labels() %>% 
    bold_p()

table_5 <-
    tbl_merge(
    list(tbl5, tbl6),
    tab_spanner = c("**Univariate**", "**Multivariate**")) %>%    
    modify_caption(
        caption = "Univartiate and multivariate logistic regression of Item 14 of HKQ") 

table_5
file.remove("paper_3_table_5.docx")
[1] TRUE
Show the code
table_5 %>% 
    gtsummary::as_gt() %>% 
    gt::gtsave(filename = "paper_3_table_5.docx")
Table 6: Univartiate and multivariate logistic regression of Item 14 of HKQ
Variable Univariate Multivariate
N cOR1 95% CI1 p-value aOR1 95% CI1 p-value
Age in years 493 1.00 0.97, 1.02 0.835


Male sex 493





    No




    Yes
1.74 1.00, 3.11 0.056


Educational Status 493





    None




    Primary
0.47 0.17, 1.40 0.149


    Secondary
1.60 0.66, 4.50 0.325


    Tertiary
1.19 0.43, 3.63 0.748


Religion 493





    Christianity




    Islam
0.96 0.35, 2.20 0.928


    Other
0.00
0.987


Domicile 493





    Rural


    Semi-Urban
0.33 0.14, 0.80 0.012 0.33 0.13, 0.85 0.019
    Urban
0.32 0.14, 0.75 0.006 0.33 0.14, 0.83 0.015
Income in GHC 488





    0-100


    101-250
1.18 0.55, 2.65 0.683 1.43 0.63, 3.35 0.399
    251-500
0.68 0.28, 1.66 0.392 0.90 0.36, 2.27 0.818
    >500
2.52 1.15, 5.78 0.024 2.21 0.96, 5.29 0.066
Stroke Type (Choose One) 422





    Ischemic Stroke




    Intracerebral Hemorrhagic Stroke
0.98 0.47, 1.91 0.961


    Ischemic With Hemorrhagic Transformation
1.70 0.25, 7.08 0.512


    Untyped Stroke (no CT scan available)
1.70 0.09, 11.9 0.639


Modified Ranking Score 492 0.76 0.61, 0.95 0.015 0.81 0.65, 1.01 0.065
NIH Stroke Scale 483 1.00 0.95, 1.05 0.993


Systolic blood pressure (mm Hg)-Baseline 490 1.00 0.99, 1.02 0.771


Diastolic Blood Pressure 490 1.00 0.99, 1.02 0.654


Body Mass Index 472 1.02 0.97, 1.07 0.383


Health institution category 493





    Primary


    Secondary
1.83 0.98, 3.48 0.060 1.74 0.89, 3.45 0.106
    Tertiary
0.39 0.19, 0.79 0.010 0.46 0.22, 0.97 0.043
1 OR = Odds Ratio, CI = Confidence Interval