Load libraries and source configuration

rm(list = ls())
library(here)
## here() starts at D:/Dr. Fahmida/ASHA Study/Data/asha-baseline
library(readr)
library(readxl)
library(haven)
library(labelled)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(broom)
library(ggplot2)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows

Read ASHA Baseline Data

census_data <- read_csv(here("data", "Screening_Database.csv"))
## Rows: 1071 Columns: 69
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (45): dataid, fra, union, vill, landmark, hh_name, group, respondent, b...
## dbl  (19): screening_id, b1, mobile, b7, b8, b10a, b10b, b11, b15, b16, c4, ...
## lgl   (2): b6_oth, b14oth
## dttm  (2): completed_time, started_time
## date  (1): date
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
demo_anthr_data <- read.csv(here("data", "Demographic_Health_Anthro_baseline.csv"))
module3 <- read.csv(here("data", "Module3_Economic_vulnerability_baseline.csv"))

Table 01: Number of Loan distribution by Study Group

module3$benifi <- factor(module3$benifi, levels = c(0, 1), labels = c("ASHA", "Shapno"))


loan_distribution <- module3 %>%
  group_by(benifi) %>%
  summarise(
    total_N = n(),
    n = sum(!is.na(sd03) & sd03>0),
    Percentage = round((n /total_N) * 100,1),  # Calculate percentage
    Mean = round(mean(sd03, na.rm = TRUE),1),
    Median = round(median(sd03, na.rm = TRUE),1),
    SD = round(sd(sd03, na.rm = TRUE),1),
    Min = min(sd03, na.rm = TRUE),
    Max = max(sd03, na.rm = TRUE),
    .groups = "drop"
  )
loan_distribution %>%
  kable("html", col.names = c("Study Group", "Total N", "Group n", "Percentage", 
                              "Mean", "Median", "SD", "Min", "Max")) %>%
  kable_styling(full_width = FALSE, position = "center")
Study Group Total N Group n Percentage Mean Median SD Min Max
ASHA 194 171 88.1 2 2.0 1.6 0 12
Shapno 120 106 88.3 2 1.5 2.2 0 19

Table 02: Loan status summarie by Study Group

tloan <- module3 %>% select(dataid, member_17above, sd03, sd04_10, sd04_11, sd04_12, sd04_13, sd04_14,
                            sd04_15, sd04_16, sd04_17, sd04_18, sd04_19, sd04_110, sd04_111,
                            sd04_112, sd04_113, sd04_114, sd04_115, sd04_116, sd04_117, sd04_118,
                            sd04_119, benifi)
tloan$sumloan <- rowSums(tloan[,c("sd04_10", "sd04_11", "sd04_12", "sd04_13", "sd04_14", "sd04_15", "sd04_16", "sd04_17", "sd04_18", "sd04_19", "sd04_110", "sd04_111", "sd04_112", "sd04_113", "sd04_114", "sd04_115","sd04_116", "sd04_117", "sd04_118", "sd04_119")], na.rm = T) 
loan_mean <- tloan %>% 
  filter(sd03>0) %>%
  group_by(benifi) %>% 
  summarise(N = n(),
            avegloan = mean(sumloan, na.rm = T),
            medianlo = median(sumloan, na.rm = T),
            sdtloan = sd(sumloan, na.rm = T),
            Min = min(sumloan, na.rm = TRUE),
            Max = max(sumloan, na.rm = TRUE),
            .groups = "drop")
kable(loan_mean, format = "html", col.names = c("Group", "N", "Avearage Loan", "Median", "Sd", "Min", "Max")) %>%
kable_styling(full_width = FALSE, position = "center")
Group N Avearage Loan Median Sd Min Max
ASHA 171 64862.94 50000 51155.47 1000 356913
Shapno 106 70194.34 50000 92477.71 2500 824000
ggplot(tloan, aes(x = sd03, fill = benifi)) +
    facet_wrap(~ benifi) +
    geom_histogram(alpha = 0.9, position = "identity", bins = 20) +
    scale_fill_manual(values = c("ASHA" = "blue", "Shapno" = "orange")) +
    labs(
          title = "Number loan distribution by Group", 
          x = "Number of Loan", 
          y = "Frequency",
          fill = "Group Label") +
  theme_minimal()

ggplot(tloan, aes(x = sd03)) +
    geom_histogram(bins = 20, fill = "skyblue", color = "black") +
#    facet_grid(benifi ~ .) +  # Arrange in rows by group
    labs(title = "Overall number of loan distribution", x = "Number of Loan", y = "Frequency") +
    theme_minimal()

# Table 03: Average Loan distribution by Family member and Study Group

tloan <- tloan %>%
  mutate(member_g = case_when(
    member_17above %in% c(1, 2) ~ 1,
    member_17above %in% c(3, 4) ~ 2,
    member_17above %in% c(5, 6) ~ 3,
    TRUE ~ NA_real_  # Default case for all other values
  ))

tloan$member_g <- factor(tloan$member_g, levels = c(1, 2, 3, 4), labels = c("Member 1-2", "Member 3-4", "Member 5-6", "Member 7-8"))

loan_mem <- tloan %>%
  filter(sd03>0) %>%
  group_by(benifi, member_g) %>% 
  summarise(N =n(),
            avegloan = mean(sumloan, na.rm = T),
            medianlo = median(sumloan, na.rm = T),
            .groups = "drop")

# Reshape the data to a wide format for side-by-side comparison
loan_mem_wide <- loan_mem %>%
  pivot_wider(
    names_from = benifi, 
    values_from = c(N, avegloan, medianlo),
    names_sep = "_"
  )

kable(loan_mem_wide, 
      format = "html", 
      col.names = c(
        "family_member", 
        "N (ASHA)", "N (Shapno)", "Avg Loan (ASHA)", "Avg Loan (Shapno)", "Median (ASHA)",  "Median (Shapno)"
      )
    ) %>%
kable_styling(full_width = FALSE, position = "center")
family_member N (ASHA) N (Shapno) Avg Loan (ASHA) Avg Loan (Shapno) Median (ASHA) Median (Shapno)
Member 1-2 110 66 64923.30 70160.61 50000 50000
Member 3-4 55 37 67236.36 71081.08 64000 50000
Member 5-6 6 3 42000.00 60000.00 40000 25000
ggplot(loan_mem, aes(x = member_g, y = avegloan, fill = benifi)) +
  geom_bar(stat = "identity", position = position_dodge(), color = "black") +
  labs(
    title = "Average Loan Amount by Adult Family member and Study Group",
    x = "Family Group (adult member 17+)",
    y = "Average Loan Amount",
    fill = "Study Group"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

ggplot(loan_mem, aes(x = member_g, y = medianlo, fill = benifi)) +
  geom_bar(stat = "identity", position = position_dodge(), color = "black") +
  labs(
    title = "Median Loan Amount by Family Group and Study Group",
    x = "Family Group (adult member 17+)",
    y = "Average Loan Amount",
    fill = "Study Group"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))