library(haven)Warning: package 'haven' was built under R version 4.4.3
data <- read_dta("Data1_R.dta")
View(data)setwd(“C:/Users/LENOVO/Desktop/25 mayo”)
install.packages(“MASS”) # Para modelo probit install.packages(“car”) # Para pruebas estadísticas install.packages(“margins”) # Para calcular efectos marginales install.packages(“pROC”) # Para curva ROC install.packages(“ggplot2”) # Para visualización install.packages(“caret”) # Para matriz de confusión install.packages(“ggplot”) # Para visualización
Leer los datos (ajustar la ruta del archivo)
library(haven)Warning: package 'haven' was built under R version 4.4.3
data <- read_dta("Data1_R.dta")
View(data)Ver las primeras filas de la base de datos
head(data)# A tibble: 6 × 50
area empleo region edad t_hijos nac_vivo_murieron mortinato_2
<dbl+lbl> <dbl+lbl> <dbl+l> <dbl> <dbl> <dbl+lbl> <dbl+lbl>
1 1 [Urbano] 1 [Trabajó al … 1 [Sie… 19 1 0 [No] 0 [No]
2 1 [Urbano] 0 [No trabajó] 1 [Sie… 23 1 0 [No] 0 [No]
3 1 [Urbano] 1 [Trabajó al … 1 [Sie… 38 5 0 [No] 0 [No]
4 1 [Urbano] 0 [No trabajó] 1 [Sie… 18 1 0 [No] 0 [No]
5 1 [Urbano] 0 [No trabajó] 1 [Sie… 21 1 0 [No] 0 [No]
6 1 [Urbano] 1 [Trabajó al … 1 [Sie… 22 1 0 [No] 0 [No]
# ℹ 43 more variables: depresion_pp <dbl+lbl>, intensidad_dpp <dbl+lbl>,
# etnia <dbl+lbl>, f2_s2_216_1 <dbl+lbl>, f2_s2_216_2 <dbl>,
# f2_s2_218_1_a <dbl+lbl>, tiempo_dpp <dbl+lbl>, f2_s5_504a_1 <dbl+lbl>,
# f2_s5_504b_1 <dbl+lbl>, f2_s5_504c_1 <dbl+lbl>, f2_s5_504d_1 <dbl+lbl>,
# f2_s5_504e_1 <dbl+lbl>, f2_s5_504f_1 <dbl+lbl>, f2_s5_504g_1 <dbl+lbl>,
# f2_s5_504h_1 <dbl+lbl>, f2_s5_504i_1 <dbl+lbl>, f2_s5_504j_1 <dbl+lbl>,
# f2_s5_504k_1 <dbl+lbl>, est_civil <dbl+lbl>, q_usted <dbl+lbl>, …
Revisar estructura de los datos
results='hide'
str(data)tibble [16,451 × 50] (S3: tbl_df/tbl/data.frame)
$ area : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "Área"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Rural" "Urbano"
$ empleo : dbl+lbl [1:16451] 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1...
..@ label : chr "1. ¿Qué hizo (…) la semana pasada:"
..@ format.stata: chr "%26.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No trabajó" "Trabajó al menos una hora"
$ region : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "Región"
..@ format.stata: chr "%9.0g"
..@ labels : Named num [1:4] 1 2 3 4
.. ..- attr(*, "names")= chr [1:4] "Sierra" "Costa" "Amazonía" "Insular"
$ edad : num [1:16451] 19 23 38 18 21 22 40 31 19 34 ...
..- attr(*, "label")= chr "101. Entonces, ¿Cuántos años cumplidos tiene?"
..- attr(*, "format.stata")= chr "%8.0g"
$ t_hijos : num [1:16451] 1 1 5 1 1 1 3 2 1 2 ...
..- attr(*, "label")= chr "208.c Total hijos/as en casa"
..- attr(*, "format.stata")= chr "%8.0g"
$ nac_vivo_murieron: dbl+lbl [1:16451] 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
..@ label : chr " 210. ¿Tuvo usted hijos o hijas que nacieron vivos/as y que murieron"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ mortinato_2 : dbl+lbl [1:16451] 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0...
..@ label : chr "212.1 De todos los embarazos que usted ha tenido en su vida"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ depresion_pp : dbl+lbl [1:16451] 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0...
..@ label : chr "219. ¿Después de alguno de sus partos, sintió tristeza?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ intensidad_dpp : dbl+lbl [1:16451] 1, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 1, 0, 0, 0, 0, 0...
..@ label : chr "Intensidad DPP"
..@ format.stata: chr "%12.0g"
..@ labels : Named num [1:3] 0 1 2
.. ..- attr(*, "names")= chr [1:3] "No tiene dpp" "Poca dpp" "Mucha dpp"
$ etnia : dbl+lbl [1:16451] 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0...
..@ label : chr "9.1 ¿Cómo se Identifica (…) según su cultura y costumbres:"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Otra" "Indigena"
$ f2_s2_216_1 : dbl+lbl [1:16451] 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2...
..@ label : chr "216.1 Hay mujeres que pierden sus embarazos antes de cumplir el quinto mes"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 1 2
.. ..- attr(*, "names")= chr [1:2] "si" "no"
$ f2_s2_216_2 : num [1:16451] NA NA NA NA NA NA NA NA NA NA ...
..- attr(*, "label")= chr "216.2 ¿Cuántos?"
..- attr(*, "format.stata")= chr "%8.0g"
$ f2_s2_218_1_a : dbl+lbl [1:16451] 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2...
..@ label : chr "218.a ¿Hombre o mujer?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 1 2
.. ..- attr(*, "names")= chr [1:2] "hombre" "mujer"
$ tiempo_dpp : dbl+lbl [1:16451] 1, 1, 0, 0, 0, 0, 3, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0...
..@ label : chr "221. ¿Durante cuánto tiempo se sintió triste?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:5] 1 2 3 4 88
.. ..- attr(*, "names")= chr [1:5] "menos de 3 meses" "3 meses" "6 meses" "1año o más" ...
$ f2_s5_504a_1 : dbl+lbl [1:16451] 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.a El trato que recibió del personal de salud que le atendió?PN"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504b_1 : dbl+lbl [1:16451] 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.b La experiencia/conocimiento de la persona que le atendió?PN"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504c_1 : dbl+lbl [1:16451] 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.c La disponibilidad del médico, enfermera u otro personal"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504d_1 : dbl+lbl [1:16451] 3, 3, 1, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.d La privacidad durante su atención? - PNoC"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504e_1 : dbl+lbl [1:16451] 2, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.e La comodidad del establecimiento? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504f_1 : dbl+lbl [1:16451] 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.f El tiempo que tardaron en atenderla? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504g_1 : dbl+lbl [1:16451] 1, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.g El horario de atención? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504h_1 : dbl+lbl [1:16451] 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.h La limpieza/aseo del establecimiento? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504i_1 : dbl+lbl [1:16451] 2, 3, 1, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.i La ropa/vestimenta utilizada en el parto? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504j_1 : dbl+lbl [1:16451] 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.j La información que le dio el personal de salud sobre su salud"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504k_1 : dbl+lbl [1:16451] 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.k El respeto a su cultura y costumbres relacionadas con el parto? - Parto n"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ est_civil : dbl+lbl [1:16451] 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1...
..@ label : chr "900. ¿Actualmente usted esta:"
..@ format.stata: chr "%12.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "En otro caso" "Casada"
$ q_usted : dbl+lbl [1:16451] 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1...
..@ label : chr "403. En la época en la que quedó embarazada de (…), quería Usted:"
..@ format.stata: chr "%17.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No tener ese hijo" "Tener ese hijo"
$ q_pareja : dbl+lbl [1:16451] 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1...
..@ label : chr "405. ¿Quería su pareja:"
..@ format.stata: chr "%17.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No tener ese hijo" "Tener ese hijo"
$ f2_s4b_406_ : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "406. ¿Tuvo algún control prenatal cuando estaba embarazada de (...)?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 1 2
.. ..- attr(*, "names")= chr [1:2] "si" "no"
$ lugar : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0...
..@ label : chr "423.a ¿En que lugar tuvo el parto de (..).?"
..@ format.stata: chr "%32.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Establecimiento privado" "Establecimiento de salud del msp"
$ form_parto : dbl+lbl [1:16451] 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0...
..@ label : chr "425. El parto de (...) fue:"
..@ format.stata: chr "%15.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Cesárea" "Normal"
$ c_posparto : dbl+lbl [1:16451] 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "440. ¿Tuvo usted algún control después del parto de (...)?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ anios_esc : num [1:16451] 14 10 6 8 16 9 10 13 14 6 ...
..- attr(*, "label")= chr "Años escolaridad"
..- attr(*, "format.stata")= chr "%9.0g"
$ ingrl : num [1:16451] 0 0 240 0 0 0 0 60 0 0 ...
..- attr(*, "label")= chr "Ingreso laboral"
..- attr(*, "format.stata")= chr "%9.0g"
$ planf : dbl+lbl [1:16451] 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1...
..@ label : chr "Planificación familiar"
..@ format.stata: chr "%13.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No planifico" "Si planificó"
$ lingrl : num [1:16451] 0 0 5.48 0 0 ...
..- attr(*, "label")= chr "Logaritmo ingreso laboral"
..- attr(*, "format.stata")= chr "%9.0g"
$ lugarx1 : num [1:16451] 0 0 0 0 0 0 0 1 0 0 ...
..- attr(*, "label")= chr "lugar==Establecimiento privado"
..- attr(*, "format.stata")= chr "%8.0g"
$ lugarx2 : num [1:16451] 1 1 1 1 1 1 1 0 1 1 ...
..- attr(*, "label")= chr "lugar==Establecimiento de salud del msp"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx1 : num [1:16451] 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "label")= chr "region==Sierra"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx2 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "region==Costa"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx3 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "region==Amazonía"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx4 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "region==Insular"
..- attr(*, "format.stata")= chr "%8.0g"
$ intensidad_dppx1 : num [1:16451] 0 0 1 1 1 1 0 1 1 0 ...
..- attr(*, "label")= chr "intensidad_dpp==No tiene dpp"
..- attr(*, "format.stata")= chr "%8.0g"
$ intensidad_dppx2 : num [1:16451] 1 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "intensidad_dpp==Poca dpp"
..- attr(*, "format.stata")= chr "%8.0g"
$ intensidad_dppx3 : num [1:16451] 0 1 0 0 0 0 1 0 0 1 ...
..- attr(*, "label")= chr "intensidad_dpp==Mucha dpp"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx1 : num [1:16451] 0 0 1 1 1 1 0 1 1 0 ...
..- attr(*, "label")= chr "tiempo_dpp== 0.0000"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx2 : num [1:16451] 1 1 0 0 0 0 0 0 0 1 ...
..- attr(*, "label")= chr "tiempo_dpp==menos de 3 meses"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx3 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "tiempo_dpp==3 meses"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx4 : num [1:16451] 0 0 0 0 0 0 1 0 0 0 ...
..- attr(*, "label")= chr "tiempo_dpp==6 meses"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx5 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "tiempo_dpp==1año o más"
..- attr(*, "format.stata")= chr "%8.0g"
str(data)tibble [16,451 × 50] (S3: tbl_df/tbl/data.frame)
$ area : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "Área"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Rural" "Urbano"
$ empleo : dbl+lbl [1:16451] 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1...
..@ label : chr "1. ¿Qué hizo (…) la semana pasada:"
..@ format.stata: chr "%26.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No trabajó" "Trabajó al menos una hora"
$ region : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "Región"
..@ format.stata: chr "%9.0g"
..@ labels : Named num [1:4] 1 2 3 4
.. ..- attr(*, "names")= chr [1:4] "Sierra" "Costa" "Amazonía" "Insular"
$ edad : num [1:16451] 19 23 38 18 21 22 40 31 19 34 ...
..- attr(*, "label")= chr "101. Entonces, ¿Cuántos años cumplidos tiene?"
..- attr(*, "format.stata")= chr "%8.0g"
$ t_hijos : num [1:16451] 1 1 5 1 1 1 3 2 1 2 ...
..- attr(*, "label")= chr "208.c Total hijos/as en casa"
..- attr(*, "format.stata")= chr "%8.0g"
$ nac_vivo_murieron: dbl+lbl [1:16451] 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
..@ label : chr " 210. ¿Tuvo usted hijos o hijas que nacieron vivos/as y que murieron"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ mortinato_2 : dbl+lbl [1:16451] 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0...
..@ label : chr "212.1 De todos los embarazos que usted ha tenido en su vida"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ depresion_pp : dbl+lbl [1:16451] 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0...
..@ label : chr "219. ¿Después de alguno de sus partos, sintió tristeza?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ intensidad_dpp : dbl+lbl [1:16451] 1, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 1, 0, 0, 0, 0, 0...
..@ label : chr "Intensidad DPP"
..@ format.stata: chr "%12.0g"
..@ labels : Named num [1:3] 0 1 2
.. ..- attr(*, "names")= chr [1:3] "No tiene dpp" "Poca dpp" "Mucha dpp"
$ etnia : dbl+lbl [1:16451] 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0...
..@ label : chr "9.1 ¿Cómo se Identifica (…) según su cultura y costumbres:"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Otra" "Indigena"
$ f2_s2_216_1 : dbl+lbl [1:16451] 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2...
..@ label : chr "216.1 Hay mujeres que pierden sus embarazos antes de cumplir el quinto mes"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 1 2
.. ..- attr(*, "names")= chr [1:2] "si" "no"
$ f2_s2_216_2 : num [1:16451] NA NA NA NA NA NA NA NA NA NA ...
..- attr(*, "label")= chr "216.2 ¿Cuántos?"
..- attr(*, "format.stata")= chr "%8.0g"
$ f2_s2_218_1_a : dbl+lbl [1:16451] 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2...
..@ label : chr "218.a ¿Hombre o mujer?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 1 2
.. ..- attr(*, "names")= chr [1:2] "hombre" "mujer"
$ tiempo_dpp : dbl+lbl [1:16451] 1, 1, 0, 0, 0, 0, 3, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0...
..@ label : chr "221. ¿Durante cuánto tiempo se sintió triste?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:5] 1 2 3 4 88
.. ..- attr(*, "names")= chr [1:5] "menos de 3 meses" "3 meses" "6 meses" "1año o más" ...
$ f2_s5_504a_1 : dbl+lbl [1:16451] 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.a El trato que recibió del personal de salud que le atendió?PN"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504b_1 : dbl+lbl [1:16451] 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.b La experiencia/conocimiento de la persona que le atendió?PN"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504c_1 : dbl+lbl [1:16451] 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.c La disponibilidad del médico, enfermera u otro personal"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504d_1 : dbl+lbl [1:16451] 3, 3, 1, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.d La privacidad durante su atención? - PNoC"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504e_1 : dbl+lbl [1:16451] 2, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.e La comodidad del establecimiento? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504f_1 : dbl+lbl [1:16451] 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.f El tiempo que tardaron en atenderla? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504g_1 : dbl+lbl [1:16451] 1, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.g El horario de atención? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504h_1 : dbl+lbl [1:16451] 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.h La limpieza/aseo del establecimiento? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504i_1 : dbl+lbl [1:16451] 2, 3, 1, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.i La ropa/vestimenta utilizada en el parto? - Parto normal o cesárea"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504j_1 : dbl+lbl [1:16451] 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.j La información que le dio el personal de salud sobre su salud"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ f2_s5_504k_1 : dbl+lbl [1:16451] 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3...
..@ label : chr "504.k El respeto a su cultura y costumbres relacionadas con el parto? - Parto n"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:3] 1 2 3
.. ..- attr(*, "names")= chr [1:3] "Malo" "Regular" "Bueno"
$ est_civil : dbl+lbl [1:16451] 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1...
..@ label : chr "900. ¿Actualmente usted esta:"
..@ format.stata: chr "%12.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "En otro caso" "Casada"
$ q_usted : dbl+lbl [1:16451] 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1...
..@ label : chr "403. En la época en la que quedó embarazada de (…), quería Usted:"
..@ format.stata: chr "%17.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No tener ese hijo" "Tener ese hijo"
$ q_pareja : dbl+lbl [1:16451] 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1...
..@ label : chr "405. ¿Quería su pareja:"
..@ format.stata: chr "%17.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No tener ese hijo" "Tener ese hijo"
$ f2_s4b_406_ : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "406. ¿Tuvo algún control prenatal cuando estaba embarazada de (...)?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 1 2
.. ..- attr(*, "names")= chr [1:2] "si" "no"
$ lugar : dbl+lbl [1:16451] 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0...
..@ label : chr "423.a ¿En que lugar tuvo el parto de (..).?"
..@ format.stata: chr "%32.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Establecimiento privado" "Establecimiento de salud del msp"
$ form_parto : dbl+lbl [1:16451] 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0...
..@ label : chr "425. El parto de (...) fue:"
..@ format.stata: chr "%15.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "Cesárea" "Normal"
$ c_posparto : dbl+lbl [1:16451] 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1...
..@ label : chr "440. ¿Tuvo usted algún control después del parto de (...)?"
..@ format.stata: chr "%8.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No" "Si"
$ anios_esc : num [1:16451] 14 10 6 8 16 9 10 13 14 6 ...
..- attr(*, "label")= chr "Años escolaridad"
..- attr(*, "format.stata")= chr "%9.0g"
$ ingrl : num [1:16451] 0 0 240 0 0 0 0 60 0 0 ...
..- attr(*, "label")= chr "Ingreso laboral"
..- attr(*, "format.stata")= chr "%9.0g"
$ planf : dbl+lbl [1:16451] 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1...
..@ label : chr "Planificación familiar"
..@ format.stata: chr "%13.0g"
..@ labels : Named num [1:2] 0 1
.. ..- attr(*, "names")= chr [1:2] "No planifico" "Si planificó"
$ lingrl : num [1:16451] 0 0 5.48 0 0 ...
..- attr(*, "label")= chr "Logaritmo ingreso laboral"
..- attr(*, "format.stata")= chr "%9.0g"
$ lugarx1 : num [1:16451] 0 0 0 0 0 0 0 1 0 0 ...
..- attr(*, "label")= chr "lugar==Establecimiento privado"
..- attr(*, "format.stata")= chr "%8.0g"
$ lugarx2 : num [1:16451] 1 1 1 1 1 1 1 0 1 1 ...
..- attr(*, "label")= chr "lugar==Establecimiento de salud del msp"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx1 : num [1:16451] 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "label")= chr "region==Sierra"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx2 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "region==Costa"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx3 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "region==Amazonía"
..- attr(*, "format.stata")= chr "%8.0g"
$ regionx4 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "region==Insular"
..- attr(*, "format.stata")= chr "%8.0g"
$ intensidad_dppx1 : num [1:16451] 0 0 1 1 1 1 0 1 1 0 ...
..- attr(*, "label")= chr "intensidad_dpp==No tiene dpp"
..- attr(*, "format.stata")= chr "%8.0g"
$ intensidad_dppx2 : num [1:16451] 1 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "intensidad_dpp==Poca dpp"
..- attr(*, "format.stata")= chr "%8.0g"
$ intensidad_dppx3 : num [1:16451] 0 1 0 0 0 0 1 0 0 1 ...
..- attr(*, "label")= chr "intensidad_dpp==Mucha dpp"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx1 : num [1:16451] 0 0 1 1 1 1 0 1 1 0 ...
..- attr(*, "label")= chr "tiempo_dpp== 0.0000"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx2 : num [1:16451] 1 1 0 0 0 0 0 0 0 1 ...
..- attr(*, "label")= chr "tiempo_dpp==menos de 3 meses"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx3 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "tiempo_dpp==3 meses"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx4 : num [1:16451] 0 0 0 0 0 0 1 0 0 0 ...
..- attr(*, "label")= chr "tiempo_dpp==6 meses"
..- attr(*, "format.stata")= chr "%8.0g"
$ tiempo_dppx5 : num [1:16451] 0 0 0 0 0 0 0 0 0 0 ...
..- attr(*, "label")= chr "tiempo_dpp==1año o más"
..- attr(*, "format.stata")= chr "%8.0g"
##Ejemplo 1: Modelos con variable dependiente dicotómica ##Modelos logit y probit
Ajustar el modelo logit
modelo_logit <- glm(depresion_pp ~ lingrl + anios_esc + edad + t_hijos + etnia + area,
data = data, family = binomial(link = "logit"))Ajustar el modelo probit
modelo_probit <- glm(depresion_pp ~ lingrl + anios_esc + edad + t_hijos + etnia + area,
data = data, family = binomial(link = "probit"))summary(modelo_logit)
Call:
glm(formula = depresion_pp ~ lingrl + anios_esc + edad + t_hijos +
etnia + area, family = binomial(link = "logit"), data = data)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.3377859 0.1015521 -23.021 < 2e-16 ***
lingrl 0.0006157 0.0071763 0.086 0.9316
anios_esc -0.0078052 0.0049109 -1.589 0.1120
edad 0.0333503 0.0032243 10.344 < 2e-16 ***
t_hijos 0.0391392 0.0189765 2.063 0.0392 *
etnia 0.3502255 0.0605997 5.779 7.5e-09 ***
area 0.1089295 0.0425378 2.561 0.0104 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 17346 on 16450 degrees of freedom
Residual deviance: 17105 on 16444 degrees of freedom
AIC: 17119
Number of Fisher Scoring iterations: 4
Analisis El ingreso y los años de escolaridad no son estadisticamente significativos, es decir, no ayudan a explicar la probabilidad de que las mujeres ecuatorianas sufran de depresion post parto.
La edad es estadísticamente significativa, lo que significa que las mujeres con mayor edad tienen probabilidad de sufrir de depresion post parto.
El numero de hijos presenta significancia estadistica, es decir, a medida que aumenta el número de hijos, incrementa la probabilidad de que las mujeres sufran de depresion post parto.
La etnia es una variable estadisticamente significativa en el modelo, lo cual significa que, las mujeres indígenas tienen mayor probabilidad de padecer de depresion post parto.
Las mujeres que viven en el área rural tienen mayor probabilidad de sufrir de depresion post parto, en comparación a las damas del área urbana.
Resumen modelo probit
summary(modelo_probit)
Call:
glm(formula = depresion_pp ~ lingrl + anios_esc + edad + t_hijos +
etnia + area, family = binomial(link = "probit"), data = data)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.401e+00 5.852e-02 -23.942 < 2e-16 ***
lingrl 3.942e-05 4.170e-03 0.009 0.99246
anios_esc -4.481e-03 2.861e-03 -1.566 0.11733
edad 1.958e-02 1.890e-03 10.363 < 2e-16 ***
t_hijos 2.334e-02 1.123e-02 2.078 0.03774 *
etnia 2.078e-01 3.585e-02 5.796 6.8e-09 ***
area 6.431e-02 2.452e-02 2.623 0.00872 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 17346 on 16450 degrees of freedom
Residual deviance: 17103 on 16444 degrees of freedom
AIC: 17117
Number of Fisher Scoring iterations: 4
El criterio de información de Akaike (AIC) es un método matemático para evaluar el ajuste de un modelo a los datos a partir de los cuales se generó.
El criterio de Información Bayesiano (BIC) es una medida de bondad de ajuste de un modelo estadístico, y es a muenudo utilizado como un criterio para para la selección de modelos entre un conjunto finito de modelos.
aic_logit <- AIC(modelo_logit)
aic_probit <- AIC(modelo_probit)bic_logit <- BIC(modelo_logit)##Comparar BIC de los modelos
bic_logit <- BIC(modelo_logit)
bic_probit <- BIC(modelo_probit)cat("AIC Logit:", aic_logit, " | AIC Probit:", aic_probit, "\n")AIC Logit: 17119.38 | AIC Probit: 17117.13
El criterio más bajo es del modelo probit
cat("BIC Logit:", bic_logit, " | BIC Probit:", bic_probit, "\n")BIC Logit: 17173.34 | BIC Probit: 17171.09
CONCLUSION: El modelo con menor AIC/BIC es el preferido, ya que tiene mejor ajuste, es decir el modelo probit
library(margins)Warning: package 'margins' was built under R version 4.4.3
marg_logit <- margins(modelo_logit)
summary(marg_logit) factor AME SE z p lower upper
anios_esc -0.0013 0.0008 -1.5897 0.1119 -0.0029 0.0003
area 0.0184 0.0072 2.5619 0.0104 0.0043 0.0325
edad 0.0056 0.0005 10.4239 0.0000 0.0046 0.0067
etnia 0.0592 0.0102 5.7944 0.0000 0.0392 0.0793
lingrl 0.0001 0.0012 0.0858 0.9316 -0.0023 0.0025
t_hijos 0.0066 0.0032 2.0632 0.0391 0.0003 0.0129
Los años de escolaridad y el ingreso no son estadisticamente significativos, es decir, no ayudan a explicar la probabilidad de que las mujeres ecuatorianas padezcan de depresion post parto.
El área al ser una variable estadisticamente significativa, nos explica que las mujeres del área rural tienen 1,84 % mas probabilidad de sufrir de depresion post parto.
Un año adiciona de las mujeres ecutorianas en promedio, aumenta la probabilidad en 0,56% de sufrir de depresion post parto.
Una mujer indígena tiene 5,92% de probabilidad de sufrir de depresion post parto.
A medida que aumenta el número de hijos, acrecienta la probabilidad en 0,66% de que padezca de depresion post parto.
marg_probit <- margins(modelo_probit)
summary(marg_probit) factor AME SE z p lower upper
anios_esc -0.0013 0.0008 -1.5664 0.1173 -0.0029 0.0003
area 0.0188 0.0072 2.6238 0.0087 0.0047 0.0328
edad 0.0057 0.0005 10.4392 0.0000 0.0046 0.0068
etnia 0.0606 0.0104 5.8096 0.0000 0.0402 0.0811
lingrl 0.0000 0.0012 0.0095 0.9925 -0.0024 0.0024
t_hijos 0.0068 0.0033 2.0783 0.0377 0.0004 0.0132
Analisis Los años de escolaridad y el ingreso no son estadisticamente significativos, es decir, no ayudan a explicar la probabilidad de que las mujeres ecuatorianas padezcan de depresion post parto.
El área al ser una variable estadisticamente significativa, nos explica que las mujeres del área rural tienen 1,88 % mas probabilidad de sufrir de depresion post parto.
Un año adiciona de las mujeres ecutorianas en promedio, aumenta la probabilidad en 0,57% de sufrir de depresion post parto.
Una mujer indígena tiene 6,06% de probabilidad de sufrir de depresion post parto.
A medida que aumenta el número de hijos, acrecienta la probabilidad en 0,68% de que padezca de depresion post parto.
###Para el modelo logit podemos calcular la matriz de confusión
Obtener predicciones del modelo logit
pred_logit <- ifelse(predict(modelo_logit, type = "response") > 0.5, 1, 0)conf_matrix <- table(Predicho = pred_logit, Real = data$depresion_pp)print(conf_matrix) Real
Predicho 0 1
0 12828 3623
exactitud <- sum(diag(conf_matrix)) / sum(conf_matrix)
cat("Exactitud del modelo logit:", exactitud, "\n")Exactitud del modelo logit: 0.7797702
Las variables consideradas para explicar la probabilidad de que las mujeres con depresion post parto ocurra de acuerdo al modelo logit es del 77,98%.
library(pROC)Warning: package 'pROC' was built under R version 4.4.3
Type 'citation("pROC")' for a citation.
Adjuntando el paquete: 'pROC'
The following objects are masked from 'package:stats':
cov, smooth, var
roc_logit <- roc(data$depresion_pp, predict(modelo_logit, type = "response"))Setting levels: control = 0, case = 1
Setting direction: controls < cases
library(ggplot2)Warning: package 'ggplot2' was built under R version 4.4.3
ggplot() +
geom_line(aes(x = roc_logit$specificities, y = roc_logit$sensitivities), color = "blue") +
geom_abline(linetype = "dashed", color = "red") +
labs(title = "Curva ROC - Modelo Logit",
x = "1 - Especificidad",
y = "Sensibilidad") +
theme_minimal()auc_logit <- auc(roc_logit)
cat("Área bajo la curva (AUC) - Modelo Logit:", auc_logit, "\n")Área bajo la curva (AUC) - Modelo Logit: 0.5836005
Curva ROC: Muestra el rendimiento del modelo en diferentes umbrales de clasificación.
AUC > 0.7 indica un buen modelo predictivo.
medico <- ifelse(data$f2_s5_504c_1 == 3, 1, 0)table(data$f2_s5_504c_1)
1 2 3
405 2008 14038
data$medico <- ifelse(data$f2_s5_504c_1 == 3, 1, 0)##MODELO LOGIT CON MAS VARIABLES DE CONTROL MODELO LOGIT MATRIZ DE EXACTITUD IR CREANDO GRAFICAS… el exito seria q alcance o pase 0,70.
modelo_logit <- glm(depresion_pp ~ lingrl + anios_esc + edad + t_hijos + etnia + area,
data = data, family = binomial(link = "logit"))#TAREA: AUMENTAR VARIABLES A FIN DE QUE, EL 0,58 DEL MODELO LOGIT AUMENTE.
names(data) [1] "area" "empleo" "region"
[4] "edad" "t_hijos" "nac_vivo_murieron"
[7] "mortinato_2" "depresion_pp" "intensidad_dpp"
[10] "etnia" "f2_s2_216_1" "f2_s2_216_2"
[13] "f2_s2_218_1_a" "tiempo_dpp" "f2_s5_504a_1"
[16] "f2_s5_504b_1" "f2_s5_504c_1" "f2_s5_504d_1"
[19] "f2_s5_504e_1" "f2_s5_504f_1" "f2_s5_504g_1"
[22] "f2_s5_504h_1" "f2_s5_504i_1" "f2_s5_504j_1"
[25] "f2_s5_504k_1" "est_civil" "q_usted"
[28] "q_pareja" "f2_s4b_406_" "lugar"
[31] "form_parto" "c_posparto" "anios_esc"
[34] "ingrl" "planf" "lingrl"
[37] "lugarx1" "lugarx2" "regionx1"
[40] "regionx2" "regionx3" "regionx4"
[43] "intensidad_dppx1" "intensidad_dppx2" "intensidad_dppx3"
[46] "tiempo_dppx1" "tiempo_dppx2" "tiempo_dppx3"
[49] "tiempo_dppx4" "tiempo_dppx5" "medico"
summary(data) area empleo region edad
Min. :0.0000 Min. :0.0000 Min. :1.000 Min. :13.00
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:1.000 1st Qu.:23.00
Median :1.0000 Median :0.0000 Median :2.000 Median :28.00
Mean :0.6418 Mean :0.4128 Mean :1.841 Mean :28.55
3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:2.000 3rd Qu.:34.00
Max. :1.0000 Max. :1.0000 Max. :4.000 Max. :49.00
t_hijos nac_vivo_murieron mortinato_2 depresion_pp
Min. : 0.000 Min. :0.00000 Min. :0.00000 Min. :0.0000
1st Qu.: 1.000 1st Qu.:0.00000 1st Qu.:0.00000 1st Qu.:0.0000
Median : 2.000 Median :0.00000 Median :0.00000 Median :0.0000
Mean : 2.055 Mean :0.03337 Mean :0.02504 Mean :0.2202
3rd Qu.: 3.000 3rd Qu.:0.00000 3rd Qu.:0.00000 3rd Qu.:0.0000
Max. :13.000 Max. :1.00000 Max. :1.00000 Max. :1.0000
intensidad_dpp etnia f2_s2_216_1 f2_s2_216_2
Min. :0.0000 Min. :0.0000 Min. :1.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:2.000 1st Qu.:1.000
Median :0.0000 Median :0.0000 Median :2.000 Median :1.000
Mean :0.3317 Mean :0.1057 Mean :1.852 Mean :1.325
3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:2.000 3rd Qu.:1.000
Max. :2.0000 Max. :1.0000 Max. :2.000 Max. :8.000
NA's :14023
f2_s2_218_1_a tiempo_dpp f2_s5_504a_1 f2_s5_504b_1
Min. :1.000 Min. :0.0000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:3.000
Median :1.000 Median :0.0000 Median :3.000 Median :3.000
Mean :1.485 Mean :0.3921 Mean :2.837 Mean :2.849
3rd Qu.:2.000 3rd Qu.:0.0000 3rd Qu.:3.000 3rd Qu.:3.000
Max. :2.000 Max. :4.0000 Max. :3.000 Max. :3.000
f2_s5_504c_1 f2_s5_504d_1 f2_s5_504e_1 f2_s5_504f_1 f2_s5_504g_1
Min. :1.000 Min. :1.00 Min. :1.000 Min. :1.00 Min. :1.000
1st Qu.:3.000 1st Qu.:3.00 1st Qu.:3.000 1st Qu.:3.00 1st Qu.:3.000
Median :3.000 Median :3.00 Median :3.000 Median :3.00 Median :3.000
Mean :2.829 Mean :2.82 Mean :2.842 Mean :2.78 Mean :2.825
3rd Qu.:3.000 3rd Qu.:3.00 3rd Qu.:3.000 3rd Qu.:3.00 3rd Qu.:3.000
Max. :3.000 Max. :3.00 Max. :3.000 Max. :3.00 Max. :3.000
f2_s5_504h_1 f2_s5_504i_1 f2_s5_504j_1 f2_s5_504k_1
Min. :1.00 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.00 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:3.000
Median :3.00 Median :3.000 Median :3.000 Median :3.000
Mean :2.88 Mean :2.858 Mean :2.861 Mean :2.882
3rd Qu.:3.00 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:3.000
Max. :3.00 Max. :3.000 Max. :3.000 Max. :3.000
est_civil q_usted q_pareja f2_s4b_406_
Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :1.000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:1.0000 1st Qu.:1.000
Median :0.0000 Median :1.0000 Median :1.0000 Median :1.000
Mean :0.3132 Mean :0.7248 Mean :0.7794 Mean :1.031
3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.000
Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :2.000
lugar form_parto c_posparto anios_esc
Min. :0.0000 Min. :0.0000 Min. :0.00 Min. : 0.00
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00 1st Qu.: 9.00
Median :1.0000 Median :1.0000 Median :1.00 Median :13.00
Mean :0.7353 Mean :0.5646 Mean :0.63 Mean :11.57
3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.00 3rd Qu.:14.00
Max. :1.0000 Max. :1.0000 Max. :1.00 Max. :23.00
ingrl planf lingrl lugarx1
Min. : 0.0 Min. :0.0000 Min. :0.000 Min. :0.0000
1st Qu.: 0.0 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.0000
Median : 0.0 Median :1.0000 Median :0.000 Median :0.0000
Mean : 162.7 Mean :0.6801 Mean :2.093 Mean :0.2647
3rd Qu.: 200.0 3rd Qu.:1.0000 3rd Qu.:5.303 3rd Qu.:1.0000
Max. :3000.0 Max. :1.0000 Max. :8.007 Max. :1.0000
lugarx2 regionx1 regionx2 regionx3
Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
Median :1.0000 Median :0.0000 Median :0.0000 Median :0.0000
Mean :0.7353 Mean :0.3973 Mean :0.3848 Mean :0.1976
3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:0.0000
Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
regionx4 intensidad_dppx1 intensidad_dppx2 intensidad_dppx3
Min. :0.00000 Min. :0.0000 Min. :0.0000 Min. :0.0000
1st Qu.:0.00000 1st Qu.:1.0000 1st Qu.:0.0000 1st Qu.:0.0000
Median :0.00000 Median :1.0000 Median :0.0000 Median :0.0000
Mean :0.02036 Mean :0.7798 Mean :0.1088 Mean :0.1114
3rd Qu.:0.00000 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.0000
Max. :1.00000 Max. :1.0000 Max. :1.0000 Max. :1.0000
tiempo_dppx1 tiempo_dppx2 tiempo_dppx3 tiempo_dppx4
Min. :0.0000 Min. :0.0000 Min. :0.00000 Min. :0.0000
1st Qu.:1.0000 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.:0.0000
Median :1.0000 Median :0.0000 Median :0.00000 Median :0.0000
Mean :0.7798 Mean :0.1315 Mean :0.03635 Mean :0.0217
3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.:0.0000
Max. :1.0000 Max. :1.0000 Max. :1.00000 Max. :1.0000
tiempo_dppx5 medico
Min. :0.0000 Min. :0.0000
1st Qu.:0.0000 1st Qu.:1.0000
Median :0.0000 Median :1.0000
Mean :0.0307 Mean :0.8533
3rd Qu.:0.0000 3rd Qu.:1.0000
Max. :1.0000 Max. :1.0000
modelo_logit2 <- glm(depresion_pp ~ lingrl + anios_esc + edad + t_hijos +est_civil +lugar + etnia + area + q_pareja + form_parto + mortinato_2 + form_parto + c_posparto + empleo + f2_s2_216_1 + nac_vivo_murieron + tiempo_dppx2 + regionx4,
data = data, family = binomial(link = "logit"))#Calcular predicciones
pred_mejorado <- ifelse(predict(modelo_logit2, type = "response") > 0.5, 1, 0)#Matriz de confusion
conf_matrix_mejorado <- table(Predicho = pred_mejorado, Real = data$depresion_pp)
print(conf_matrix_mejorado) Real
Predicho 0 1
0 12719 1356
1 109 2267
#Exactitud
exactitud_mejorado <- sum(diag(conf_matrix_mejorado)) / sum(conf_matrix_mejorado)
cat("Exactitud del modelo mejorado:", exactitud_mejorado, "\n")Exactitud del modelo mejorado: 0.9109477
#Calcular la curva ROC
library(pROC)
library(haven)
data$depresion_pp<- as.character(as_factor(data$depresion_pp))
roc_logit2 <- roc(data$depresion_pp, predict(modelo_logit2, type = "response"))Setting levels: control = No, case = Si
Setting direction: controls < cases
library(ggplot2)
ggplot() +
geom_line(aes(x = roc_logit2$specificities, y = roc_logit2$sensitivities), color = "blue") +
geom_abline(linetype = "dashed", color = "red") +
labs(title = "Curva ROC - Modelo Logit",
x = "1 - Especificidad",
y = "Sensibilidad") +
theme_minimal()plot(roc_logit2, col = "blue", main = "Comparación de curvas ROC")
plot(roc_logit2, col = "green", add = TRUE)
legend("bottomright", legend = c("Original", "Mejorado"), col = c("blue", "green"), lwd = 2)auc_logit <- auc(roc_logit2)
cat("Área bajo la curva (AUC) - Modelo Logit:", auc_logit, "\n")Área bajo la curva (AUC) - Modelo Logit: 0.8846945