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)