NNJ Maternal Knowledge

Code
library(tidyverse)
nnj_mat <- dget("nnj") %>% 
    select(
        sid, mage, meduc, maristat, occup, mincome, nhis, gravid, 
        parity, delplace, matbldgrp, mrhesus, prev_nnj, heardnnj, anc,
        hprof, friend, radio, social, prev_chn, othersnnj, nnj_oth_2, 
        what_is_nnj, danger1, danger2, danger_signs, nnjharm, interval,
        interval2, interval3, interval4, nnj_treat_home, yesjaund, 
        jbabies, ifyes3, resistance2, mat_anemia:mat_syphilis, primip,
        mincome_cat, prev_nnj2, adm_age_hours, comp_death:comp_eye, 
        nnj_noidea:nnj_oth_cause, sunlight:herbs, nnjharm2, moccup_cat) %>% 
    mutate(
        single = case_when(
            maristat == "Single" ~ "Yes",
            maristat == "Married" ~ "No",
            maristat == "Co-habiting" ~ "No"),
        nhis2 = case_when(
            nhis == "None" ~ "No",
            nhis == "National" ~ "Yes",
            nhis == "Private" ~ "Yes"),
        rhesus_neg = case_when(
            mrhesus == "Negative" ~ "Yes",
            mrhesus == "Positive" ~ "No"),
        income_cat = case_when(
            mincome_cat == "Less than GHC320" ~ "<=650GHC",
            mincome_cat == "320 to 650GHC" ~ "<=650GHC",
            mincome_cat == ">650 to 1500GHC" ~ ">650GHC",
            mincome_cat == "Greater than 1500" ~ ">650GHC"),
        what_is_nnj = case_when(
            what_is_nnj == "Right" ~ "Yes",
            what_is_nnj == "Wrong"~ "No") %>% factor())
nnj_mat <-
    nnj_mat %>% 
    labelled::set_variable_labels(
        meduc = "Educational level",
        mage = "Age (years)",
        gravid = "Gravidity",
        single = "Single Mother",
        nhis2 = "Insurance coverage",
        rhesus_neg = "Rhesus negative",
        mincome_cat = "Income level",
        prev_nnj2 = "Previous NNJ",
        income_cat = "Income (GHC)",
        what_is_nnj = "Know what NNJ is"
        )

Table 1A:

Code
gtsummary::theme_gtsummary_compact()
Setting theme "Compact"
Code
nnj_mat %>% 
    select(
        what_is_nnj,  mage, meduc, single, gravid, primip, nhis2, 
        delplace, matbldgrp, rhesus_neg, income_cat, prev_nnj2, 
        moccup_cat) %>% 
    gtsummary::tbl_summary(
        by = what_is_nnj,
        type = list(
            parity = "continuous",
            gravid = "continuous"
            )
    ) %>% 
    gtsummary::add_overall(last=T) %>%
    gtsummary::add_p(
        pvalue_fun = function(x) gtsummary::style_pvalue(x, digits = 3)) %>% 
    gtsummary::bold_labels() %>% 
    gtsummary::bold_p()
Table 1: Association between mothers knowing about NNJ and maternal characteristics

Characteristic

No
N = 78

1

Yes
N = 145

1

Overall
N = 223

1

p-value

2
Age (years) 26 (22, 30) 31 (26, 35) 29 (25, 34) <0.001
Educational level


<0.001
    None 9 (12%) 4 (2.8%) 13 (5.8%)
    Prim/JHS 44 (56%) 49 (34%) 93 (42%)
    Senior Hiigh 21 (27%) 52 (36%) 73 (33%)
    Tertiary 4 (5.1%) 40 (28%) 44 (20%)
Single Mother 33 (42%) 17 (12%) 50 (22%) <0.001
Gravidity 2 (1, 2) 3 (2, 4) 2 (1, 4) <0.001
Primiparous mother 48 (62%) 53 (37%) 101 (45%) <0.001
Insurance coverage 67 (86%) 133 (92%) 200 (90%) 0.172
Place of delivery


0.108
    KATH 35 (45%) 71 (49%) 106 (48%)
    District Hospital 29 (37%) 37 (26%) 66 (30%)
    Private Hospital 10 (13%) 33 (23%) 43 (19%)
    Others 4 (5.1%) 4 (2.8%) 8 (3.6%)
Mother's blood group


