library(haven)
data <- read_dta("Data1_R.dta")
View(data)Tarea 2 11/05/2025 Encuesta Nacional de Salud y Nutrición 2018
Ecuador - Encuesta Nacional de Salud y Nutrición 2018
Cargar las librerías necesarias library(dplyr) # Para manipular los datos library(ggplot2) # Para crear gráficos library(“foreign”) #Cargas datos .dta library(“msm”) library(“car”) require(plotrix) library(“plotrix”)
Setear directorio de trabajo setwd(“C:/Users/H P/Desktop/Carpetas/EMY/ESTUDIOS/Maestria en Economia y Dirección de empresa/Business Analytics/Tareas Business Analytics/Clase 2 11 mayo BA/Tarea 2 Encuesta Nacional de Salud y Nutrición 2018_files”)
Descargar datos https://anda.inec.gob.ec/anda/index.php/catalog/891/data_dictionary
Leer los datos desde un archivo .dta
Verificar las primeras filas del conjunto 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>, …
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ## Ejemplo 1: Intervalo de Confianza para la media de la variable ‘ingrl’ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Poner en todas print (etiqueta)
Calcular la media y la desviación estándar de la variable ‘ingrl’
media <- mean(data$ingrl, na.rm = TRUE) # Calcula la media
print(media)[1] 162.6633
El promedio del ingreso laboral para las mujeres en el 2018 es de $162,66, siendo menor al salario basico correspondiente a ese año que fue de $386,00
desviacion <- sd(data$ingrl, na.rm = TRUE) # Calcula la desviación estándar
print(desviacion)[1] 329.8832
La desviación de los datos analizado es de 329,88, un valor muy mayor que la media que es de 162,66, indicando que los datos se encuentran muy dispersos, que puede deberse a valores muy extremos o desvalanceados.
n <- length(data$ingrl) # Número de observaciones
print(n)[1] 16451
En el presente trabajo se analizan 16451 datos
summary(data$ingrl) Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0 0.0 0.0 162.7 200.0 3000.0
print(summary)function (object, ...)
UseMethod("summary")
<bytecode: 0x000001ae757ab380>
<environment: namespace:base>
Los datos relacionados al ingreso laboral indican que existen persona(s) que no los perciben al ser el mínimo $0,00; el primer quartil establece que el 25% de las mujeres tiene ingresos iguales o menores a 0, lo que significa que no tienen ingreso; la mediana también es 0, es decir que más del 50% no disponen de ingresos; la media es de $162,70 que viene a ser el promedio de los ingresos, pero cabe tomar en cuenta que se ve muy afectada por valores extremos; el tercer quartil establece que el 75% de la muestra tiene ingresos de hasta $200,00; por lo tanto, solo el 25% restante gana más de eso, hasta $3000 que viene a ser el valor maximo.
Vamos Diapositivas
la función sqrt() se utiliza para calcular la raíz cuadrada de un número
Calcular el error estándar
error_estandar <- desviacion / sqrt(n)
print(error_estandar)[1] 2.571959
El error estandar es bajo de 2,57, lo que significa que la estimación de la media es bastante precisa al variar en esa cantidad.
Calcular el intervalo de confianza al 95% Nota: Para un intervalo de confianza del 95% en una distribución normal, el 0.975 se refiere al percentil superior. Es decir, en una distribución normal, el 97.5% de las observaciones están a la izquierda de este valor de z, y solo el 2.5% están a la derecha. Por lo tanto, el valor calculado en qnorm(0.975) es el valor crítico z que se utiliza para calcular los intervalos de confianza del 95%.
z <- qnorm(0.975) # Z-score para un intervalo de confianza del 95%
print(z)[1] 1.959964
Con un intervalo de confianza del 95% resulta un valor z de 1.96.
z2<- qnorm(0.95) # Z-score para un intervalo de confianza del 90%
print(z2)[1] 1.644854
Con un intervalo de confianza del 90% resulta un valor z de 1.64.
z3<- qnorm(0.995) # Z-score para un intervalo de confianza del 99%
print(z3)[1] 2.575829
Con un intervalo de confianza del 99% resulta un valor z de 2.58.
margen_error <- z * error_estandar # Margen de error
print(margen_error)[1] 5.040948
El ingreso promedio es $162,66, y al obtener el margen de error se determina que ese valor puede variar ± $5.04 dólares, teniendo en cuenta un intervalo de confianza del 95%. Este margen de error se obtiene al multiplicar el error estándar ($2,57) por el valor z = 1.96, que corresponde al nivel de confianza del 95%.
Intervalo de confianza
IC_inferior <- media - margen_error
print(IC_inferior)[1] 157.6223
IC_superior <- media + margen_error
print(IC_superior)[1] 167.7042
En un 95% es seguro que el ingreso promedio real en la población está entre $157,62 y $167,70
Mostrar el intervalo de confianza cat es útil para imprimir mensajes de texto personalizados, combinando variables y texto
A continuación se muestran los valores obtenidos de forma agrupada:
cat("El intervalo de confianza para la media de 'ingrl' es: [", IC_inferior, ",", IC_superior, "]\n")El intervalo de confianza para la media de 'ingrl' es: [ 157.6223 , 167.7042 ]
cbind imprime texxto en columnas
intervalo95<-cbind(IC_inferior,media,IC_superior);intervalo95 #Para transformar a matriz IC_inferior media IC_superior
[1,] 157.6223 162.6633 167.7042
print(intervalo95) IC_inferior media IC_superior
[1,] 157.6223 162.6633 167.7042
Analisis
Otra forma de impirmir los resultados
colnames(intervalo95)<-c("IC_low","media","IC_high");intervalo95 #Para cambiar nombres más cortos de columnas IC_low media IC_high
[1,] 157.6223 162.6633 167.7042
Una forma más simplificada de calcular un intervalo de confianza para la media (con un comando sacamos lo mismo que los pasos anteriores)
media_test <- t.test(data$ingrl, conf.level = 0.95)
print(media_test$conf.int)[1] 157.6220 167.7046
attr(,"conf.level")
[1] 0.95
Plotear los Intervalos de Confianza en un gráfico”
labels<-c("CI_95")
names(labels)<-labels
print(names)function (x) .Primitive("names")
round es para redondear, es este caso dos digitos
labelsre1<-round(c(media),2)
print(labelsre1)[1] 162.66
labelsre2<-round(c(IC_inferior),2)
print(labelsre2)[1] 157.62
labelsre3<-round(c(IC_superior),2)
print(labelsre3)[1] 167.7
names(labelsre1)<-labelsre1
xre1<-c(media)
y1<-(4)
lre1<-c(IC_inferior)
ure1<-c(IC_superior)este codigo lo usamos para todo unicamente cambiamos xre1 lre1 ure1
options(repos = c(CRAN = "https://cloud.r-project.org"))install.packages("plotrix") Installing package into 'C:/Users/H P/AppData/Local/R/win-library/4.4'
(as 'lib' is unspecified)
package 'plotrix' successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\H P\AppData\Local\Temp\RtmpYxpLVT\downloaded_packages
library(plotrix)plotCI(xre1,y1, ui=ure1,li=lre1,col="#898989",scol="#898989",
err="x",
axes=FALSE, ## disable axes (including tick labels)
pch=21,
pt.bg=16,
cex = 0.30,
slty = 1,
lwd=1,
xlab="",
ylab="",
ylim=c(1,7),
xlim=c(154,169), ## suppress x-axis label
main="Intervalo de Confianza para el Ingreso Promedio",
cex.main=0.85,
font.main = 1)
abline(v = xre1, col = "red",lty = 2)
#text(-200,"Media",col="blue")
axis(side=1,cex.axis=0.65) ## add default y-axis (ticks+labels)
axis(side=2,at=4, ## add custom x-axis
labels= labels,cex.axis=0.30)
box(bty="l") ## add box
text(xre1, y1+0.03, labelsre1, cex = 0.65, pos= 3)
text(lre1, y1+0.03, labelsre2, cex = 0.65, pos= 3)
text(ure1, y1+0.03, labelsre3, cex = 0.65, pos= 3)El gráfico presenta el intervalo de confianza para la media del ingreso mensual (ingrl) de los datos analizados, indicando que con un 95% de confianza, se espera que el ingreso promedio real de la población se encuentre dentro de ese rango $157,62 y $167,70.
La línea gris horizontal representa el rango de este intervalo, que va desde $157.62 hasta $167.70, y el punto central corresponde a la media estimada de $162.66, marcada además por la línea roja punteada. Este intervalo se calcula utilizando un valor z de 1.96, correspondiente al nivel de confianza del 95%, y un margen de error de ±$5.04.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##Ejemplo 2: Intervalo de Confianza para la proporción de la variable ‘depresion_pp’ post parto +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cualitativa entre 0 y 1 (Vamos diapositivas)
Calcular la proporción muestral p
install.packages(“haven”) library(haven)
p <- sum(as_factor(data$depresion_pp) == "Si", na.rm = TRUE) / sum(!is.na(data$depresion_pp))
print(p)[1] 0.2202298
En el caso de la muestra de las mujeres ecuatorianas en 2018, el 22,02% sufrió de depresión postparto, y el 77,98% no sufrió depresión.
Tamaño de la muestra
n <- length(data$depresion_pp)
print(n)[1] 16451
La muestra esta conformada por 16451 mujeres ecuatorianas
Nivel de confianza (95%) -> Z-value 1.96
z <- qnorm(0.975) # Z-score para un intervalo de confianza del 95%
print(z)[1] 1.959964
Con un intervalo de confianza del 95% resulta un valor z de 1.96.
z2<- qnorm(0.95) # Z-score para un intervalo de confianza del 90%
print(z2)[1] 1.644854
Con un intervalo de confianza del 90% resulta un valor z de 1.64.
z3<- qnorm(0.995) # Z-score para un intervalo de confianza del 99%
print(z3)[1] 2.575829
Con un intervalo de confianza del 99% resulta un valor z de 2.58.
Calcular el error estándar
error_estandarp <- sqrt((p * (1 - p)) / n)
print(error_estandarp)[1] 0.003230912
El error estándar de la proporción de las mujeres con depresión post parto es de 0.0032. Indicando cuánto se espera que varíe la proporción en diferentes muestras del mismo tamaño, entre más pequeña, más precisa es la estimación.
Calcular el margen de error
margen_errorp <- z * error_estandarp
print(margen_errorp)[1] 0.006332472
El margen de error de la proporción de las mujeres ecuatorianas con depresión postparto es de 0.0063, indica cuánto se puede desviar la proporción estimada (22,02%) respecto al valor real de la población, manteniendo un 95% de confianza.
Calcular los límites del intervalo de confianza
IC_inferiorp <- p - margen_errorp
print(IC_inferiorp)[1] 0.2138973
IC_superiorp <- p + margen_errorp
print(IC_superiorp)[1] 0.2265622
Las mujeres que pueden llegar a tener depresión post parto son de un 21,39% a un 22,66%, con un nivel de confianza de un 95%
Mostrar el intervalo de confianza para proporciones
cat("El intervalo de confianza para la media de 'mujeres con depresión post partol' es: [", IC_inferiorp, ",", IC_superiorp, "]")El intervalo de confianza para la media de 'mujeres con depresión post partol' es: [ 0.2138973 , 0.2265622 ]
intervalo95p<-cbind(IC_inferiorp,p,IC_superiorp);intervalo95p #Para transformar a matriz IC_inferiorp p IC_superiorp
[1,] 0.2138973 0.2202298 0.2265622
print(intervalo95p) IC_inferiorp p IC_superiorp
[1,] 0.2138973 0.2202298 0.2265622
Interpretación.
colnames(intervalo95p)<-c("IC_low","p","IC_high");intervalo95p #Para cambiar nombres más cortos de columnas IC_low p IC_high
[1,] 0.2138973 0.2202298 0.2265622
print(intervalo95p) IC_low p IC_high
[1,] 0.2138973 0.2202298 0.2265622
Una forma más simplificada de calcular un intervalo de confianza para proporciones
library(haven)
depresion_factor <- as_factor(data$depresion_pp)prop_test <- prop.test(
sum(depresion_factor == "Si", na.rm = TRUE), # éxitos
sum(!is.na(depresion_factor)), # total válido
conf.level = 0.95
)
print(prop_test$conf.int)[1] 0.2139329 0.2266579
attr(,"conf.level")
[1] 0.95
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ## Ejemplo 3: Prueba de hipótesis de Medias ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Supongamos que queremos realizar una prueba de hipótesis para la media de ‘ingrl’ H0: El ingreso promedio poblacional es igual a $450 HA: El ingreso promedio poblacional es diferente a $450 Recordar que la HA nunca contiene los signos “=” , “≤” o “≥”.
Realizar una prueba t para una sola muestra
t_prueba <- t.test(data$ingrl, mu = 450, conf.level = 0.95)
print(t_prueba)
One Sample t-test
data: data$ingrl
t = -111.72, df = 16450, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 450
95 percent confidence interval:
157.6220 167.7046
sample estimates:
mean of x
162.6633
Mediante la prueba t se evalúa si el ingreso promedio observado en la muestra difiere significativamente del valor hipotético planteado, en este caso, $450. El resultado arrojó un valor t de -111.72, lo que indica que la media muestral ($162.66) está muy por debajo del valor hipotético, a una distancia de más de 111 errores estándar.
Además, el p-valor fue menor a 2.2e-16, muy por debajo de 0.05, lo cual indica significancia y permite rechazar la hipótesis nula H0 y aceptar la hipótesis alternativa HA donde el ingreso promedio real no es $450.
Según el intervalo de confianza del 95%, el ingreso promedio de las mujeres ecuatorianas en 2018 se encuentra entre $157.62 y $167.70, lo que confirma que el ingreso es significativamente menor a $450.
Análisis: fijarse en el p-value
p valor significativo, por lo tanto, rechazo la hipótesis nula y no rechazo la hipótesis alternativa
Interpretar los resultados: Si el valor p es menor a 0.05, rechazamos la hipótesis nula
if (t_prueba$p.value < 0.05) {
cat("Rechazamos la hipótesis nula: Entonces tenemos evidencia de que la media de 'ingrl' es diferente de 450.\n")
} else {
cat("No rechazamos la hipótesis nula: Entonces tenemos evidencia de que la media de 'ingrl' es igual a 450.\n")
}Rechazamos la hipótesis nula: Entonces tenemos evidencia de que la media de 'ingrl' es diferente de 450.
Supongamos que queremos realizar una prueba de hipótesis para la media de ‘ingrl’ H0: El ingreso promedio poblacional es mayor e igual a $450 HA: El ingreso promedio poblacional es menor a $450 Recordar que la HA nunca contiene los signos “=” , “≤” o “≥”.
Realizar una prueba t para una sola muestra less menor
t_prueba2 <- t.test(data$ingrl, mu = 450, alternative = "less", conf.level = 0.95)
print(t_prueba2)
One Sample t-test
data: data$ingrl
t = -111.72, df = 16450, p-value < 2.2e-16
alternative hypothesis: true mean is less than 450
95 percent confidence interval:
-Inf 166.894
sample estimates:
mean of x
162.6633
p valor significativo, por lo tanto, rechazo la hipótesis nula y no rechazo la hipótesis alternativa
Interpretar los resultados: Si el valor p es menor a 0.05, rechazamos la hipótesis nula
if (t_prueba$p.value < 0.05) {
cat("Rechazamos la hipótesis nula: Entonces tenemos evidencia de que la media poblacional de 'ingrl' es menor a 450.\n")
} else {
cat("No rechazamos la hipótesis nula: Entonces tenemos evidencia de que la media poblacional de 'ingrl' es mayor e igual a 450.\n")
}Rechazamos la hipótesis nula: Entonces tenemos evidencia de que la media poblacional de 'ingrl' es menor a 450.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##Ejemplo 4: Prueba de hipótesis de proporciones +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Supongamos que queremos realizar una prueba de hipótesis para proporción de ‘depresion_pp’ H0: La proporción poblacional es igual a 0.10 HA: La proporción poblacional es diferente a 0.10 Recordar que la HA nunca contiene los signos “=” , “≤” o “≥”.
Realizamos la prueba para saber si la proporción es diferente a 0.10
library(haven)
depresion <- as_factor(data$depresion_pp)
prop_test <- prop.test(
sum(depresion == "Si", na.rm = TRUE), # cantidad de "Si"
sum(!is.na(depresion)), # total válido
p = 0.10, # proporción esperada
conf.level = 0.95
)
print(prop_test)
1-sample proportions test with continuity correction
data: sum(depresion == "Si", na.rm = TRUE) out of sum(!is.na(depresion)), null probability 0.1
X-squared = 2640.9, df = 1, p-value < 2.2e-16
alternative hypothesis: true p is not equal to 0.1
95 percent confidence interval:
0.2139329 0.2266579
sample estimates:
p
0.2202298
Mediante la prueba de proporciones se evalúa si la proporción observada de mujeres con depresión postparto difiere significativamente del valor poblacional hipotético del 10%. El resultado mostró una proporción muestral de 22.02%, con un estadístico de prueba X squared = 2640.9, lo que indica una gran diferencia entre la proporción observada (22.02%) y la esperada de la hipótesis nula (10%).
El p-valor obtenido fue menor a 2.2e-16, muy inferior al nivel de significancia de 0.05, lo que permite rechazar la hipótesis nula y aceptar la hipótesis alternativa en la que la proporción real de mujeres con depresión postparto no es 10%.
Según el intervalo de confianza del 95%, la proporción poblacional se encuentra entre 21.39% y 22.66%, lo cual respalda que la depresión postparto afecta a una proporción significativamente mayor de mujeres de lo que se planteaba inicialmente.
Interpretar los resultados: Si el valor p es menor a 0.05, rechazamos la hipótesis nula
if (prop_test$p.value < 0.05) {
cat("Rechazamos la hipótesis nula: Entonces tenemos evidencia de que la proporción de 'depresion_pp' es diferente a 0.10.\n")
} else {
cat("No rechazamos la hipótesis nula: Entonces tenemos evidencia de que la proporción de 'depresion_pp' es igual a 0.10.\n")
}Rechazamos la hipótesis nula: Entonces tenemos evidencia de que la proporción de 'depresion_pp' es diferente a 0.10.
Revisión de literatura
(Sanchez Cañar, Uriguen Aguirre, and Vega Jaramillo 2021) señala que de acuerdo con el sexo de la persona en el 2019 el ingreso laboral promedio de los hombres era de 345.5 dólares mensuales mientras que una mujer por su trabajo percibió 292.7 dólares, debido a que los hombres trabajaban un aproximado de 40 horas semanales, mientras que las mujeres solo llegaban a 34 horas. Y (Linthon-Delgado and Méndez-Heras 2021) indica que en promedio, las mujeres perciben un salario por hora que representa el 64.4% del que sus contrapartes hombres perciben, en la que las dotaciones de las mujeres (escolaridad y experiencia laboral) contribuyen a reducir la brecha mientras que los factores no observados (discriminación) la incrementa.
(Herrera Dutan, Carriel Alvarez, and García Pacheco 2022) (como se citó por la OMS, 2022) establece que entre el 20% y 40% del total de las mujeres que viven en países en vías de desarrollo padecen de depresión durante o después del embarazo.