El conjunto de datos es un subconjunto de la encuesta nacional de prevalencia de anticonceptivos de Indonesia, 1987. Las muestras son mujeres casadas que no estaban embarazadas o no saben si estaban en el momento de la entrevista. Puedes consultar el conjunto de datos en este enlace
El subconjunto de datos que vamos a trabajar se encuentra conformado por 1473 mujeres participantes y 10 variables.
library(tidyverse)
library(DT)
library(kableExtra)
Variable = c("Edad de la esposa", "Educación de la esposa",
"Educación del esposo","Numero de hijos nacidos","Religión de la esposa","¿La esposa esta trabajando ahora?",
"Ocupación del marido","Índice del nivel de vida","Exposición a los medios","Método anticonceptivo utilizado")
Valores = c("Varia",
"1 = Baja,2,3,4 = alta",
"1 = Baja,2,3,4 = alta",
"varia",
"0 = No Islam, 1 = Islam",
"0 = Si, 1 = No",
"1,2,3,4",
"1 = Bajo,2,3,4 = Alto",
"0 = Bueno, 1 = No bueno",
"1 = Sin uso, 2 = Largo plazo, 3 = Corto plazo")
No. = c("1 ","2 ","3 ","4 ","5 ","6 ","7 ","8 ","9 ","10 ")
Tipo = c("(Numérica)","(Categórica)","(Categórica)","(Numérica)"
,"(Binaria)","(Binaria)","(Categórica)","(Categórica)","(Binaria)","(Atributo de clase)")
dm = cbind.data.frame(No.,Variable,Tipo,Valores)
# Estilo documento de Latex para PDF.
dm %>%
kbl(caption = "Variables del subconjunto de datos") %>%
kable_classic(full_width = F, html_font = "Times New Roman")
| No. | Variable | Tipo | Valores |
|---|---|---|---|
| 1 | Edad de la esposa | (Numérica) | Varia |
| 2 | Educación de la esposa | (Categórica) | 1 = Baja,2,3,4 = alta |
| 3 | Educación del esposo | (Categórica) | 1 = Baja,2,3,4 = alta |
| 4 | Numero de hijos nacidos | (Numérica) | varia |
| 5 | Religión de la esposa | (Binaria) | 0 = No Islam, 1 = Islam |
| 6 | ¿La esposa esta trabajando ahora? | (Binaria) | 0 = Si, 1 = No |
| 7 | Ocupación del marido | (Categórica) | 1,2,3,4 |
| 8 | Índice del nivel de vida | (Categórica) | 1 = Bajo,2,3,4 = Alto |
| 9 | Exposición a los medios | (Binaria) | 0 = Bueno, 1 = No bueno |
| 10 | Método anticonceptivo utilizado | (Atributo de clase) | 1 = Sin uso, 2 = Largo plazo, 3 = Corto plazo |
#Cargamos directo de Internet el conjunto de datos
ruta ="https://raw.githubusercontent.com/js-munozo/Prediccion_metodo_anticonceptivo/main/anticonceptivo.csv"
datos = read.csv(ruta,header = T)
head(datos,10)
## Edad.de.la.esposa Educación.de.la.esposa Educación.del.esposo
## 1 24 2 3
## 2 45 1 3
## 3 43 2 3
## 4 42 3 2
## 5 36 3 3
## 6 19 4 4
## 7 38 2 3
## 8 21 3 3
## 9 27 2 3
## 10 45 1 1
## Número.de.hijos.nacidos Religión.de.la.esposa
## 1 3 1
## 2 10 1
## 3 7 1
## 4 9 1
## 5 8 1
## 6 0 1
## 7 6 1
## 8 1 1
## 9 3 1
## 10 8 1
## Â.La.esposa.ahora.estÃ..trabajando. Ocupación.del.esposo
## 1 1 2
## 2 1 3
## 3 1 3
## 4 1 3
## 5 1 3
## 6 1 3
## 7 1 3
## 8 0 3
## 9 1 3
## 10 1 2
## Ã.ndice.de.nivel.de.vida Exposición.a.los.medios.anticonceptivos
## 1 3 0
## 2 4 0
## 3 4 0
## 4 3 0
## 5 2 0
## 6 3 0
## 7 2 0
## 8 2 0
## 9 4 0
## 10 2 1
## MÃ.todo.anticonceptivo.utilizado
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
## 7 1
## 8 1
## 9 1
## 10 1
colnames(datos) = c("EdadEspa", "EducacionEspa",
"EducacionEspo","No.Hijos","ReligiónEspa","TrbEspa",
"TrbEspo","NivEco","Medios","Anticonceptivo")
#1.- Edad de la esposa
datos$EdadEspa = as.numeric(datos$EdadEspa)
#2. Educación de la esposa (Categórica) 1 = baja, 2, 3, 4 = alta
datos$EducacionEspa = as.factor(datos$EducacionEspa)
levels(datos$EducacionEspa) = c("baja","suciente","media","alta")
#3. Educación del esposo (Categórica) 1 = baja, 2, 3, 4 = alta
datos$EducacionEspo = as.factor(datos$EducacionEspo)
levels(datos$EducacionEspo) = c("baja","suciente","media","alta")
#4. Numero de hijos
datos$No.Hijos = as.numeric(datos$No.Hijos)
#5. Religion de la esposa (binaria) 0 = No Islam, 1 = Islam
datos$ReligiónEspa = as.factor(datos$ReligiónEspa)
levels(datos$ReligiónEspa) = c("No Islam","Islam")
##6. ¿La esposa trabaja ahora? (binario) 0 = Si, 1 = No
datos$TrbEspa = as.factor(datos$TrbEspa)
levels(datos$TrbEspa) = c("Si trabaja","No trabaja")
#7. Ocupación del marido (Categórica) 1, 2, 3, 4
datos$TrbEspo = as.factor(datos$TrbEspo)
levels(datos$TrbEspo) = c("Profesional,tecnico y clerical","Ventas y servicios",
"Trabajo manual","Agricultura")
#8. indice de nivel de vida (categórico) 1 = bajo, 2, 3, 4 = alto
datos$NivEco = as.factor(datos$NivEco)
levels(datos$NivEco) = c("bajo","suciente","medio","alto")
#9. Exposición a los medios (binario) 0 = Bueno, 1 = No bueno
datos$Medios = as.factor(datos$Medios)
levels(datos$Medios) = c("Bueno","No bueno")
#10. Método anticonceptivo utilizado (atributo de clase) 1 = Sin uso, 2 = A largo plazo, 3 = A corto plazo
datos$Anticonceptivo = as.factor(datos$Anticonceptivo)
levels(datos$Anticonceptivo) = c("Sin uso","Largo plazo","Corto plazo")
str(datos)
## 'data.frame': 1473 obs. of 10 variables:
## $ EdadEspa : num 24 45 43 42 36 19 38 21 27 45 ...
## $ EducacionEspa : Factor w/ 4 levels "baja","suciente",..: 2 1 2 3 3 4 2 3 2 1 ...
## $ EducacionEspo : Factor w/ 4 levels "baja","suciente",..: 3 3 3 2 3 4 3 3 3 1 ...
## $ No.Hijos : num 3 10 7 9 8 0 6 1 3 8 ...
## $ ReligiónEspa : Factor w/ 2 levels "No Islam","Islam": 2 2 2 2 2 2 2 2 2 2 ...
## $ TrbEspa : Factor w/ 2 levels "Si trabaja","No trabaja": 2 2 2 2 2 2 2 1 2 2 ...
## $ TrbEspo : Factor w/ 4 levels "Profesional,tecnico y clerical",..: 2 3 3 3 3 3 3 3 3 2 ...
## $ NivEco : Factor w/ 4 levels "bajo","suciente",..: 3 4 4 3 2 3 2 2 4 2 ...
## $ Medios : Factor w/ 2 levels "Bueno","No bueno": 1 1 1 1 1 1 1 1 1 2 ...
## $ Anticonceptivo: Factor w/ 3 levels "Sin uso","Largo plazo",..: 1 1 1 1 1 1 1 1 1 1 ...
#2. Educación de la esposa (categórica) 1 = baja, 2, 3, 4 = alta
datos$EducacionEspa = as.factor(datos$EducacionEspa)
levels(datos$EducacionEspa) = c("baja","suciente","media","alta")
c = datos$EducacionEspa
ct = table(c)
ctd = as.data.frame(ct)
colnames(ctd) = c("Eduespa","Mujeres")
#Busco hacer un Gráfico agradable
ggplot(data=ctd, aes(x=Eduespa, y=Mujeres,fill=Eduespa)) +
geom_bar(stat="identity") +
geom_text(aes(label=Mujeres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable educación de la esposa") +
labs(x = "Educación de la esposa",y = "Mujeres")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
#3. Educación del esposo (categórica) 1 = baja, 2, 3, 4 = alta
datos$EducacionEspo = as.factor(datos$EducacionEspo)
levels(datos$EducacionEspo) = c("baja","suciente","media","alta")
d = datos$EducacionEspo
dt = table(d)
dtd = as.data.frame(dt)
colnames(dtd) = c("Eduespo","Hombres")
#Busco hacer un Gráfico decente
ggplot(data=dtd, aes(x=Eduespo, y=Hombres,fill=Eduespo)) +
geom_bar(stat="identity") +
geom_text(aes(label=Hombres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable educación del esposo") +
labs(x = "Educación del esposo",y = "Hombres")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
#4. Número de hijos nacidos (numérico)
#Proceso de generar los intervalos
rango = max(datos$No.Hijos) - min(datos$No.Hijos)
AP = 1 + 3.322*log10(nrow(datos))
intervalos = 11
Amplitud = rango/intervalos
L = 0+3*(0:6)
x = datos$No.Hijos
Hijos = cut(x, breaks=L, right=FALSE)
htab = table(Hijos)
dh = as.data.frame(htab)
colnames(dh) = c("Hijos","Cantidad")
#Busco hacer un Gráfico decente
ggplot(data=dh, aes(x=Hijos, y=Cantidad,fill=Hijos)) +
geom_bar(stat="identity") +
geom_text(aes(label=Cantidad), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable numero de hijos nacidos") +
labs(x = "Hijos",y = "Cantidad de hijos")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
#5. Religión de la esposa (binaria) 0 = No Islam, 1 = Islam
datos$ReligiónEspa = as.factor(datos$ReligiónEspa)
levels(datos$ReligiónEspa) = c("No Islam","Islam")
e = datos$ReligiónEspa
et = table(e)
etd = as.data.frame(et)
colnames(etd) = c("Religión","Mujeres")
#Busco hacer un Gráfico decente
ggplot(data=etd, aes(x=Religión, y=Mujeres,fill=Religión)) +
geom_bar(stat="identity") +
geom_text(aes(label=Mujeres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable religión") +
labs(x = "Religión",y = "Mujeres")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
##6. ¿La esposa trabaja ahora? (binario) 0 = Si, 1 = No
datos$TrbEspa = as.factor(datos$TrbEspa)
levels(datos$TrbEspa) = c("Si trabaja","No trabaja")
f = datos$TrbEspa
ft = table(f)
ftd = as.data.frame(ft)
colnames(ftd) = c("Trabaja","Mujeres")
#Busco hacer un Gráfico decente
ggplot(data=ftd, aes(x=Trabaja, y=Mujeres,fill=Trabaja)) +
geom_bar(stat="identity") +
geom_text(aes(label=Mujeres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable trabajo de la esposa") +
labs(x = "Trabaja",y = "Mujeres")
#8. Índice de nivel de vida (categórico) 1 = bajo, 2, 3, 4 = alto
datos$NivEco = as.factor(datos$NivEco)
levels(datos$NivEco) = c("bajo","aceptable","medio","alto")
h = datos$NivEco
ht = table(h)
htd = as.data.frame(ht)
colnames(htd) = c("Indice","Mujeres")
#Busco hacer un Gráfico decente
ggplot(data=htd, aes(x=Indice, y=Mujeres,fill=Indice)) +
geom_bar(stat="identity") +
geom_text(aes(label=Mujeres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable Indice de nivel de vida") +
labs(x = "Indice",y = "Mujeres")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
#9. Exposición a los medios (binario) 0 = Bueno, 1 = No bueno
datos$Medios = as.factor(datos$Medios)
levels(datos$Medios) = c("No bueno","Bueno")
j = datos$Medios
jt = table(j)
jtd = as.data.frame(jt)
colnames(jtd) = c("Exposicion","Mujeres")
#Busco hacer un Gráfico decente
ggplot(data=jtd, aes(x=Exposicion, y=Mujeres,fill=Exposicion)) +
geom_bar(stat="identity") +
geom_text(aes(label=Mujeres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable Exposición a los medios") +
labs(x = "Exposicion",y = "Mujeres")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
#10. Método anticonceptivo utilizado (atributo de clase) 1 = Sin uso, 2 = A largo plazo, 3 = A corto plazo
datos$Anticonceptivo = as.factor(datos$Anticonceptivo)
levels(datos$Anticonceptivo) = c("Sin uso","Largo plazo","Corto plazo")
k = datos$Anticonceptivo
kt = table(k)
ktd = as.data.frame(kt)
colnames(ktd) = c("Anticonceptivo","Mujeres")
#Busco hacer un Gráfico decente
ggplot(data=ktd, aes(x=Anticonceptivo, y=Mujeres,fill=Anticonceptivo)) +
geom_bar(stat="identity") +
geom_text(aes(label=Mujeres), vjust=1.8, color="black", size=4)+
theme_minimal() +
ggtitle ("Gráfico de barras\npara la variable anticonceptivo") +
labs(x = "Metodo anticonceptivo",y = "Mujeres")+
theme (axis.text.x = element_text(colour="black", size=rel(1)),
axis.text.y = element_text(colour="black", size=rel(1), angle=90, hjust=0.5)) +
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="black", size=rel(1))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="black", size=rel(1)))
# Primero, preparamos los datos para el análisis.
levels(datos$ReligiónEspa) #Ver niveles de variable
## [1] "No Islam" "Islam"
levels(datos$Anticonceptivo) #Ver niveles de variable
## [1] "Sin uso" "Largo plazo" "Corto plazo"
tabla <- table(datos$Anticonceptivo, datos$ReligiónEspa)
chi <-chisq.test(tabla)
#Para analizar de qué manera se asocian ambas variables
#Tabla cruzada con porcentajes
tabla2 <- prop.table(tabla,2)*100 #Distribución condicionada por columnas
#Agregar las distribuciones marginales hace más fácil de leer la tabla
Total <- prop.table(margin.table(tabla,1))*100 #Filas
tabla2 <- cbind(tabla2, Total)
Total <- c(100,100,100)
tabla2 <- rbind(tabla2, Total)
round(chi$expected, 3)
##
## No Islam Islam
## Sin uso 93.944 535.056
## Largo plazo 49.735 283.265
## Corto plazo 76.320 434.680
library(vcd)
## Loading required package: grid
assocstats(tabla)
## X^2 df P(> X^2)
## Likelihood Ratio 20.054 2 4.4200e-05
## Pearson 21.622 2 2.0177e-05
##
## Phi-Coefficient : NA
## Contingency Coeff.: 0.12
## Cramer's V : 0.121
Aquí puede consultar la investigación desarrollada: El Islam como factor asociado a las preferencias de métodos anticonceptivos en el año 1987 en Indonesia