Chapter 2 Descriptive Analysis
2.1 Table 1
dd2 <- d2 %>%
  st_set_geometry(NULL) %>%
  mutate(id = seq(1:n()),
         time = 0,
         work_out = factor(ifelse(as.numeric(main_act_ec)>0 & as.numeric(main_act_ec)<7, "outside", "inside")),
         main_act_ec = as.factor(main_act_ec),
         edad = as.numeric(edad)) %>%
  #filter(complete.cases(.)) %>%
  as.data.frame()
t1 <- dd2 %>%
  dplyr::select(area, comm, edad, age_cat, nm_sex, nm_level_study, main_act_ec,work_out, 
                viaje_ult_mes,TREATMENT,
                resultado_micro, especie_micro, fever,temp_axilar,hist_fever,SEROPOSITIVE)
library(table1)
table1(~. | SEROPOSITIVE, data = t1)| Negative (N=917)  | 
Positive (N=873)  | 
Overall (N=1790)  | 
|
|---|---|---|---|
| area | |||
| 0_periurban | 481 (52.5%) | 304 (34.8%) | 785 (43.9%) | 
| 1_rural | 436 (47.5%) | 569 (65.2%) | 1005 (56.1%) | 
| comm | |||
| 501 | 165 (18.0%) | 85 (9.7%) | 250 (14.0%) | 
| 502 | 132 (14.4%) | 141 (16.2%) | 273 (15.3%) | 
| 503 | 184 (20.1%) | 78 (8.9%) | 262 (14.6%) | 
| 901 | 6 (0.7%) | 41 (4.7%) | 47 (2.6%) | 
| 902 | 45 (4.9%) | 134 (15.3%) | 179 (10.0%) | 
| 903 | 18 (2.0%) | 40 (4.6%) | 58 (3.2%) | 
| 904 | 144 (15.7%) | 126 (14.4%) | 270 (15.1%) | 
| 905 | 67 (7.3%) | 30 (3.4%) | 97 (5.4%) | 
| 906 | 84 (9.2%) | 82 (9.4%) | 166 (9.3%) | 
| 907 | 72 (7.9%) | 116 (13.3%) | 188 (10.5%) | 
| edad | |||
| Mean (SD) | 20.6 (18.8) | 37.8 (21.8) | 29.0 (22.0) | 
| Median [Min, Max] | 13.0 [0, 117] | 37.0 [1.00, 92.0] | 24.0 [0, 117] | 
| age_cat | |||
| (-Inf,5] | 147 (16.0%) | 31 (3.6%) | 178 (9.9%) | 
| (5,15] | 405 (44.2%) | 163 (18.7%) | 568 (31.7%) | 
| (15,30] | 148 (16.1%) | 151 (17.3%) | 299 (16.7%) | 
| (30,50] | 126 (13.7%) | 262 (30.0%) | 388 (21.7%) | 
| (50, Inf] | 91 (9.9%) | 266 (30.5%) | 357 (19.9%) | 
| nm_sex | |||
| 0_female | 536 (58.5%) | 437 (50.1%) | 973 (54.4%) | 
| 1_male | 381 (41.5%) | 436 (49.9%) | 817 (45.6%) | 
| nm_level_study | |||
| 1 | 67 (7.3%) | 69 (7.9%) | 136 (7.6%) | 
| 2 | 88 (9.6%) | 16 (1.8%) | 104 (5.8%) | 
| 3 | 323 (35.2%) | 304 (34.8%) | 627 (35.0%) | 
| 4 | 90 (9.8%) | 205 (23.5%) | 295 (16.5%) | 
| 5 | 167 (18.2%) | 149 (17.1%) | 316 (17.7%) | 
| 6 | 77 (8.4%) | 60 (6.9%) | 137 (7.7%) | 
| 7 | 12 (1.3%) | 4 (0.5%) | 16 (0.9%) | 
| 8 | 12 (1.3%) | 9 (1.0%) | 21 (1.2%) | 
| 9 | 7 (0.8%) | 1 (0.1%) | 8 (0.4%) | 
| 10 | 9 (1.0%) | 6 (0.7%) | 15 (0.8%) | 
| 11 | 0 (0%) | 1 (0.1%) | 1 (0.1%) | 
| 9999 | 65 (7.1%) | 49 (5.6%) | 114 (6.4%) | 
| main_act_ec | |||
| 0 | 90 (9.8%) | 55 (6.3%) | 145 (8.1%) | 
| 1 | 22 (2.4%) | 24 (2.7%) | 46 (2.6%) | 
| 2 | 0 (0%) | 2 (0.2%) | 2 (0.1%) | 
| 3 | 5 (0.5%) | 16 (1.8%) | 21 (1.2%) | 
| 4 | 0 (0%) | 1 (0.1%) | 1 (0.1%) | 
| 5 | 71 (7.7%) | 340 (38.9%) | 411 (23.0%) | 
| 6 | 21 (2.3%) | 10 (1.1%) | 31 (1.7%) | 
| 7 | 152 (16.6%) | 163 (18.7%) | 315 (17.6%) | 
| 8 | 453 (49.4%) | 177 (20.3%) | 630 (35.2%) | 
| 9 | 9 (1.0%) | 8 (0.9%) | 17 (0.9%) | 
| 10 | 51 (5.6%) | 42 (4.8%) | 93 (5.2%) | 
| 11 | 31 (3.4%) | 26 (3.0%) | 57 (3.2%) | 
| 88 | 12 (1.3%) | 9 (1.0%) | 21 (1.2%) | 
| work_out | |||
| inside | 798 (87.0%) | 480 (55.0%) | 1278 (71.4%) | 
| outside | 119 (13.0%) | 393 (45.0%) | 512 (28.6%) | 
| viaje_ult_mes | |||
| 0 | 794 (86.6%) | 642 (73.5%) | 1436 (80.2%) | 
| 1 | 120 (13.1%) | 229 (26.2%) | 349 (19.5%) | 
| 9999 | 3 (0.3%) | 2 (0.2%) | 5 (0.3%) | 
| TREATMENT | |||
| No treatment | 917 (100%) | 0 (0%) | 917 (51.2%) | 
| Treatment | 0 (0%) | 873 (100%) | 873 (48.8%) | 
| resultado_micro | |||
| 0 | 894 (97.5%) | 835 (95.6%) | 1729 (96.6%) | 
| 1 | 12 (1.3%) | 26 (3.0%) | 38 (2.1%) | 
| Missing | 11 (1.2%) | 12 (1.4%) | 23 (1.3%) | 
| especie_micro | |||
| 0 | 472 (51.5%) | 296 (33.9%) | 768 (42.9%) | 
| 1 | 4 (0.4%) | 4 (0.5%) | 8 (0.4%) | 
| 2 | 6 (0.7%) | 21 (2.4%) | 27 (1.5%) | 
| Missing | 435 (47.4%) | 552 (63.2%) | 987 (55.1%) | 
| fever | |||
| 0 | 900 (98.1%) | 864 (99.0%) | 1764 (98.5%) | 
| 1 | 17 (1.9%) | 9 (1.0%) | 26 (1.5%) | 
| temp_axilar | |||
| Mean (SD) | 36.2 (0.490) | 36.2 (0.471) | 36.2 (0.481) | 
| Median [Min, Max] | 36.1 [35.5, 39.3] | 36.1 [35.5, 39.3] | 36.1 [35.5, 39.3] | 
| hist_fever | |||
| Mean (SD) | 0.105 (0.306) | 0.140 (0.347) | 0.122 (0.327) | 
| Median [Min, Max] | 0 [0, 1.00] | 0 [0, 1.00] | 0 [0, 1.00] | 
| SEROPOSITIVE | |||
| Negative | 917 (100%) | 0 (0%) | 917 (51.2%) | 
| Positive | 0 (0%) | 873 (100%) | 873 (48.8%) | 
| 0_periurban (N=785)  | 
1_rural (N=1005)  | 
Overall (N=1790)  | 
|
|---|---|---|---|
| area | |||
| 0_periurban | 785 (100%) | 0 (0%) | 785 (43.9%) | 
| 1_rural | 0 (0%) | 1005 (100%) | 1005 (56.1%) | 
| comm | |||
| 501 | 250 (31.8%) | 0 (0%) | 250 (14.0%) | 
| 502 | 273 (34.8%) | 0 (0%) | 273 (15.3%) | 
| 503 | 262 (33.4%) | 0 (0%) | 262 (14.6%) | 
| 901 | 0 (0%) | 47 (4.7%) | 47 (2.6%) | 
| 902 | 0 (0%) | 179 (17.8%) | 179 (10.0%) | 
| 903 | 0 (0%) | 58 (5.8%) | 58 (3.2%) | 
| 904 | 0 (0%) | 270 (26.9%) | 270 (15.1%) | 
| 905 | 0 (0%) | 97 (9.7%) | 97 (5.4%) | 
| 906 | 0 (0%) | 166 (16.5%) | 166 (9.3%) | 
| 907 | 0 (0%) | 188 (18.7%) | 188 (10.5%) | 
| edad | |||
| Mean (SD) | 30.6 (21.8) | 27.7 (22.2) | 29.0 (22.0) | 
| Median [Min, Max] | 26.0 [0, 117] | 20.0 [0, 87.0] | 24.0 [0, 117] | 
| age_cat | |||
| (-Inf,5] | 52 (6.6%) | 126 (12.5%) | 178 (9.9%) | 
| (5,15] | 227 (28.9%) | 341 (33.9%) | 568 (31.7%) | 
| (15,30] | 169 (21.5%) | 130 (12.9%) | 299 (16.7%) | 
| (30,50] | 176 (22.4%) | 212 (21.1%) | 388 (21.7%) | 
| (50, Inf] | 161 (20.5%) | 196 (19.5%) | 357 (19.9%) | 
| nm_sex | |||
| 0_female | 461 (58.7%) | 512 (50.9%) | 973 (54.4%) | 
| 1_male | 324 (41.3%) | 493 (49.1%) | 817 (45.6%) | 
| nm_level_study | |||
| 1 | 24 (3.1%) | 112 (11.1%) | 136 (7.6%) | 
| 2 | 32 (4.1%) | 72 (7.2%) | 104 (5.8%) | 
| 3 | 260 (33.1%) | 367 (36.5%) | 627 (35.0%) | 
| 4 | 108 (13.8%) | 187 (18.6%) | 295 (16.5%) | 
| 5 | 199 (25.4%) | 117 (11.6%) | 316 (17.7%) | 
| 6 | 111 (14.1%) | 26 (2.6%) | 137 (7.7%) | 
| 7 | 15 (1.9%) | 1 (0.1%) | 16 (0.9%) | 
| 8 | 19 (2.4%) | 2 (0.2%) | 21 (1.2%) | 
| 9 | 7 (0.9%) | 1 (0.1%) | 8 (0.4%) | 
| 10 | 4 (0.5%) | 11 (1.1%) | 15 (0.8%) | 
| 11 | 1 (0.1%) | 0 (0%) | 1 (0.1%) | 
| 9999 | 5 (0.6%) | 109 (10.8%) | 114 (6.4%) | 
| main_act_ec | |||
| 0 | 0 (0%) | 145 (14.4%) | 145 (8.1%) | 
| 1 | 45 (5.7%) | 1 (0.1%) | 46 (2.6%) | 
| 2 | 1 (0.1%) | 1 (0.1%) | 2 (0.1%) | 
| 3 | 5 (0.6%) | 16 (1.6%) | 21 (1.2%) | 
| 4 | 0 (0%) | 1 (0.1%) | 1 (0.1%) | 
| 5 | 20 (2.5%) | 391 (38.9%) | 411 (23.0%) | 
| 6 | 26 (3.3%) | 5 (0.5%) | 31 (1.7%) | 
| 7 | 247 (31.5%) | 68 (6.8%) | 315 (17.6%) | 
| 8 | 274 (34.9%) | 356 (35.4%) | 630 (35.2%) | 
| 9 | 17 (2.2%) | 0 (0%) | 17 (0.9%) | 
| 10 | 93 (11.8%) | 0 (0%) | 93 (5.2%) | 
| 11 | 57 (7.3%) | 0 (0%) | 57 (3.2%) | 
| 88 | 0 (0%) | 21 (2.1%) | 21 (1.2%) | 
| work_out | |||
| inside | 688 (87.6%) | 590 (58.7%) | 1278 (71.4%) | 
| outside | 97 (12.4%) | 415 (41.3%) | 512 (28.6%) | 
| viaje_ult_mes | |||
| 0 | 768 (97.8%) | 668 (66.5%) | 1436 (80.2%) | 
| 1 | 17 (2.2%) | 332 (33.0%) | 349 (19.5%) | 
| 9999 | 0 (0%) | 5 (0.5%) | 5 (0.3%) | 
| TREATMENT | |||
| No treatment | 481 (61.3%) | 436 (43.4%) | 917 (51.2%) | 
| Treatment | 304 (38.7%) | 569 (56.6%) | 873 (48.8%) | 
| resultado_micro | |||
| 0 | 742 (94.5%) | 987 (98.2%) | 1729 (96.6%) | 
| 1 | 20 (2.5%) | 18 (1.8%) | 38 (2.1%) | 
| Missing | 23 (2.9%) | 0 (0%) | 23 (1.3%) | 
| especie_micro | |||
| 0 | 768 (97.8%) | 0 (0%) | 768 (42.9%) | 
| 1 | 3 (0.4%) | 5 (0.5%) | 8 (0.4%) | 
| 2 | 14 (1.8%) | 13 (1.3%) | 27 (1.5%) | 
| Missing | 0 (0%) | 987 (98.2%) | 987 (55.1%) | 
| fever | |||
| 0 | 771 (98.2%) | 993 (98.8%) | 1764 (98.5%) | 
| 1 | 14 (1.8%) | 12 (1.2%) | 26 (1.5%) | 
| temp_axilar | |||
| Mean (SD) | 36.2 (0.467) | 36.1 (0.487) | 36.2 (0.481) | 
| Median [Min, Max] | 36.3 [35.5, 39.3] | 36.0 [35.5, 39.2] | 36.1 [35.5, 39.3] | 
| hist_fever | |||
| Mean (SD) | 0.0841 (0.278) | 0.151 (0.358) | 0.122 (0.327) | 
| Median [Min, Max] | 0 [0, 1.00] | 0 [0, 1.00] | 0 [0, 1.00] | 
| SEROPOSITIVE | |||
| Negative | 481 (61.3%) | 436 (43.4%) | 917 (51.2%) | 
| Positive | 304 (38.7%) | 569 (56.6%) | 873 (48.8%) | 
library(tableone)
CreateTableOne(vars = names(t1)[1:12], strata = "SEROPOSITIVE", data = t1, 
               factorVars = names(t1)[c(1:2,4:10,12)])##                            Stratified by SEROPOSITIVE
