Bed Nets Report
Malaria remains endemic in Nigeria despite programmes and polices put in place toward malaria elimination. Long-lasting insecticidal nets have been documented to offer protection from malaria by preventing mosquito bites.
The data for this study were derived from a household survey conducted in some northern states (Bauchi, Kaduna, Kano and Katsina) in Nigeria.
HUGOMORE42Loading packages for analysis
library(dplyr)
library(readr)
library(stringr)
library(highcharter)
library(here)
Import the datasets into the R environments - sms_reponse - baseline_characteristics
sms_response <- read_csv("data/bed_nets_report/sms_responses.csv")
head(sms_response)
## # A tibble: 6 x 4
## `Phone Number` sms1_malaria sms2_bednets sms3_u5risk
## <chr> <chr> <chr> <chr>
## 1 08078830244 YES NO NO
## 2 07064554275 NO YES NO
## 3 09023849871 NO NO YES
## 4 09097554751 NO NO NO
## 5 09028304719 YES NO NO
## 6 08098551781 YES YES YES
baseline <- read_csv("data/bed_nets_report/baseline_characteristics.csv")
head(baseline)
## # A tibble: 6 x 12
## `Study ID` `Phone Number` Age Sex Occupation State Residence
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 4575-0311 08027996438 43 1 3 2 1
## 2 0351-2753 09082171899 53 0 2 4 2
## 3 0462-4993 07057256620 31 1 4 2 1
## 4 0693-7268 09010582345 35 0 4 2 1
## 5 0695-7737 09065763104 31 0 3 2 2
## 6 1155-2864 07034889524 34 0 3 4 1
## # ... with 5 more variables: `# of children < 5 in HH` <dbl>,
## # Education <dbl>, Ethnicity <dbl>, `Marital Status` <dbl>, `Bednet
## # Ownership` <dbl>
Bed Nets Report Data Wrangling using some Tidyverse verbs: left join, mutate, str_to_title, recode
sms_baseline_joined <- baseline %>%
left_join(sms_response, by = "Phone Number")
glimpse(sms_baseline_joined)
## Observations: 53
## Variables: 15
## $ `Study ID` <chr> "4575-0311", "0351-2753", "0462-4993...
## $ `Phone Number` <chr> "08027996438", "09082171899", "07057...
## $ Age <dbl> 43, 53, 31, 35, 31, 34, 46, 56, 22, ...
## $ Sex <dbl> 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, ...
## $ Occupation <dbl> 3, 2, 4, 4, 3, 3, 2, 3, 4, 5, 6, 5, ...
## $ State <dbl> 2, 4, 2, 2, 2, 4, 1, 0, 1, 2, 1, 3, ...
## $ Residence <dbl> 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, ...
## $ `# of children < 5 in HH` <dbl> 5, 3, 7, 3, 3, 6, 4, 3, 2, 3, 3, 3, ...
## $ Education <dbl> 0, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, ...
## $ Ethnicity <dbl> 1, 2, 2, 1, 2, 1, 1, 1, 2, 5, 1, 2, ...
## $ `Marital Status` <dbl> 5, 1, 5, 2, 1, 2, 3, 5, 4, 4, 2, 3, ...
## $ `Bednet Ownership` <dbl> 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, ...
## $ sms1_malaria <chr> "NO", "NO", "YES", "YES", "YES", "NO...
## $ sms2_bednets <chr> "YES", "YES", "NO", "YES", "NO", "NO...
## $ sms3_u5risk <chr> "YES", "YES", "NO", "YES", "NO", "NO...
Using the mutate and recode verb to clean the joined data
response <- sms_baseline_joined %>%
mutate(Sex = recode(Sex, `0` = "Male", `1` = "Female", .other = "Wrong Input")) %>%
mutate(Residence = recode(Residence, `1` = "Urban", `2` = "Kano", `3` = "Bauchi", `4` = "Kaduna", .other = "Wrong Input")) %>%
mutate(`Marital Status` = recode(`Marital Status`, `1` = "Yes", `2` = "No", .other = "Wrong Input")) %>%
mutate(Occupation = recode(Occupation, `1` = "Doctor", `2` = "Nurse", `3` = "Midwife", `4` = "Lab Technician", `5` = "Community Health Worker", `6` = "Other", .other = "Wrong Input")) %>%
mutate(State = recode(State, `1` = "Katsina", `2` = "Kano", `3` = "Bauchi", `4` = "Kaduna", .other = "Wrong Input"))
glimpse(response)
## Observations: 53
## Variables: 15
## $ `Study ID` <chr> "4575-0311", "0351-2753", "0462-4993...
## $ `Phone Number` <chr> "08027996438", "09082171899", "07057...
## $ Age <dbl> 43, 53, 31, 35, 31, 34, 46, 56, 22, ...
## $ Sex <chr> "Female", "Male", "Female", "Male", ...
## $ Occupation <chr> "Midwife", "Nurse", "Lab Technician"...
## $ State <chr> "Kano", "Kaduna", "Kano", "Kano", "K...
## $ Residence <chr> "Urban", "Kano", "Urban", "Urban", "...
## $ `# of children < 5 in HH` <dbl> 5, 3, 7, 3, 3, 6, 4, 3, 2, 3, 3, 3, ...
## $ Education <dbl> 0, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, ...
## $ Ethnicity <dbl> 1, 2, 2, 1, 2, 1, 1, 1, 2, 5, 1, 2, ...
## $ `Marital Status` <chr> NA, "Yes", NA, "No", "Yes", "No", NA...
## $ `Bednet Ownership` <dbl> 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, ...
## $ sms1_malaria <chr> "NO", "NO", "YES", "YES", "YES", "NO...
## $ sms2_bednets <chr> "YES", "YES", "NO", "YES", "NO", "NO...
## $ sms3_u5risk <chr> "YES", "YES", "NO", "YES", "NO", "NO...
response$sms3_u5risk <- str_to_title(response$sms3_u5risk)
response$sms1_malaria <- str_to_title(response$sms1_malaria)
response$sms2_bednets <- str_to_title(response$sms2_bednets)
Respondents’ Distribution by Gender
- Of the 53 respondents’ that replied the SMS questions, 31 were Male whereas 22 were female.
gender <- response %>%
count(Sex, sort = TRUE) %>%
as.data.frame(gender)
##Creating charts with highcharter
highchart() %>%
hc_add_series(gender, "pie", hcaes(name = Sex, y = n),
name = "Count") %>%
hc_title(text = "Respondent's Distribution by Gender",
margin = 20, align = "left", style = list(color = "darkblue", useHTML = TRUE))
## Warning: `parse_quosure()` is deprecated as of rlang 0.2.0.
## Please use `parse_quo()` instead.
## This warning is displayed once per session.
### Respondents’ Distribution by Age
- The average age of the respondents’ was about 45 years with standard deviation of about 49 years.
- 19 years and 339 years were the minimum and maximum respectively.
The distribution is as represented by the Histogram.
There’s an indication of an outlier in the respondents’ age as shown in the histogram.
hchart(response$Age, color = "black", name = "Age") %>%
hc_title(text = "Respondents' Distribution by Age",
margin = 20, align = "left",
style = list(color = "darkblue", useHTML = TRUE))
### Respondents’ Distribution by Occupation
- 14 of the respondents’ were Midwives, 10 were Nurses, 10 were Lab Technician, 8 were Doctors and 6 were Community Health Worker.
- 3 respondent’s occupation was not in the listed in the survey and 2 wrong inputs were observed as these does not match any of the occupation type code.
occupation <- response %>%
group_by(Occupation) %>%
count(Occupation) %>%
as.data.frame()
occupation[is.na(occupation$Occupation), "Occupation"] <- "Wrong Input"
hchart(occupation, "column", hcaes(x = Occupation, y = n), name = "Count",
colorByPoint = TRUE) %>%
hc_xAxis(title = list(text = "Occupation")) %>%
hc_yAxis(title = list(text = "Frequency")) %>%
hc_title(text = "Respondents' Distribution by Occupation",
margin = 20, align = "left",
style = list(color = "darkblue", useHTML = TRUE))
### Respondents’ Distribution by Marital Status
- Considering the marital status of the respondents’, 9 were married and 8 widowed. The bar chart represent the distribution of the respondents’ by marital status.
marital_status <- response %>%
group_by(`Marital Status`) %>%
count(`Marital Status`, sort = TRUE) %>%
as.data.frame()
hchart(marital_status, "column", hcaes(x = `Marital Status`, y = n), name = "Count",
colorByPoint = TRUE) %>%
hc_xAxis(title = list(text = "Marital Status")) %>%
hc_yAxis(title = list(text = "Frequency")) %>%
hc_title(text = "Respondents' Distribution by Occupation",
margin = 20, align = "left",
style = list(color = "darkblue", useHTML = TRUE))
Respondents’ Distribution by Bed Net Ownership
- Overall, about 80% of the respondents’ opined that they have bed net.
- However, about 79% (12) of the respondents’ from Kano opined that they have bed net.
- 35% (2) of the respondents’ from Kaduna opined they do not have bed net.
- The distribution of the respondents’ opinion on bed net ownership in relation to state is as represented by the bar chart.
bednet <- response %>%
count(`Bednet Ownership`, State, sort = TRUE) %>% as.data.frame()
bednet[is.na(bednet$State), "State"] <- "Wrong Input"
names(bednet) <- c("Response", "State", "Frequency")
hchart(bednet, "column", hcaes(x = State, y = Frequency, group = Response)) %>%
hc_xAxis(title = list(text = "State")) %>%
hc_yAxis(title = list(text = "Frequency")) %>%
hc_title(text = "Respondents' Distribution by Bed Net Ownership",
margin = 20, align = "left",
style = list(color = "darkblue", useHTML = TRUE))
### Respondents’ Distribution by Number of Children With Age Less Than 5
- On the average, there are about 3 (standard deviation of about 2) children with age less than 5 in the respondents’ household.
- Also 0 and 7 are the minimum and maximum number of children with age less than 5 in the respondents’ household.
- As illustrated in the histogram, there seems to be an outlier as the maximum age is expected to be less than 5.
hchart(response$`# of children < 5 in HH`, color = "black", name = "Age") %>%
hc_title(text = "Respondents' Distribution by Number of Children With Age Less Than 5",
margin = 20, align = "left",
style = list(color = "darkblue", useHTML = TRUE))
Analysis of Key Research Question 1
- Overall, more than 50% of the respondents’ opined that malaria is a problem in their community.
- About 65% of the respondents’ from Kano state opined yes to sms1_malaria i.e. Malaria is a problem in my community question.
- On the other hand, about 59% of the respondents’ from Katsina opined no to the same question.
sms1QuestionByState <- response %>%
count(sms1_malaria, State, sort = TRUE)
sms1QuestionByState_df = as.data.frame(sms1QuestionByState)
sms1QuestionByState_df
## sms1_malaria State n
## 1 Yes Kano 9
## 2 No Katsina 7
## 3 No Kano 5
## 4 Yes Katsina 5
## 5 <NA> Bauchi 5
## 6 Yes Kaduna 4
## 7 No Bauchi 3
## 8 No Kaduna 3
## 9 Yes Bauchi 3
## 10 <NA> Katsina 3
## 11 <NA> Kaduna 2
## 12 <NA> Kano 2
## 13 No <NA> 1
## 14 <NA> <NA> 1
names(sms1QuestionByState_df) <- c("Response", "State", "Frequency")
hchart(sms1QuestionByState_df, "column", hcaes(x = State, y = Frequency, group = Response)) %>%
hc_xAxis(title = list(text = "State")) %>%
hc_yAxis(title = list(text = "Frequency"))
Analysis of Key Research Question 2
- Overall, about 60% of the respondents’ opined that bed net cannot prevent malaria in their community.
- About 65% of the respondents’ from Kano state opined no to sms2_bednets i.e. In my community, bed nets can prevent malaria question.
- On the other hand, about 67% of the respondents’ from Bauchi opined yes to the same question.
sms2QuestionByState <- response %>%
count(sms2_bednets, State, sort = TRUE)
sms2QuestionByState_df = as.data.frame(sms2QuestionByState)
names(sms2QuestionByState_df) <- c("Response", "State", "Frequency")
hchart(sms2QuestionByState_df, "column", hcaes(x = State, y = Frequency, group = Response)) %>%
hc_xAxis(title = list(text = "State")) %>%
hc_yAxis(title = list(text = "Frequency"))
### Analysis of Key Research Question 3
- Overall about 68% of the respondents’ opined that children less than 5 years are not most at risk for malaria in their community.
- More than 70% of the respondents’ from Kano state opined no to sms3_u5risk i.e. Children < 5 are most at risk for malaria in my community question.
- However, about 42% of the respondents’ from Katsina opined yes to the same question.
sms3QuestionByState <- response %>%
count(sms3_u5risk, State, sort = TRUE)
sms3QuestionByState_df = as.data.frame(sms3QuestionByState)
names(sms3QuestionByState_df) <- c("Response", "State", "Frequency")
hchart(sms3QuestionByState_df, "column", hcaes(x = State, y = Frequency, group = Response)) %>%
hc_xAxis(title = list(text = "State")) %>%
hc_yAxis(title = list(text = "Frequeny"))
### Conclusion
- Going by the evidences gathered from the study, it could be concluded that malaria is still a problem in the study area (Bauchi, Kaduna, Kano and Katsina).
- On the other hand, bed nets cannot prevent malaria and children of age less than 5 are not the most risk to malaria. ```
blogdown::new_post(title = “Bed nets report”, ext = getOption(“blogdown.ext”, “.Rmd”))