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.
Comience revisando el directorio actual.
getwd()
## [1] "/Users/denise/Desktop/Metodologia/enbiare_2025_base_de_datos_csv"
Defina ahora la carpeta en la que guardó la base correspondiente a su entidad.
base <- readRDS("base_chis.rds")
setwd("/Users/denise/Desktop/Metodologia/enbiare_2025_base_de_datos_csv")
Compruebe qué archivos se encuentran en esa carpeta.
list.files()
## [1] "000010.png"
## [2] "base_chis.rds"
## [3] "base.rds"
## [4] "nota_base_datos_enbiare_2025.txt"
## [5] "Practica_1_ENAH_ENBIARE.html"
## [6] "Practica_1_ENAH_ENBIARE.Rmd"
## [7] "Practica_2_ENAH_ENBIARE.html"
## [8] "Practica_2_ENAH_ENBIARE.Rmd"
## [9] "Practica_3_ENAH_ENBIARE_construccion_variables.Rmd"
## [10] "Practica-1.RData"
## [11] "Primera Practica ENBIARE.R"
## [12] "rsconnect"
## [13] "TENBIARE.csv"
## [14] "THOGAR.csv"
## [15] "TSDEM.csv"
## [16] "TVIVIENDA.csv"
## [17] "Untitled.R"
Pregunta 1. ¿Cuál es su directorio de trabajo?
Respuesta: /Users/denise/Desktop/Metodologia/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_chis.rds")
Una vez leído el archivo, compruebe sus dimensiones.
dim(base)
## [1] 1020 276
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)
## num [1:1020] 10 8 8 8 7 9 10 7 10 10 ...
table(base$PA1, useNA = "ifany")
##
## 0 1 2 3 4 5 6 7 8 9 10
## 4 1 5 7 10 35 29 60 198 213 458
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.
## 0.000 8.000 9.000 8.747 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
## 1020.000000 8.747059 8.645451 8.848666
table(base$SEXO, useNA = "ifany")
##
## 1 2
## 493 527
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
## 493 527
freq_sexo <- table(base$sexo_f)
freq_sexo
##
## Hombre Mujer
## 493 527
round(prop.table(freq_sexo) * 100, 1)
##
## Hombre Mujer
## 48.3 51.7
Complete:
| Sexo | n | % |
|---|---|---|
| Hombre | 493 | 48.3% |
| Mujer | 527 | 51.7% |
| Total | 1020 | 100 |
tapply(
base$satisf_vida,
base$sexo_f,
mean,
na.rm = TRUE
)
## Hombre Mujer
## 8.868154 8.633776
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 493 8.87 8.73 9.00
## Mujer 527 8.63 8.48 8.78
plot(
1:nrow(res),
res[, "media"],
ylim = c(6.5, 9.5),
xaxt = "n",
xlab = "Sexo",
ylab = "Satisfacción con la vida",
main = "Gráfica 1. Satisfacción con la vida según sexo.
Chiapas, 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 semejantes y los intervalos se cruzan por .05 puntos.
EDAD es una variable cuantitativa. Revise primero su
distribución.
summary(base$EDAD)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 32.00 45.00 46.22 59.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
## 16 21 21 17 21 12 15 22 20 10 21 19 19 16 19 16 27 17 17 22 14 16 19 18 20 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
## 15 25 15 26 18 15 20 14 21 20 17 21 16 19 16 18 15 16 16 12 15 17 9 16 9 10
## 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 92 94 99
## 12 10 5 12 7 9 4 5 6 9 11 3 1 4 4 3 2 1 1 1 1 2
Ahora construiremos grupos de edad.
base$grupo_edad <- cut(
base$EDAD,
breaks = c(17, 29, 44, 59, 74, 94),
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+
## 215 276 281 181 65
round(prop.table(freq_edad) * 100, 1)
##
## 18-29 30-44 45-59 60-74 75+
## 21.1 27.1 27.6 17.8 6.4
Pregunta 5. ¿Cuál es el grupo más numeroso? ¿Cuál es el menos numeroso?
Respuesta: El grupo de 45 a 59 años de edad es el más numeroso, con 27-7 % de representación.
Pregunta 6. ¿Qué ganamos y qué información perdemos al transformar la edad exacta en grupos de edad?
Respuesta: Ganamos una forma más sencilla de organizar, resumir y comparar las edades, porque podemos observar rápidamente cuántas personas pertenecen a cada grupo. Sin embargo, perdemos precisión, ya que dejamos de conocer la edad exacta de cada persona y las diferencias que existen dentro de un mismo grupo.
grupos <- split(base$satisf_vida, base$grupo_edad)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## 18-29 215 8.96 8.77 9.14
## 30-44 276 8.86 8.69 9.03
## 45-59 281 8.67 8.46 8.87
## 60-74 181 8.62 8.36 8.88
## 75+ 65 8.26 7.68 8.85
plot(
1:nrow(res),
res[, "media"],
ylim = c(6.5, 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 de edad.
Chiapas, 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 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: Podemos observar que conforme aumenta la edad va disminuyendo la satisfacción con la vida. Los intervalos se cruzan y no hay mucha diferencia entre la media de cada grupo.
PB1 corresponde a salud autopercibida.
Primero revise las categorías originales.
table(base$PB1, useNA = "ifany")
##
## 1 2 3 4 5
## 12 32 261 461 254
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
)
base$salud_4 <- factor(
ifelse(base$PB1 %in% c(1, 2), "Mala",
ifelse(base$PB1 == 3, "Regular",
ifelse(base$PB1 == 4, "Buena", "Muy buena"))),
levels = c("Mala", "Regular", "Buena", "Muy buena"),
ordered = TRUE
)
freq_salud <- table(base$salud_4)
freq_salud
##
## Mala Regular Buena Muy buena
## 44 261 461 254
round(prop.table(freq_salud) * 100, 1)
##
## Mala Regular Buena Muy buena
## 4.3 25.6 45.2 24.9
Pregunta 8. ¿Cuál es la categoría de salud más frecuente?
Respuesta: Buena, con 45.2%
grupos <- split(base$satisf_vida, base$salud_4)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Mala 44 6.64 5.73 7.55
## Regular 261 8.23 8.00 8.45
## Buena 461 8.94 8.82 9.06
## Muy buena 254 9.30 9.14 9.45
plot(
1:nrow(res),
res[, "media"],
ylim = c(6.5, 9.8),
xaxt = "n",
xlab = "Salud autopercibida",
ylab = "Satisfacción con la vida",
main = "Gráfica 3. Satisfacción con la vida según salud autopercibida.
Chiapas, 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í. Parece existir un gradiente positivo: conforme mejora la salud autopercibida, aumenta la satisfacción con la vida. La media pasa de 6.64 en quienes consideran su salud “mala” a 9.30 entre quienes la consideran “muy buena”. Esto sugiere una relación clara entre ambas variables.
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
## 586 212 112 59 51
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
## 586 212 112
## La mayor parte del tiempo Todo el tiempo
## 59 51
round(prop.table(freq_soledad) * 100, 1)
##
## Nunca Pocas veces Algunas veces
## 57.5 20.8 11.0
## La mayor parte del tiempo Todo el tiempo
## 5.8 5.0
grupos <- split(base$satisf_vida, base$soledad_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Nunca 586 9.05 8.93 9.17
## Pocas veces 212 8.69 8.51 8.87
## Algunas veces 112 8.11 7.80 8.41
## La mayor parte del tiempo 59 7.71 7.16 8.27
## Todo el tiempo 51 8.08 7.34 8.81
plot(
1:nrow(res),
res[, "media"],
ylim = c(6.5, 9.5),
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.
Chiapas, 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: Se observa que a mayor frecuencia de sensación de soledad, menor es la satisfacción con la vida. La satisfacción disminuye de 9.05 entre quienes nunca se sienten solos a 7.71 entre quienes se sienten solos la mayor parte del tiempo.
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
## 39 68 135 170 405 203
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"),
ordered = TRUE
)
Obtenga frecuencias absolutas y relativas.
freq_economia <- table(base$fin_mes_f)
freq_economia
round(prop.table(freq_economia) * 100, 1)
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)
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.5, 9.5),
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.
Chiapas, 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í, se observa un patrón: conforme aumenta la facilidad económica para llegar a fin de mes, también aumenta la satisfacción promedio con la vida. La media de satisfacción pasa de 7.64 entre quienes tienen mucha dificultad económica a 9.30 entre quienes tienen mucha facilidad.
PF1_1 se refiere a la confianza en la mayoría de la
gente.
Revise primero la variable.
str(base$PF1_1)
## chr [1:1020] "05" "04" "00" "07" "05" "05" "07" "08" "05" "07" "10" "00" ...
table(base$PF1_1, useNA = "ifany")
##
## 00 01 02 03 04 05 06 07 08 09 10
## 119 25 53 84 61 196 104 140 153 42 43
saveRDS(base, "base.rds")
Pregunta 13. De acuerdo con el descriptor, ¿cómo
está medida PF1_1?
Respuesta: Variable cuantitativa discreta, medida en una escala de 0 a 10, donde 0 representa “nada en absoluto” y 10 “completamente.
Los códigos son:
00 Nada en absoluto 01 - 09 Nivel de confianza 10 Completamente
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:
Agruparé los valores de PF1_1 en dos categorías: de 0 a 5 y de 6 a 10.
Justificación:
Se decidió agrupar los valores para facilitar la interpretación y comparación de los niveles de confianza interpersonal. El primer grupo (0–5) representa niveles de confianza nulos o bajos, mientras que el segundo grupo (6–10) representa niveles de confianza medios o altos. El punto de corte permite distinguir entre respuestas ubicadas en la mitad inferior y superior de la escala de 0 a 10, aunque este agrupamiento implica perder parte del detalle de las respuestas originales.
Construya la variable que utilizará, obtenga sus frecuencias absolutas y relativas y posteriormente calcule la satisfacción media y su IC95%.
base$confianza_f <- cut(
as.numeric(base$PF1_1),
breaks = c(-1, 5, 10),
labels = c("confianza baja", "confianza media/alta")
)
freq_confianza <- table(base$confianza_f)
freq_confianza
##
## confianza baja confianza media/alta
## 538 482
round(prop.table(freq_confianza) * 100, 1)
##
## confianza baja confianza media/alta
## 52.7 47.3
grupos <- split(base$satisf_vida, base$confianza_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## confianza baja 538 8.51 8.35 8.66
## confianza media/alta 482 9.01 8.89 9.13
Construya también la gráfica correspondiente.
plot(
1:nrow(res),
res[, "media"],
ylim = c(2.5, 8),
xaxt = "n",
xlab = "Confianza interpersonal",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según nivel de confianza interpersonal",
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: Se observa una relación descriptiva positiva entre la confianza interpersonal y la satisfacción con la vida. El grupo con confianza interpersonal baja presenta una satisfacción media con la vida de 2.99, mientras que el grupo con confianza media o alta presenta una media de 7.54. Por lo tanto, en estos datos, los niveles más altos de confianza interpersonal se relacionan con una mayor satisfacción con la vida. Esta relación es descriptiva y no permite establecer que una variable sea la causa de la otra.
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:
str(base$PD1)
## num [1:1020] 1 4 1 4 3 1 1 1 1 4 ...
table(base$PD1, useNA = "ifany")
##
## 1 2 3 4
## 524 41 81 374
base$ocupacion_f <- factor(
base$PD1,
levels = c(1, 2, 3, 4),
labels = c("empleo", "negocio", "por cuenta propia", "ninguna")
)
table(base$ocupacion_f)
##
## empleo negocio por cuenta propia ninguna
## 524 41 81 374
freq_ocupacion <- table(base$ocupacion_f)
freq_ocupacion
##
## empleo negocio por cuenta propia ninguna
## 524 41 81 374
round(prop.table(freq_ocupacion) * 100, 1)
##
## empleo negocio por cuenta propia ninguna
## 51.4 4.0 7.9 36.7
grupos <- split(base$satisf_vida, base$ocupacion_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## empleo 524 8.91 8.79 9.03
## negocio 41 8.83 8.36 9.30
## por cuenta propia 81 8.44 8.05 8.84
## ninguna 374 8.58 8.39 8.78
plot(
1:nrow(res),
res[, "media"],
ylim = c(4, 6.5),
xaxt = "n",
xlab = "Situación laboral",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según situación laboral. Chiapas, 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: Se observa que la satisfacción con la vida presenta medias muy similares entre las distintas situaciones laborales. Las medias van de 5.08 a 5.29, por lo que las diferencias son pequeñas. El grupo con negocio tiene la media más alta (5.29), mientras que el grupo que no tiene ninguna de las situaciones laborales consideradas presenta la media más baja (5.08). En estos datos no se observa un patrón marcado de diferencias en la satisfacción con la vida según la situación laboral.
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 |
Se observa una diferencia pequeña en la satisfacción media con la vida entre hombres y mujeres. |
| Curso de vida | grupo_edad |
Las medias de satisfacción con la vida presentan diferencias entre los grupos de edad. |
| Salud | salud_f |
Se observa una relación descriptiva entre la salud autopercibida y la satisfacción con la vida: los niveles de satisfacción varían según la percepción de salud. |
| Soledad | soledad_f |
La distribución de la satisfacción con la vida presenta diferencias según el nivel de soledad, observándose menor satisfacción en los grupos con mayor soledad. |
| Capacidad económica | fin_mes_f |
Se observa una relación descriptiva entre la capacidad económica y la satisfacción con la vida: los niveles de satisfacción varían según la facilidad o dificultad para llegar a fin de mes. |
| Confianza interpersonal | Se observa una diferencia descriptiva marcada: el grupo con confianza baja presenta una satisfacción media de 2.99, mientras que el grupo con confianza media/alta presenta una media de 7.54. | |
| Situación laboral | ocupacion_f | Se observan medias muy similares de satisfacción con la vida según la situación laboral, entre 5.08 y 5.29, por lo que las diferencias son pequeñas. |
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.