0.814
    A 12 (16%) 19 (13%) 31 (14%)
    B 13 (18%) 27 (19%) 40 (19%)
    AB 2 (2.7%) 2 (1.4%) 4 (1.9%)
    O 47 (64%) 93 (66%) 140 (65%)
    Unknown 4 4 8
Rhesus negative 2 (2.7%) 20 (14%) 22 (10%) 0.008
    Unknown 4 4 8
Income (GHC)


0.012
    <=650GHC 33 (79%) 64 (57%) 97 (63%)
    >650GHC 9 (21%) 49 (43%) 58 (37%)
    Unknown 36 32 68
Previous NNJ 4 (5.1%) 34 (23%) 38 (17%) <0.001
Mother's Occupation


<0.001
    Civil / Public servant 4 (5.1%) 41 (28%) 45 (20%)
    Self/Private 47 (60%) 83 (57%) 130 (58%)
    Student 6 (7.7%) 7 (4.8%) 13 (5.8%)
    Unemployed 21 (27%) 14 (9.7%) 35 (16%)
1

Median (Q1, Q3); n (%)

2

Wilcoxon rank sum test; Fisher’s exact test; Pearson’s Chi-squared test

Table 1B

Code
nnj_mat %>% 
    glm(what_is_nnj ~ mage + meduc + single + parity + 
            rhesus_neg + prev_nnj2 + moccup_cat,
        data = ., 
        family = binomial(link = "logit")) %>% 
    gtsummary::tbl_regression(
        exponentiate = TRUE,
        pvalue_fun = function(x) gtsummary::style_pvalue(x, digits = 3)) %>% 
    gtsummary::bold_labels() %>% 
    gtsummary::bold_p()
Table 2: Adjusted association between mothers knowing about NNJ and maternal characteristics

Characteristic

OR

1

95% CI

1

p-value

Age (years) 1.06 0.97, 1.15 0.184
Educational level


    None
    Prim/JHS 2.78 0.69, 12.8 0.161
    Senior Hiigh 6.45 1.52, 31.6 0.014
    Tertiary 19.1 2.79, 152 0.003
Single Mother


    No
    Yes 0.33 0.13, 0.82 0.018
parity 1.08 0.78, 1.49 0.645
Rhesus negative


    No
    Yes 3.36 0.79, 23.8 0.145
Previous NNJ


    No
    Yes 3.87 1.20, 15.6 0.035
Mother's Occupation


    Civil / Public servant
    Self/Private 0.74 0.16, 2.96 0.684
    Student 0.80 0.12, 5.29 0.812
    Unemployed 0.38 0.07, 1.71 0.216
1

OR = Odds Ratio, CI = Confidence Interval

Table 2

Code
nnj_mat %>% 
    filter(heardnnj == "Yes") %>% 
    mutate(
        sources = (friend == "Yes") + (anc == "Yes")  + 
            (hprof == "Yes")  + (prev_chn == "Yes")  + 
            (radio == "Yes")  + (social == "Yes")  +  
            (othersnnj == "Yes"),
        sources = factor(
            sources, levels = c(1,2,3), labels = c("One","Two", "Three")),
        source_health_prof = case_when(
            (hprof == "Yes") | (anc == "Yes") ~ "Yes", TRUE ~ "No"),
        complication = (comp_death == "Yes") + (comp_retard == "Yes") +                  (comp_damage == "Yes") + (comp_devt == "Yes") + 
            (comp_eye == "Yes"),
        causes_known = (
            nnj_bld_incomp == "Yes") + (nnj_breastfeed == "Yes") + 
            (nnj_infection == "Yes") + (nnj_fever == "Yes") + 
            (nnj_liver_dxs == "Yes")) %>%
    select(
        sources, source_health_prof, nnjharm2, danger_signs, 
        nnj_treat_home, complication, causes_known) %>% 
    gtsummary::tbl_summary(
        digits = list(
            gtsummary::all_categorical() ~ c(0, 1)),
        label = list(
            sources ~ "Source of knowledge on NNJ",
            source_health_prof ~ "Source of knowledge from health personnel",
            nnjharm2 ~ "Knowledge NNJ is harmful",
            causes_known ~ "Number of causes of NNJ mentioned",
            complication ~ "Number of complications of NNJ mentioned")
            ) %>%
    gtsummary::bold_labels()
Table 3: Mothers knowledge about NNJ

Characteristic

N = 151

