En las prácticas anteriores conocimos la base de la ENBIARE 2025 y comenzamos a comparar grupos.
En esta práctica construiremos y organizaremos distintas variables que podrían estar relacionadas con la satisfacción con la vida.
La pregunta que guiará el trabajo será:
¿Qué características y condiciones de las personas podrían estar relacionadas con su satisfacción con la vida?
Para cada variable seguiremos una misma secuencia:
Importante: todavía no utilizaremos pruebas de significancia estadística. Los intervalos de confianza se introducirán de manera gráfica y descriptiva. Más adelante estudiaremos formalmente su interpretación.
# Seleccionar la entidad
#base <- enbiare[enbiare$CVE_ENT == "09", ]
base <- readRDS("base_cdmx.rds")
# Comprobar
dim(base)
## [1] 988 282
table(base$CVE_ENT)
##
## 09
## 988
#saveRDS(base, "base_cdmx.rds")
Comience revisando el directorio actual.
#getwd()
Defina ahora la carpeta en la que guardó la base correspondiente a su entidad.
#setwd("C:/Users/ACA A-111.INFORMATICA/Desktop/Estadistica 3 RStudio/enbiare_2025_base_de_datos_csv")
Compruebe qué archivos se encuentran en esa carpeta.
#list.files()
Pregunta 1. ¿Cuál es su directorio de trabajo?
Respuesta: “C:/Users/ACA A-111.INFORMATICA/Desktop/Estadistica 3 RStudio/enbiare_2025_base_de_datos_csv”
Cada estudiante utilizará el archivo .rds
correspondiente a la entidad seleccionada.
A partir de esta práctica, independientemente del nombre del archivo,
llamaremos base al objeto con el que
trabajaremos.
Modifique el nombre del archivo en el siguiente código.
base <- readRDS("base_cdmx.rds")
Una vez leído el archivo, compruebe sus dimensiones.
dim(base)
## [1] 988 282
Pregunta 2.
La variable PA1 registra la satisfacción actual con la
vida en una escala de 0 a 10.
Primero revise cómo se encuentra almacenada.
str(base$PA1)
## chr [1:988] "08" "08" "10" "09" "07" "07" "10" "09" "08" "05" "10" "08" ...
table(base$PA1, useNA = "ifany")
##
## 02 03 04 05 06 07 08 09 10
## 1 4 6 25 25 94 254 253 326
Construya una variable numérica llamada satisf_vida.
base$satisf_vida <- as.numeric(base$PA1)
summary(base$satisf_vida)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.000 8.000 9.000 8.644 10.000 10.000
Pregunta 3. Registre:
En esta práctica consideraremos satisf_vida como la
variable que queremos comprender o explicar.
Vamos a construir una función para calcular:
Por ahora utilizaremos el IC95% principalmente para visualizar la precisión de las medias. Su interpretación estadística formal se revisará posteriormente.
IC_media <- function(x){
x <- x[!is.na(x)]
n <- length(x)
media <- mean(x)
error <- qt(0.975, df = n - 1) * sd(x) / sqrt(n)
c(
n = n,
media = media,
LI = media - error,
LS = media + error
)
}
Compruebe la función con satisfacción con la vida.
IC_media(base$satisf_vida)
## n media LI LS
## 988.000000 8.643725 8.559447 8.728002
table(base$SEXO, useNA = "ifany")
##
## 1 2
## 448 540
Aunque R almacene SEXO mediante números, esos números
representan categorías, no cantidades.
base$sexo_f <- factor(
base$SEXO,
levels = c(1, 2),
labels = c("Hombre", "Mujer")
)
table(base$sexo_f)
##
## Hombre Mujer
## 448 540
freq_sexo <- table(base$sexo_f)
freq_sexo
##
## Hombre Mujer
## 448 540
round(prop.table(freq_sexo) * 100, 1)
##
## Hombre Mujer
## 45.3 54.7
Complete:
| Sexo | n | % |
|---|---|---|
| Hombre | 448 | 45.3 |
| Mujer | 540 | 54.7 |
| Total | 988 | 100 |
tapply(
base$satisf_vida,
base$sexo_f,
mean,
na.rm = TRUE
)
## Hombre Mujer
## 8.669643 8.622222
Obtenga ahora media e IC95%.
grupos <- split(base$satisf_vida, base$sexo_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Hombre 448 8.67 8.55 8.79
## Mujer 540 8.62 8.50 8.74
plot(
1:nrow(res),
res[, "media"],
ylim = c(8, 9),
xaxt = "n",
xlab = "Sexo",
ylab = "Satisfacción con la vida",
main = "Gráfica 1. Satisfacción con la vida según sexo, Ciudad de México 2025",
pch = 19
)
axis(1, at = 1:nrow(res), labels = rownames(res))
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 4. ¿Qué observa? ¿Las medias son semejantes o diferentes? Observe también la amplitud de los intervalos.
Respuesta: Las medias son diferentes por muy poco, los intervalos son parecidos de largo y se cruzan, por lo que no se puede decir que la satisfacción con la vida en Ciudad de México sea significativamente diferente entre hombres y mujeres.
EDAD es una variable cuantitativa. Revise primero su
distribución.
summary(base$EDAD)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 34.00 46.00 47.39 60.00 99.00
table(base$EDAD)
##
## 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
## 14 9 12 7 8 12 10 20 17 16 23 21 18 17 21 16 22 18 30 23 25 16 22 21 24 21
## 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
## 12 17 15 14 17 18 22 16 13 21 17 24 14 21 11 13 16 12 15 28 17 15 11 14 13 7
## 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 99
## 11 6 11 9 6 12 9 2 1 3 4 5 5 4 5 2 4 3 1 4 5
Ahora construiremos grupos de edad.
base$grupo_edad <- cut(
base$EDAD,
breaks = c(17, 29, 44, 59, 74, 89),
labels = c("18-29", "30-44", "45-59", "60-74", "75+")
)
freq_edad <- table(base$grupo_edad)
freq_edad
##
## 18-29 30-44 45-59 60-74 75+
## 169 306 253 191 64
round(prop.table(freq_edad) * 100, 1)
##
## 18-29 30-44 45-59 60-74 75+
## 17.2 31.1 25.7 19.4 6.5
Pregunta 5. ¿Cuál es el grupo más numeroso? ¿Cuál es el menos numeroso?
Respuesta: El más numeroso es el de 30-44 (31.1%) y el menos numeroso es el de 75+, con un 6.5%
Pregunta 6. ¿Qué ganamos y qué información perdemos al transformar la edad exacta en grupos de edad?
Respuesta: Ya no es una variable cuantitativa, se convierte en categórica, ordinal. Ya no podemos obtener estadísticos descriptivos. Ganamos el poder comparar grupos de edad.
grupos <- split(base$satisf_vida, base$grupo_edad)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## 18-29 169 8.64 8.46 8.82
## 30-44 306 8.69 8.54 8.83
## 45-59 253 8.58 8.40 8.75
## 60-74 191 8.58 8.37 8.79
## 75+ 64 8.86 8.52 9.20
plot(
1:nrow(res),
res[, "media"],
ylim = c(8, 10),
xaxt = "n",
xlab = "Grupo de edad",
ylab = "Satisfacción con la vida",
main = "Gráfica 2. Satisfacción con la vida según grupo etario, Ciudad de México 2025",
pch =
)
axis(1, at = 1:nrow(res), labels = rownames(res))
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 7. ¿Se observa algún patrón entre edad y satisfacción con la vida? ¿Algún grupo tiene un intervalo considerablemente más amplio? ¿Qué podría explicar esa mayor amplitud?
Respuesta: (PATRÓN). Sí se observa un patrón: que la satisfacción con la vida se mantiene relativamente estable entre los grupos de edad,especialmente para los grupos de 18 a 74 años. Sin embargo, en el grupo de 75 años y más se aprecia un ligero incremento en el intervalo, alcanzando aproximadamente 8.9 puntos. Esto podría indicar que las personas de mayor edad reportan una satisfacción con la vida ligeramente superior.
PB1 corresponde a salud autopercibida.
Primero revise las categorías originales.
table(base$PB1, useNA = "ifany")
##
## 1 2 3 4 5
## 5 28 273 496 186
Construya una variable con etiquetas.
base$salud_f <- factor(
base$PB1,
levels = 1:5,
labels = c(
"Muy mala",
"Mala",
"Regular",
"Buena",
"Muy buena"
),
ordered = TRUE
)
freq_salud <- table(base$salud_f)
freq_salud
##
## Muy mala Mala Regular Buena Muy buena
## 5 28 273 496 186
round(prop.table(freq_salud) * 100, 1)
##
## Muy mala Mala Regular Buena Muy buena
## 0.5 2.8 27.6 50.2 18.8
Pregunta 8. ¿Cuál es la categoría de salud más frecuente?
Respuesta: La categoría de salud más frecuente en la Ciudad de México es “Buena”, con 50.2%
grupos <- split(base$satisf_vida, base$salud_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Muy mala 5 5.80 3.41 8.19
## Mala 28 7.93 7.33 8.52
## Regular 273 8.18 8.00 8.37
## Buena 496 8.81 8.70 8.91
## Muy buena 186 9.07 8.90 9.24
plot(
1:nrow(res),
res[, "media"],
ylim = c(3, 9.50),
xaxt = "n",
xlab = "Salud autopercibida",
ylab = "Satisfacción con la vida",
main = "Gráfica 3. Satisfacción con la vida según salud autopercibida, Ciudad de México 2025",
pch = 19
)
axis(1, at = 1:nrow(res), labels = rownames(res))
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 9. ¿Parece existir un gradiente entre salud autopercibida y satisfacción con la vida?
Respuesta: Sí hay un gradiente, entre todas las variables, excepto en “muy mala” salud autopercibida
Trabajaremos ahora con PB4, frecuencia con que la
persona reporta haberse sentido sola.
Antes de construir la variable, observe los códigos.
table(base$PB4, useNA = "ifany")
##
## 1 2 3 4 5
## 572 258 112 32 14
Construya la variable etiquetada.
base$soledad_f <- factor(
base$PB4,
levels = 1:5,
labels = c(
"Nunca",
"Pocas veces",
"Algunas veces",
"La mayor parte del tiempo",
"Todo el tiempo"
),
ordered = TRUE
)
freq_soledad <- table(base$soledad_f)
freq_soledad
##
## Nunca Pocas veces Algunas veces
## 572 258 112
## La mayor parte del tiempo Todo el tiempo
## 32 14
round(prop.table(freq_soledad) * 100, 1)
##
## Nunca Pocas veces Algunas veces
## 57.9 26.1 11.3
## La mayor parte del tiempo Todo el tiempo
## 3.2 1.4
grupos <- split(base$satisf_vida, base$soledad_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Nunca 572 8.92 8.82 9.02
## Pocas veces 258 8.43 8.27 8.59
## Algunas veces 112 8.06 7.78 8.35
## La mayor parte del tiempo 32 8.03 7.53 8.54
## Todo el tiempo 14 7.21 5.76 8.67
plot(
1:nrow(res),
res[, "media"],
ylim = c(5, 9.50),
xaxt = "n",
xlab = "Frecuencia de soledad",
ylab = "Satisfacción con la vida",
main = "Gráfica 4. Satisfacción con la vida según frecuencia de soledad, Ciudad de México 2025",
pch = 19
)
axis(1, at = 1:nrow(res), labels = rownames(res), las = 2)
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 10. Conforme aumenta la frecuencia de soledad, ¿qué sucede descriptivamente con la satisfacción con la vida?
Respuesta: Conforme hay más soledad percibida, más se extienden los valores de satisfacción con la vida, más que nada para valores menores.
Trabajaremos con PC1, relacionada con la capacidad del
hogar para llegar a fin de mes.
Antes de etiquetar sus categorías, consulte el descriptor de ENBIARE y escriba exactamente qué significa cada código.
table(base$PC1, useNA = "ifany")
##
## 1 2 3 4 5 6
## 23 94 138 231 380 122
Pregunta 11. Escriba el significado de las
categorías de PC1.
Respuesta: 1 Con mucha dificultad 2 Con dificultad 3 Con poca dificultad 4 Con poca facilidad 5 Con facilidad 6 Con mucha facilidad
Construya ahora una variable factor utilizando las etiquetas verificadas en el descriptor.
base$fin_mes_f <- factor(
base$PC1,
levels = c(1,2,3,4,5,6),
labels = c("Mucha dificultad", "Dificultad", "Poca dificultad", "Poca facilidad", "Facilidad", "Mucha facilidad")
)
Obtenga frecuencias absolutas y relativas.
freq_economia <- table(base$fin_mes_f)
freq_economia
##
## Mucha dificultad Dificultad Poca dificultad Poca facilidad
## 23 94 138 231
## Facilidad Mucha facilidad
## 380 122
round(prop.table(freq_economia) * 100, 1)
##
## Mucha dificultad Dificultad Poca dificultad Poca facilidad
## 2.3 9.5 14.0 23.4
## Facilidad Mucha facilidad
## 38.5 12.3
Calcule la satisfacción media y los IC95%.
grupos <- split(base$satisf_vida, base$fin_mes_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Mucha dificultad 23 7.35 6.55 8.15
## Dificultad 94 7.94 7.58 8.29
## Poca dificultad 138 8.28 8.04 8.53
## Poca facilidad 231 8.54 8.39 8.69
## Facilidad 380 8.87 8.75 8.99
## Mucha facilidad 122 9.34 9.17 9.50
Utilice el mismo procedimiento de las secciones anteriores para construir una gráfica de media e IC95%.
plot(
1:nrow(res),
res[, "media"],
ylim = c(6.50, 9.50),
xaxt = "n",
xlab = "Capacidad del hogar para llegar a fin de mes",
ylab = "Satisfacción con la vida",
main = "Gráfica 5. Satisfacción con la vida según capacidad económica del hogar, Ciudad de México 2025",
pch = 19
)
axis(1, at = 1:nrow(res), labels = rownames(res), las = 2)
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 12. ¿Observa algún patrón entre la capacidad económica y la satisfacción con la vida?
Respuesta: Sí, los niveles de “con mucha dificultad” y “con dificultad” son parecidos aunque, el intervalo con “mucha dificultad” se extiende hacia abajo en satisfacción. En las categorías de Mucha dificultad y Poca dificultad los valores de satisfacción con la vida son parecidos, y están medianamente altos.
PF1_1 se refiere a la confianza en la mayoría de la
gente.
Revise primero la variable.
str(base$PF1_1)
## chr [1:988] "03" "05" "04" "08" "05" "02" "05" "08" "06" "04" "03" "05" ...
table(base$PF1_1, useNA = "ifany")
##
## 00 01 02 03 04 05 06 07 08 09 10
## 102 25 63 84 93 189 125 141 115 34 17
Pregunta 13. De acuerdo con el descriptor, ¿cómo
está medida PF1_1?
Respuesta: Es una variable alfanumérica o caractér en la base de datos pero se puede considerar que es numérica.
Antes de modificarla, piense:
¿Conviene conservar todos sus valores o agruparlos?
Si decide agruparla, deberá justificar los puntos de corte. Un agrupamiento simplifica la interpretación, pero también implica pérdida de información.
Decisión tomada: Individual
Justificación: Cada valor representa información importante ya que hay variaciones importantes entre tan sólo una variable de diferencia, así que al mantenerlos por individual se representará más fielmente las respuestas proporcionadas por la muestra encuestada.
Construya la variable que utilizará, obtenga sus frecuencias absolutas y relativas y posteriormente calcule la satisfacción media y su IC95%.
base$confianza <- factor(base$PF1_1,)
Frecuencias absolutas y relativas.
freq_confianza <- table(base$PF1_1)
freq_confianza
##
## 00 01 02 03 04 05 06 07 08 09 10
## 102 25 63 84 93 189 125 141 115 34 17
round(prop.table(freq_confianza) * 100, 1)
##
## 00 01 02 03 04 05 06 07 08 09 10
## 10.3 2.5 6.4 8.5 9.4 19.1 12.7 14.3 11.6 3.4 1.7
Medias.
grupos <- split(base$satisf_vida, base$confianza)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## 00 102 8.79 8.50 9.09
## 01 25 8.36 7.68 9.04
## 02 63 8.38 7.98 8.78
## 03 84 8.52 8.18 8.87
## 04 93 8.48 8.24 8.73
## 05 189 8.46 8.24 8.67
## 06 125 8.62 8.41 8.82
## 07 141 8.80 8.62 8.99
## 08 115 8.89 8.68 9.09
## 09 34 9.18 8.81 9.55
## 10 17 8.88 8.18 9.58
Construya también la gráfica correspondiente.
saveRDS(base, "base_cdmx.rds")
plot(
1:nrow(res),
res[, "media"],
ylim = c(7, 10),
xaxt = "n",
xlab = "Nivel de Confianza en la gente",
ylab = "Satisfacción con la vida",
main = "Gráfica 6. Satisfacción con la vida según el nivel de confianza con las personas, Ciudad de México 2025",
pch = 19
)
axis(1, at = 1:nrow(res), labels = rownames(res), las = 2)
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 14. ¿Qué relación descriptiva observa entre confianza interpersonal y satisfacción con la vida?
Respuesta: Es curioso, ya que, viendo las medias, no hay un cambio tan notorio entre quienes no confían y sí confían en las demás personas; en la Ciudad de México, según lo que nos dice esta gráfica,el promedio del nivel de satisfacción con la vida se mantiene alto, casi en los mismos niveles, aunque la confianza sea poca o mucha. Lo que es curioso son los intervalos de cada nivel de confianza, ya que, mientras que el promedio del nivel 01 es 8.38, y el nivel 10 es 8.88, ambos intervalos son alargados, los únicos parecidos entre los otros datos, ya que, por ejemplo, incluso con el nivel de confianza 00 “nada en absoluto”, el intervalo es corto y la satisfacción es alta. Esto puede ser debido a la naturaleza del entorno de la Ciudad de México, donde en una ciudad tan grande, las personas se pueden percibir más seguras al no interactuar ni confiar en otros.
Seleccione una variable adicional de ENBIARE que considere que podría estar relacionada con la satisfacción con la vida.
Antes de analizarla complete:
Ahora siga la misma secuencia utilizada durante la práctica:
base$redes <- factor(
base$PI4_4,
levels = c(1,2),
labels = c("Sí", "No")
)
freq_redes <- table(base$redes)
freq_redes
##
## Sí No
## 53 933
round(prop.table(freq_redes) * 100, 1)
##
## Sí No
## 5.4 94.6
grupos <- split(base$satisf_vida, base$redes)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Sí 53 8.49 8.08 8.90
## No 933 8.65 8.56 8.74
plot(
1:nrow(res),
res[, "media"],
ylim = c(8, 9),
xaxt = "n",
xlab = "Afectación por uso de redes sociales",
ylab = "Satisfacción con la vida",
main = "Gráfica 7. Satisfacción con la vida según el afectación por redes sociales, Ciudad de México 2025",
pch = 19
)
axis(1, at = 1:nrow(res), labels = rownames(res), las = 2)
arrows(
1:nrow(res),
res[, "LI"],
1:nrow(res),
res[, "LS"],
angle = 90,
code = 3,
length = 0.05
)
Pregunta 15. ¿Qué patrón encontró?
Respuesta: Respecto a las medias, encontramos que no hay una diferencia significativa entre las respuestas “sí” y “no”, pero es muy curioso como el intervalo de la respuesta “sí” es tan grande, mientras que el de “no”, es muy reducido. Pero al final, estos resultados nos muestran que, quienes NO perciben que el uso de las redes sociales haya generado dificultades con el resto de su vida, tienen una pequeña mayor satisfacción con su vida, sobre todo, respecto a la amplitud de los intervalos (los niveles de satisfacción relacionados con la respuesta “No”).
#saveRDS(base, "base_cdmx.rds")
Hasta ahora hemos examinado posibles relaciones entre satisfacción con la vida y:
Complete la siguiente tabla.
| Posible factor | Variable utilizada | ¿Qué patrón descriptivo observó? |
|---|---|---|
| Sexo | sexo_f |
|
| Curso de vida | grupo_edad |
|
| Salud | salud_f |
|
| Soledad | soledad_f |
|
| Capacidad económica | fin_mes_f |
|
| Confianza interpersonal | ||
| Variable propia |
Observe conjuntamente sus resultados y gráficas.
Redacte un comentario de 200 a 250 palabras que responda:
Interpretación final:
Seleccione una gráfica que considere especialmente interesante.
Prepare para compartir:
Finalmente responda:
¿Que dos intervalos de confianza se superpongan significa necesariamente que no existe una diferencia entre los grupos?
Por ahora no es necesario resolver formalmente esta pregunta. La retomaremos cuando estudiemos inferencia estadística.
Al terminar esta práctica deberá poder:
Nota metodológica: continuamos trabajando descriptivamente con los registros de la muestra de ENBIARE correspondientes a cada entidad. Los intervalos de confianza utilizados en esta práctica tienen una finalidad introductoria. Posteriormente incorporaremos el factor de expansión y el diseño complejo de la encuesta para realizar estimaciones poblacionales y estudiaremos formalmente la inferencia estadística.