##                             Negative      Positive       p      test
##   n                           917           873                     
##   area = 1_rural (%)          436 (47.5)    569 ( 65.2)  <0.001     
##   comm (%)                                               <0.001     
##      501                      165 (18.0)     85 (  9.7)             
##      502                      132 (14.4)    141 ( 16.2)             
##      503                      184 (20.1)     78 (  8.9)             
##      901                        6 ( 0.7)     41 (  4.7)             
##      902                       45 ( 4.9)    134 ( 15.3)             
##      903                       18 ( 2.0)     40 (  4.6)             
##      904                      144 (15.7)    126 ( 14.4)             
##      905                       67 ( 7.3)     30 (  3.4)             
##      906                       84 ( 9.2)     82 (  9.4)             
##      907                       72 ( 7.9)    116 ( 13.3)             
##   edad (mean (SD))          20.64 (18.82) 37.76 (21.78)  <0.001     
##   age_cat (%)                                            <0.001     
##      (-Inf,5]                 147 (16.0)     31 (  3.6)             
##      (5,15]                   405 (44.2)    163 ( 18.7)             
##      (15,30]                  148 (16.1)    151 ( 17.3)             
##      (30,50]                  126 (13.7)    262 ( 30.0)             
##      (50, Inf]                 91 ( 9.9)    266 ( 30.5)             
##   nm_sex = 1_male (%)         381 (41.5)    436 ( 49.9)  <0.001     
##   nm_level_study (%)                                     <0.001     
##      1                         67 ( 7.3)     69 (  7.9)             
##      2                         88 ( 9.6)     16 (  1.8)             
##      3                        323 (35.2)    304 ( 34.8)             
##      4                         90 ( 9.8)    205 ( 23.5)             
##      5                        167 (18.2)    149 ( 17.1)             
##      6                         77 ( 8.4)     60 (  6.9)             
##      7                         12 ( 1.3)      4 (  0.5)             
##      8                         12 ( 1.3)      9 (  1.0)             
##      9                          7 ( 0.8)      1 (  0.1)             
##      10                         9 ( 1.0)      6 (  0.7)             
##      11                         0 ( 0.0)      1 (  0.1)             
##      9999                      65 ( 7.1)     49 (  5.6)             
##   main_act_ec (%)                                        <0.001     
##      0                         90 ( 9.8)     55 (  6.3)             
##      1                         22 ( 2.4)     24 (  2.7)             
##      2                          0 ( 0.0)      2 (  0.2)             
##      3                          5 ( 0.5)     16 (  1.8)             
##      4                          0 ( 0.0)      1 (  0.1)             
##      5                         71 ( 7.7)    340 ( 38.9)             
##      6                         21 ( 2.3)     10 (  1.1)             
##      7                        152 (16.6)    163 ( 18.7)             
##      8                        453 (49.4)    177 ( 20.3)             
##      9                          9 ( 1.0)      8 (  0.9)             
##      10                        51 ( 5.6)     42 (  4.8)             
##      11                        31 ( 3.4)     26 (  3.0)             
##      88                        12 ( 1.3)      9 (  1.0)             
##   work_out = outside (%)      119 (13.0)    393 ( 45.0)  <0.001     
##   viaje_ult_mes (%)                                      <0.001     
##      0                        794 (86.6)    642 ( 73.5)             
##      1                        120 (13.1)    229 ( 26.2)             
##      9999                       3 ( 0.3)      2 (  0.2)             
##   TREATMENT = Treatment (%)     0 ( 0.0)    873 (100.0)  <0.001     
##   resultado_micro = 1 (%)      12 ( 1.3)     26 (  3.0)   0.022     
##   especie_micro (%)                                      <0.001     
##      0                        472 (97.9)    296 ( 92.2)             
##      1                          4 ( 0.8)      4 (  1.2)             
##      2                          6 ( 1.2)     21 (  6.5)
2.2 Proportions
library(tidyverse)
library(viridis)
library(colorspace)
t1 %>%
  mutate(mm = ifelse(resultado_micro==1, "micro+", "micro-"),
         ss = ifelse(SEROPOSITIVE=="Positive", "sero+", "sero-"),
         out = paste0(mm, " | ",ss)) %>%
  filter(!is.na(resultado_micro)) %>%
  ggplot(aes(x = age_cat, fill = out)) +
  geom_bar(position = "fill") +
  scale_fill_discrete_sequential(palette="ag_Sunset") +
  labs(y = "proportion", x = "Age category", fill = "Outcome") +
  theme_bw() +
  facet_grid(~nm_sex)