1
Source of knowledge on NNJ
    One 118 (78.1%)
    Two 29 (19.2%)
    Three 4 (2.6%)
Source of knowledge from health personnel 79 (52.3%)
Knowledge NNJ is harmful 81 (53.6%)
Number of NNJ danger signs mentioned
    None 106 (70.2%)
    One 30 (19.9%)
    Two 15 (9.9%)
NNJ can be treated at home 99 (65.6%)
Number of complications of NNJ mentioned
    0 70 (46.4%)
    1 67 (44.4%)
    2 14 (9.3%)
Number of causes of NNJ mentioned
    0 99 (65.6%)
    1 49 (32.5%)
    2 3 (2.0%)
1

n (%)

Figure

Code
#|label: fig-one
#|fig.width: 9
#|fig.height: 4
#|fig.cap: "Distribution of mothers' knkowledge of causes, complications, "

plot_one <- 
    nnj_mat %>% 
    select(
        friend, anc, hprof, prev_chn, radio, social,  othersnnj,
        nnj_malaria:nnj_oth_cause, sunlight:herbs, comp_death:comp_eye) %>% 
    rename(
        source_friend = friend,
        source_anc = anc,
        source_hprof = hprof, 
        source_prev_chn = prev_chn,
        source_radio = radio,
        source_social = social,
        source_othersnnj = othersnnj,
        tmt_breastfeed = breastfeed,
        tmt_herbs = herbs,
        tmt_glucose = glucose,
        tmt_sunlight = sunlight
        ) %>% 
    pivot_longer(cols = source_friend:comp_eye) %>% 
    filter(value == "Yes") %>% 
    group_by(name) %>% 
    count() %>% 
    ungroup() %>% 
    mutate(
        grp = str_extract(name, "^[a-z]+"),
        perc = n/151,
        grp = case_when(
            grp == "comp" ~ "Complications",
            grp == "nnj" ~ "Cause",
            grp == "source" ~ "Source of Knowledge",
            grp == "tmt" ~ "Treatment"),
        name = case_when(
            name == "comp_damage" ~ "Brain Damage",
            name == "comp_death" ~ "Death",
            name == "comp_devt" ~ "Developmental Delay",
            name == "comp_eye" ~ "Visual Impairment",
            name == "comp_retard" ~ "Mental Retardation",
            name == "nnj_bld_incomp" ~ "Blood incompatibility",
            name == "nnj_breastfeed" ~ "Breastfeeding",
            name == "nnj_candidiasis" ~ "Candidiasis",
            name == "nnj_eye_dxs" ~ "Eye Disease",
            name == "nnj_fever" ~ "Fever",
            name == "nnj_infection" ~ "Infections",
            name == "nnj_liver_dxs" ~ "Liver Disease",
            name == "nnj_malaria" ~ "Malaria",
            name == "nnj_oilyfood" ~ "Oily Foods",
            name == "nnj_oth_cause" ~ "Others",
            name == "source_anc" ~ "Antenatal Clinic",
            name == "source_friend" ~ "Friends/Relatives",
            name == "source_hprof" ~ "Health Professional",
            name == "source_othersnnj" ~ "Others",
            name == "source_prev_chn" ~ "Previous child Birth",
            name == "source_radio" ~ "Radio/Television",
            name == "source_social" ~ "Social Media",
            name == "tmt_breastfeed" ~ "Breastfeeding",
            name == "tmt_glucose" ~ "Oral Glucose",
            name == "tmt_herbs" ~ "Herbs",
            name == "tmt_sunlight" ~ "Sunlight")
        ) %>%
    ggplot(
        aes(
            x = fct_reorder(name, n), 
            y = n, 
            label = paste0(
                n, 
                "(", 
                scales::percent(perc, accuracy = 0.1), ")"))) + 
    geom_bar(stat = 'identity', fill = "gray45") +
    coord_flip()+
    labs(x = NULL, y = NULL)+
    ylim(c(0,100))+
    geom_text(
        vjust = 0.25, 
        hjust = -0.05,
        color= "black", 
        size = 3, 
        fontface="italic")+
    facet_wrap("grp", nrow = 2, scales = "free")+
    theme_light()+
    theme(
        text = element_text(family = "serif", size = 12),
        strip.background = element_rect(fil = "white"),
        strip.text = element_text(colour = "black", size = 10, face = "bold"))

plot_one

Code
ggsave("plot-one.pdf", width = 7, height = 4.5)