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] "C:/Users/MARIA TERESA/Desktop/PRÁCTICA R 2026/ARCHIVOS LIMPIOS - ITZEL"
Defina ahora la carpeta en la que guardó la base correspondiente a su entidad.
setwd("C:/Users/MARIA TERESA/Desktop/PRÁCTICA R 2026/ARCHIVOS LIMPIOS - ITZEL")
Compruebe qué archivos se encuentran en esa carpeta.
list.files()
## [1] "Ambiente_BaseSLP.RData"
## [2] "Avance práctica 3.Rmd"
## [3] "Base de Datos PROYECTO.csv"
## [4] "base slp rds.rds"
## [5] "Octubre 17"
## [6] "Octubre sábado 17"
## [7] "Practica 1 ENBIARE.R"
## [8] "Practica_1_ENAH_ENBIARE.html"
## [9] "Practica_1_ENAH_ENBIARE.Rmd"
## [10] "Practica_3_ENAH_ENBIARE_Casi_terminado.Rmd"
## [11] "Practica_3_ENAH_ENBIARE_construccion_variables.Rmd"
## [12] "rsconnect"
## [13] "Sesion 4 RStudio - ITZEL.R"
## [14] "Sesión 6 RStudio.R"
## [15] "TAREAS TERMINADAS"
## [16] "TENBIARE.csv"
## [17] "THOGAR.csv"
## [18] "TSDEM.csv"
## [19] "TVIVIENDA.csv"
Pregunta 1. ¿Cuál es su directorio de trabajo?
“C:/Users/MARIA TERESA/Desktop/PRÁCTICA R 2026/ARCHIVOS LIMPIOS - ITZEL”
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 slp rds.rds")
Una vez leído el archivo, compruebe sus dimensiones.
dim(base)
## [1] 1012 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:1012] 9 9 5 10 10 10 8 9 10 6 ...
table(base$PA1, useNA = "ifany")
##
## 0 1 2 3 4 5 6 7 8 9 10
## 7 1 4 3 8 50 42 74 251 196 376
Construya una variable numérica llamada satisf_vida.
class(base$PA1)
## [1] "numeric"
base$satisf_vida <- as.numeric(base$PA1)
summary(base$satisf_vida)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 8.0 9.0 8.5 10.0 10.0
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
## 1012.000000 8.500000 8.394043 8.605957
table(base$SEXO, useNA = "ifany")
##
## 1 2
## 483 529
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
## 483 529
freq_sexo <- table(base$sexo_f)
freq_sexo
##
## Hombre Mujer
## 483 529
round(prop.table(freq_sexo) * 100, 1)
##
## Hombre Mujer
## 47.7 52.3
Complete:
| Sexo | n | % |
|---|---|---|
| Hombre | 483 | 47.7 |
| Mujer | 529 | 52.3 |
| Total | 1012 | 100 |
483+529
## [1] 1012
tapply(
base$satisf_vida,
base$sexo_f,
mean,
na.rm = TRUE
)
## Hombre Mujer
## 8.598344 8.410208
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 483 8.60 8.46 8.74
## Mujer 529 8.41 8.25 8.57
plot(
1:nrow(res),
res[, "media"],
ylim = c(8, 9),
xaxt = "n",
xlab = "Sexo",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según sexo",
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 similares; sin embargo, el intervalo es mas amplio en el caso de las mujeres debido a mayor variacion de datos con respecto a la media, mientras que el de los hombres es mas preciso sin tanta variacion.
EDAD es una variable cuantitativa. Revise primero su
distribución.
summary(base$EDAD)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 33.00 44.00 46.29 60.00 96.00
Ahora construiremos grupos de edad.
base$grupo_edad <- cut(
base$EDAD,
breaks = c(17, 29, 44, 59, 74, Inf),
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+
## 196 328 228 195 65
round(prop.table(freq_edad) * 100, 1)
##
## 18-29 30-44 45-59 60-74 75+
## 19.4 32.4 22.5 19.3 6.4
Pregunta 5. ¿Cuál es el grupo más numeroso? ¿Cuál es el menos numeroso?
Respuesta: El grupo de 30 a 44 años de edad. El menos numeroso es el grupo de 75 y más años.
Pregunta 6. ¿Qué ganamos y qué información perdemos al transformar la edad exacta en grupos de edad?
Respuesta: Se gana unformidad en los datos, se pueden hacer análisis por grupos, se puede ver facilmente, la distribución de las observaciones. Se pierde individualidad de los datos.
grupos <- split(base$satisf_vida, base$grupo_edad)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## 18-29 196 8.79 8.59 8.98
## 30-44 328 8.74 8.58 8.90
## 45-59 228 8.39 8.16 8.61
## 60-74 195 8.10 7.83 8.38
## 75+ 65 8.02 7.40 8.63
plot(
1:nrow(res),
res[, "media"],
ylim = c(7, 10),
xaxt = "n",
xlab = "Grupo de edad",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según grupo de edad",
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: Los valores de satisfaccion con la vida tienden a disminuir con la edad. El grupo de 75+ tiene un intervalo considerablemente mas amplio, ya que puede haber variacion en los datos con respecto a la media y la estimacion tiene poca precision.
PB1 corresponde a salud autopercibida.
Primero revise las categorías originales.
table(base$PB1, useNA = "ifany")
##
## 1 2 3 4 5
## 5 42 309 475 181
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 42 309 475 181
round(prop.table(freq_salud) * 100, 1)
##
## Muy mala Mala Regular Buena Muy buena
## 0.5 4.2 30.5 46.9 17.9
Pregunta 8. ¿Cuál es la categoría de salud más frecuente?
Respuesta: La categoría más frecuente es la “buena”
grupos <- split(base$satisf_vida, base$salud_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Muy mala 5 8.00 5.68 10.32
## Mala 42 6.71 5.93 7.50
## Regular 309 8.11 7.90 8.32
## Buena 475 8.65 8.52 8.78
## Muy buena 181 9.20 9.00 9.41
plot(
1:nrow(res),
res[, "media"],
ylim = c(4, 11),
xaxt = "n",
xlab = "Salud autopercibida",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según salud autopercibida",
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í.
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
## 558 231 143 51 29
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
## 558 231 143
## La mayor parte del tiempo Todo el tiempo
## 51 29
round(prop.table(freq_soledad) * 100, 1)
##
## Nunca Pocas veces Algunas veces
## 55.1 22.8 14.1
## La mayor parte del tiempo Todo el tiempo
## 5.0 2.9
grupos <- split(base$satisf_vida, base$soledad_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Nunca 558 8.88 8.76 9.01
## Pocas veces 231 8.40 8.22 8.58
## Algunas veces 143 7.85 7.50 8.19
## La mayor parte del tiempo 51 7.06 6.48 7.64
## Todo el tiempo 29 7.72 6.71 8.74
plot(
1:nrow(res),
res[, "media"],
ylim = c(6, 10),
xaxt = "n",
xlab = "Frecuencia de soledad",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según frecuencia de soledad",
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: Las variables tienden a ser inversamente proporcionales, entre mayor satisfacción con la vida, menor frecuencia de soledad.
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
## 56 138 206 175 336 101
Pregunta 11. Escriba el significado de las
categorías de PC1.
Respuesta: PC1 representa la facilidad
o dificultad que tiene el hogar para llegar a fin de mes. En la
codificación propuesta, 1 corresponde a “con mucha dificultad” y 6 a
“con mucha facilidad”; conviene verificar las etiquetas en el descriptor
antes de interpretar los resultados.
Construya ahora una variable factor utilizando las etiquetas verificadas en el descriptor.
base$fin_mes_f <- factor(
base$PC1,
levels = 1:6,
labels = c(
"Con mucha dificultad",
"Con dificultad",
"Con poca dificultad",
"Con poca facilidad",
"Con facilidad",
"Con mucha facilidad"
),
ordered = TRUE
)
Obtenga frecuencias absolutas y relativas.
freq_economia <- table(base$fin_mes_f)
freq_economia
##
## Con mucha dificultad Con dificultad Con poca dificultad
## 56 138 206
## Con poca facilidad Con facilidad Con mucha facilidad
## 175 336 101
round(prop.table(freq_economia) * 100, 1)
##
## Con mucha dificultad Con dificultad Con poca dificultad
## 5.5 13.6 20.4
## Con poca facilidad Con facilidad Con mucha facilidad
## 17.3 33.2 10.0
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
## Con mucha dificultad 56 8.20 7.64 8.75
## Con dificultad 138 7.84 7.46 8.22
## Con poca dificultad 206 8.12 7.86 8.38
## Con poca facilidad 175 8.34 8.11 8.57
## Con facilidad 336 8.91 8.78 9.05
## Con mucha facilidad 101 9.25 9.00 9.49
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, 10),
xaxt = "n",
xlab = "Facilidad para llegar a fin de mes",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según bienestar economico",
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 12. ¿Observa algún patrón entre la capacidad económica y la satisfacción con la vida?
Respuesta: En general, se esperaría que las personas que reportan mayor facilidad para llegar a fin de mes también reporten mayor satisfacción con la vida. Hay que revisar las medias y sus intervalos para ver si ese patrón aparece en esta muestra.
PF1_1 se refiere a la confianza en la mayoría de la
gente.
Revise primero la variable.
str(base$PF1_1)
## chr [1:1012] "06" "06" "04" "08" "06" "05" "07" "08" "05" "02" "05" "03" ...
table(base$PF1_1, useNA = "ifany")
##
## 00 01 02 03 04 05 06 07 08 09 10
## 141 40 84 74 64 207 113 126 99 29 35
Pregunta 13. De acuerdo con el descriptor, ¿cómo
está medida PF1_1?
Respuesta: Es una variable cuantitativa medida en una escala de 0 a 10, donde 0 significa que no confía nada en la mayoría de la gente y 10 que confía 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: Conservar PF1_1 como
variable cuantitativa, en su escala original de 0 a 10.
Justificación: La escala ya es interpretable y agruparla implicaría perder información sobre las diferencias entre niveles de confianza.
base$confianza_f <- as.numeric(as.character(base$PF1_1))
freq_confianza <- table(base$confianza_f, useNA = "ifany")
freq_confianza
##
## 0 1 2 3 4 5 6 7 8 9 10
## 141 40 84 74 64 207 113 126 99 29 35
round(prop.table(freq_confianza) * 100, 1)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 13.9 4.0 8.3 7.3 6.3 20.5 11.2 12.5 9.8 2.9 3.5
grupos_confianza <- split(base$satisf_vida, base$confianza_f)
res_confianza <- t(sapply(grupos_confianza, IC_media))
round(res_confianza, 2)
## n media LI LS
## 0 141 8.26 7.87 8.64
## 1 40 9.12 8.74 9.51
## 2 84 8.20 7.80 8.60
## 3 74 8.20 7.77 8.63
## 4 64 8.16 7.69 8.62
## 5 207 8.52 8.30 8.73
## 6 113 8.42 8.12 8.71
## 7 126 8.56 8.34 8.79
## 8 99 9.12 8.85 9.39
## 9 29 8.97 8.58 9.35
## 10 35 8.54 7.82 9.26
cor(base$confianza_f, base$satisf_vida, use = "complete.obs")
## [1] 0.09546234
plot(
base$confianza_f, base$satisf_vida,
xlab = "Confianza en la mayoría de la gente (0 a 10)",
ylab = "Satisfacción con la vida (0 a 10)",
main = "Confianza interpersonal y satisfacción con la vida",
pch = 19
)
abline(lm(satisf_vida ~ confianza_f, data = base), lwd = 2)
Pregunta 14. ¿Qué relación descriptiva observa entre confianza interpersonal y satisfacción con la vida?
Respuesta: La confianza interpersonal puede presentar una relación positiva con la satisfacción con la vida: quienes confían más en otras personas podrían reportar, en promedio, mayor satisfacción. La gráfica permite observar si la tendencia es clara o débil; esto es descriptivo y no demuestra causalidad.
Seleccione una variable adicional de ENBIARE que considere que podría estar relacionada con la satisfacción con la vida.
Antes de analizarla complete:
PB2_2 (si está
disponible en la versión de la base).table(base$PB2_2, useNA = "ifany") y el descriptor de la
base.Ahora siga la misma secuencia utilizada durante la práctica:
if ("PB2_2" %in% names(base)) {
print(table(base$PB2_2, useNA = "ifany"))
base$apoyo_f <- factor(
base$PB2_2,
levels = c(1, 2, 9),
labels = c("Sí", "No", "No sabe")
)
freq_apoyo <- table(base$apoyo_f, useNA = "ifany")
print(freq_apoyo)
print(round(prop.table(freq_apoyo) * 100, 1))
grupos <- split(base$satisf_vida, base$apoyo_f)
res_apoyo <- t(sapply(grupos, IC_media))
print(round(res_apoyo, 2))
plot(
seq_len(nrow(res_apoyo)), res_apoyo[, "media"],
ylim = range(res_apoyo[, c("LI", "LS")], na.rm = TRUE),
xaxt = "n", xlab = "Disponibilidad de apoyo",
ylab = "Satisfacción con la vida",
main = "Satisfacción según apoyo social", pch = 19
)
axis(1, at = seq_len(nrow(res_apoyo)), labels = rownames(res_apoyo))
arrows(
seq_len(nrow(res_apoyo)), res_apoyo[, "LI"],
seq_len(nrow(res_apoyo)), res_apoyo[, "LS"],
angle = 90, code = 3, length = 0.05
)
} else {
message("PB2_2 no existe en esta versión de la base. Consulte names(base) y el descriptor para elegir otra variable.")
}
##
## 1 2 3
## 896 103 13
##
## Sí No No sabe <NA>
## 896 103 0 13
##
## Sí No No sabe <NA>
## 88.5 10.2 0.0 1.3
## Warning in qt(0.975, df = n - 1): Se han producido NaNs
## n media LI LS
## Sí 896 8.54 8.43 8.65
## No 103 8.23 7.87 8.59
## No sabe 0 NaN NaN NaN
Pregunta 15. ¿Qué patrón encontró?
Respuesta: Si la media de satisfacción es mayor entre quienes dicen contar con apoyo, el patrón sugeriría una asociación positiva entre redes de apoyo y bienestar. Si las medias son parecidas, la relación descriptiva sería débil en esta muestra. Hay que basar la conclusión final en la tabla que produzca el código.
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 |
Las medias parecen semejantes entre hombres y mujeres. |
| Curso de vida | grupo_edad |
La satisfacción parece disminuir con la edad; el grupo de 75+ tiene un intervalo más amplio. |
| Salud | salud_f |
Se espera mayor satisfacción en las categorías de mejor salud. |
| Soledad | soledad_f |
La satisfacción tiende a disminuir al aumentar la frecuencia de soledad. |
| Capacidad económica | fin_mes_f |
Se esperaría mayor satisfacción entre quienes llegan a fin de mes con más facilidad. |
| Confianza interpersonal | PF1_1 |
Revisar si la gráfica muestra una tendencia positiva entre confianza y satisfacción. |
| Variable propia | PB2_2 |
Comparar medias entre categorías de disponibilidad de apoyo social. |
Observe conjuntamente sus resultados y gráficas.
Redacte un comentario de 200 a 250 palabras que responda:
Interpretación final:
En esta muestra, la satisfacción con la vida podría variar según condiciones personales y sociales. La salud autopercibida, la soledad y la capacidad económica son dimensiones plausibles para mostrar diferencias: una mejor percepción de salud y mayor facilidad para llegar a fin de mes podrían acompañarse de mayor satisfacción, mientras que una mayor frecuencia de soledad podría asociarse con menor satisfacción. La edad también permite explorar posibles cambios a lo largo del curso de vida, aunque no debe asumirse que la satisfacción disminuye de manera uniforme en todos los grupos. Las diferencias por sexo podrían ser pequeñas, por lo que conviene comparar las medias y la amplitud de los intervalos antes de afirmarlo. La confianza interpersonal y la disponibilidad de apoyo pueden relacionarse con el bienestar porque forman parte de las redes sociales de las personas.
Estas relaciones son descriptivas: no permiten afirmar que una variable cause cambios en la satisfacción. Además, los intervalos amplios pueden indicar estimaciones menos precisas, por ejemplo, cuando hay pocos casos en una categoría o mucha variabilidad. La encuesta tampoco explica por sí sola cómo cada persona interpreta su bienestar, qué experiencias familiares o laborales influyen en él, ni qué significados culturales atribuye a la felicidad o a una vida satisfactoria. Entrevistas y observación etnográfica ayudarían a comprender esas experiencias y a matizar las tendencias estadísticas.
Seleccione una gráfica que considere especialmente interesante.
Prepare para compartir:
PB4).Finalmente responda:
¿Que dos intervalos de confianza se superpongan significa necesariamente que no existe una diferencia entre los grupos?
Respuesta: No necesariamente. La superposición visual de intervalos no demuestra que las medias sean iguales; para evaluar formalmente una diferencia se necesitarían métodos inferenciales adecuados.
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.