t1 %>%
  mutate(mm = ifelse(resultado_micro==1, "micro+", "micro-"),
         ss = ifelse(SEROPOSITIVE=="Positive", "sero+", "sero-"),
         out = paste0(mm, " | ",ss)) %>%
  filter(!is.na(resultado_micro)) %>%
  ggplot(aes(x = age_cat, fill = out)) +
  geom_bar(position = "fill") +
  scale_fill_discrete_sequential(palette="ag_Sunset") +
  labs(y = "proportion", x = "Age category", fill = "Outcome") +
  theme_bw() +
  facet_grid(~area)
2.3 Maps
library(leaflet)
dat_ci_map <- d2 %>%
  group_by(id_house) %>%
  summarise(p = mean(sero, na.rm = T), area = first(area), age = mean(edad, na.rm = T)) %>%
  filter(!is.na(p)) %>%
  filter(!is.infinite(p)) %>%
  dplyr::mutate(lat = sf::st_coordinates(.)[,2],
                long = sf::st_coordinates(.)[,1])
pal <- colorBin("inferno", bins = seq(0,1,.1), reverse=T) 
dat_ci_map %>%
  leaflet() %>%
  addTiles() %>%
  addCircles(lng = ~long, lat = ~lat, color = ~ pal(p),
             popup = paste("ID Household", dat_ci_map$id_house, "<br>",
                           "Area:", dat_ci_map$area, "<br>",
                           "Mean age:", dat_ci_map$age, "<br>",
                           "Prevalence:", dat_ci_map$p)) %>%
  addLegend("bottomright",
            pal = pal, values = ~p,
            title = "Prevalence") %>%
  addScaleBar(position = c("bottomleft"))