Advertisement
yayopoint

Tipo de Hogar y Pobreza Infantil

Sep 25th, 2023 (edited)
1,956
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 5.80 KB | Science | 0 0
  1. # Limpiar entorno de trabajo
  2. rm(list=objects())
  3.  
  4. ################################### Paquetes ###################################
  5. library(haven)
  6. library(flextable)
  7. library(paletteer)
  8. library(plotrix)
  9.  
  10. ################################# Directorios ##################################
  11. folder <- "~/Dropbox/Analisis/Uniparentalidad Femenina y Pobreza Infantil"
  12. dirdata <- file.path(folder, "data")
  13.  
  14. ############################# Carga Bases de Datos #############################
  15. setwd(dirdata)
  16. casen2022 <- read_sav("2022/Base de datos Casen 2022 SPSS.sav")
  17. setwd(folder)
  18.  
  19. # Consideramos solo datos utilizados para disminuír espacio usado en la memoria
  20. casen2022[,c("id_vivienda", "hogar", "expr", "sexo", "edad", "pco1", "tipohogar", "pobreza")] |>
  21.   zap_missing() |>
  22.   as_factor() -> casen2022
  23.  
  24.  
  25. # Filtramos sólo datos de la quinta region para disminuír espacio usado en la memoria
  26. #casen2022[casen2022$region==5,] |>
  27. #  zap_missing() |>
  28. #  as_factor() -> casen2022
  29.  
  30.  
  31. ################################ Recodificación ################################
  32. casen2022$idhogar <- with(casen2022, interaction(id_vivienda, hogar)) |>
  33.   as.numeric()
  34.  
  35. # Sexo jefatura de hogar
  36. sexojh <- rep(NA, nrow(casen2022))
  37. sexojh[with(casen2022, pco1 == "1. Jefatura de Hogar" & sexo == "1. Hombre")] <- 1
  38. sexojh[with(casen2022, pco1 == "1. Jefatura de Hogar" & sexo == "2. Mujer")] <- 2
  39. sexojh <- tapply(sexojh, casen2022$idhogar, sum, na.rm=TRUE)
  40. sexojh <- sexojh[as.character(casen2022$idhogar)]
  41. names(sexojh) <- NULL
  42. sexojh <- unlist(sexojh)
  43. attr(sexojh, "label") <- "Sexo Jefatura de Hogar"
  44. sexojh <- factor(sexojh, levels=1:2, labels=c("Masculina", "Femenina"))
  45. casen2022$sexojh <- sexojh
  46. rm(sexojh)
  47.  
  48. # Filtro para dejar sólo a los menores de 6 años:
  49. casen2022 <- casen2022[casen2022$edad <=6,]
  50.  
  51. ############################## Tablas y Gráficos ###############################
  52.  
  53. attach(casen2022)
  54.  
  55. mipal <- paletteer_d("ggsci::default_jama", 4)
  56.  
  57. ###                                              ###
  58. ### Tabla1: Pobreza infantil según tipo de hogar ###
  59. ###                                              ###
  60. tab1 <- xtabs(expr ~ tipohogar+pobreza, data=casen2022, drop.unused.levels = TRUE)
  61.  
  62. ftab1 <- proc_freq(casen2022, "tipohogar", "pobreza", T,F,F,"expr") |>
  63.   add_footer_lines("Situación de Pobreza en menores de 6 años según tipo de hogar. Fuente: Casen 2022")
  64.  
  65. ftab1
  66.  
  67. ptab1 <-  proportions(tab1, 1)*100
  68.  
  69. barplot(ptab1, beside=TRUE, col=mipal,
  70.         main="Porcentaje situación de pobreza en menores de 6 años\n
  71.        respecto del tipo de hogar",
  72.         sub="Fuente: Elaboración propia en base a datos de Casen 2022")
  73. legend("topleft",legend=rownames(ptab1), fill=mipal)
  74.  
  75. ###                                              ###
  76. ### Tabla2: Pobreza infantil según tipo de hogar ###
  77. ### En hogares con jefatura de hogar femenina    ###
  78. ###                                              ###
  79. tab2 <- xtabs(expr ~ tipohogar+pobreza, data=casen2022[sexojh == "Femenina",], drop.unused.levels = TRUE)
  80.  
  81. ftab2 <- proc_freq(casen2022[sexojh == "Femenina",], "tipohogar", "pobreza", T,F,F,"expr") |>
  82.   add_footer_lines("Situación de Pobreza en menores de 6 años según tipo de hogar,
  83.                   en hogares con jefatura de hogar femenina. Fuente: Casen 2022")
  84.  
  85. ftab2
  86.  
  87. ptab2 <-  proportions(tab2, 1)*100
  88.  
  89. barplot(ptab2, beside=TRUE, col=mipal,
  90.         main="Porcentaje situación de pobreza en menores de 6 años\n
  91.        respecto del tipo de hogar. Jefatura Hogar=Femenina",
  92.         sub="Fuente: Elaboración propia en base a datos de Casen 2022")
  93. legend("topleft",legend=rownames(ptab1), fill=mipal)
  94.  
  95. ###                                              ###
  96. ### Tabla2: Pobreza infantil según tipo de hogar ###
  97. ### En hogares con jefatura de hogar masculina   ###
  98. ###                                              ###
  99. tab3 <- xtabs(expr ~ tipohogar+pobreza, data=casen2022[edad <=6 & sexojh == "Masculina",], drop.unused.levels = TRUE)
  100.  
  101. ftab3 <- proc_freq(casen2022[edad <=6 & sexojh == "Masculina",], "tipohogar", "pobreza", T,F,F,"expr") |>
  102.   add_footer_lines("Situación de Pobreza en menores de 6 años según tipo de hogar,
  103.                   en hogares con jefatura de hogar masculina Fuente: Casen 2022")
  104.  
  105. ftab3
  106.  
  107. ptab3 <-  proportions(tab3, 1)*100
  108.  
  109. barplot(ptab3, beside=TRUE, col=mipal,
  110.         main="Porcentaje situación de pobreza en menores de 6 años\n
  111.        respecto del tipo de hogar. Jefatura Hogar=Masculina",
  112.         sub="Fuente: Elaboración propia en base a datos de Casen 2022")
  113. legend("topleft",legend=rownames(ptab1), fill=mipal)
  114.  
  115.  
  116. tab4 <- xtabs(expr ~ tipohogar+pobreza+sexojh, data=casen2022, drop.unused.levels = TRUE) |>
  117.   proportions(c(1,3)) |>
  118.   as.data.frame() |>
  119.   subset(pobreza != "No pobreza")
  120. tab4$pobreza <- droplevels(tab4$pobreza)
  121. tab4$Porcentaje <- tab4$Freq*100
  122.  
  123. op <- par(mar=c(5, 4, 4, 2) + 0.1)
  124. m <- matrix(c(1, 1:4, 4, 5, 5), ncol=2, byrow=TRUE)
  125. layout(m, heights=c(0.1,0.65,0.2,0.05))
  126. layout.show(5)
  127. par(mar=c(0,0,0,0))
  128. plot.new()
  129. text(0.5,0.5,
  130.      "Porcentaje situación de pobreza en menores de 6 años\n
  131.     respecto del tipo de hogar",
  132.      cex=1.5,font=2)
  133. par(mar=c(5, 4, 4, 2) + 0.5)
  134. for(sjh in levels(tab4$sexojh)) {
  135.   barplot(Porcentaje ~ tipohogar+pobreza,
  136.           data=tab4[tab4$sexojh==sjh,],
  137.           ylim=c(0,15),
  138.           main=paste("Jefatura de hogar:",sjh),
  139.           beside=TRUE,
  140.           col=mipal)
  141.   xtabs(Porcentaje~tipohogar+pobreza, data=tab4[tab4$sexojh==sjh,]) |>
  142.     round(1) -> p
  143.   boxed.labels(c(1:4,6:9)+.5, p+.7, paste0(p,"%"), cex=.5)
  144. }
  145. par(mar = c(0, 0, 0, 0))
  146. plot.new()
  147. legend("center",legend=levels(tab4$tipohogar), fill=mipal, inset=0, ncol=2)
  148. par(mar = c(0, 0, 0, 0))
  149. plot.new()
  150. text(0.5,0.5,
  151.      "Fuente: Elaboración propia en base a datos de CASEN 2022",
  152.      cex=1,font=1)
  153. par(op)
  154.  
  155. detach(casen2022)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement