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 == "03",]
base <- readRDS("base_bcs.rds")
# Comprobar
dim(base)
## [1] 938 275
table(base$CVE_ENT)
##
## 03
## 938
saveRDS(base, "base_bcs.rds")
Comience revisando el directorio actual.
getwd()
## [1] "/Users/pittalyth/Documents/estadistica 3/Ejercicios_bcs"
Defina ahora la carpeta en la que guardó la base correspondiente a su entidad.
setwd("/Users/pittalyth/Documents/estadistica 3/Ejercicios_bcs")
Compruebe qué archivos se encuentran en esa carpeta.
list.files()
## [1] "base_bcs.rds"
## [2] "enbiare_2025_fd.xlsx"
## [3] "nota_base_datos_enbiare_2025.txt"
## [4] "Practica__1_FCPyS_ENBIARE_construccion_variables.Rmd"
## [5] "TENBIARE.csv"
## [6] "THOGAR.csv"
## [7] "TSDEM.csv"
## [8] "TVIVIENDA.csv"
## [9] "Untitled.RData"
Pregunta 1. ¿Cuál es su directorio de trabajo?
Respuesta: /Users/pittalyth/Documents/estadistica 3/Ejercicios_bcs
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_bcs.rds")
Una vez leído el archivo, compruebe sus dimensiones.
dim(base)
## [1] 938 275
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:938] "08" "09" "09" "10" "10" "10" "08" "10" "07" "10" "10" "10" ...
table(base$PA1, useNA = "ifany")
##
## 00 02 03 04 05 06 07 08 09 10
## 2 2 4 4 33 31 73 209 170 410
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.738 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
## 938.000000 8.737740 8.640507 8.834972
table(base$SEXO, useNA = "ifany")
##
## 1 2
## 467 471
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
## 467 471
freq_sexo <- table(base$sexo_f)
freq_sexo
##
## Hombre Mujer
## 467 471
round(prop.table(freq_sexo) * 100, 1)
##
## Hombre Mujer
## 49.8 50.2
Complete:
| Sexo | n | % |
|---|---|---|
| Hombre | 467 | 49.8 |
| Mujer | 471 | 50.2 |
| Total | 938 | 100 |
tapply(
base$satisf_vida,
base$sexo_f,
mean,
na.rm = TRUE
)
## Hombre Mujer
## 8.740899 8.734607
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 467 8.74 8.61 8.88
## Mujer 471 8.73 8.59 8.88
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 semejantes y la amplitud de los intervalos es también semejante va desde en 8.6 al 8.88
EDAD es una variable cuantitativa. Revise primero su
distribución.
summary(base$EDAD)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 31.00 40.00 42.87 54.00 90.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+
## 212 334 234 124 34
round(prop.table(freq_edad) * 100, 1)
##
## 18-29 30-44 45-59 60-74 75+
## 22.6 35.6 24.9 13.2 3.6
Pregunta 5. ¿Cuál es el grupo más numeroso? ¿Cuál es el menos numeroso?
Respuesta: El más numeroso es el grupo de 30-44 con 35.6 y el menor es de 75+ con 3.6
Pregunta 6. ¿Qué ganamos y qué información perdemos al transformar la edad exacta en grupos de edad?
Respuesta: Logramos identificar frecuencias de edad pero perdemos información de edades específicas
grupos <- split(base$satisf_vida, base$grupo_edad)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## 18-29 212 8.76 8.57 8.95
## 30-44 334 8.69 8.52 8.87
## 45-59 234 8.86 8.69 9.03
## 60-74 124 8.68 8.38 8.98
## 75+ 34 8.41 7.75 9.08
plot(
1:nrow(res),
res[, "media"],
ylim = c(7.5, 9.5),
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: No se observa un patron en específico, el grupo de 75+ es considerablemente más amplio a los demás y lo podría explicar que los casos estén más dispersos entre sí
PB1 corresponde a salud autopercibida.
Primero revise las categorías originales.
table(base$PB1, useNA = "ifany")
##
## 1 2 3 4 5
## 5 31 225 443 234
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 31 225 443 234
round(prop.table(freq_salud) * 100, 1)
##
## Muy mala Mala Regular Buena Muy buena
## 0.5 3.3 24.0 47.2 24.9
Pregunta 8. ¿Cuál es la categoría de salud más frecuente?
Respuesta: La categoría más frecuente es “muy buena” con 234 casos y una frecuencia del 24.9%
grupos <- split(base$satisf_vida, base$salud_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Muy mala 5 4.60 0.07 9.13
## Mala 31 7.58 6.91 8.25
## Regular 225 8.27 8.06 8.48
## Buena 443 8.82 8.70 8.94
## Muy buena 234 9.27 9.10 9.44
plot(
1:nrow(res),
res[, "media"],
ylim = c(0, 10),
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: Parece aumentar progresivamente la satisfacción con la vida respecto a la 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
## 557 188 111 47 35
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
## 557 188 111
## La mayor parte del tiempo Todo el tiempo
## 47 35
round(prop.table(freq_soledad) * 100, 1)
##
## Nunca Pocas veces Algunas veces
## 59.4 20.0 11.8
## La mayor parte del tiempo Todo el tiempo
## 5.0 3.7
grupos <- split(base$satisf_vida, base$soledad_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Nunca 557 9.13 9.03 9.24
## Pocas veces 188 8.47 8.28 8.67
## Algunas veces 111 8.14 7.87 8.41
## La mayor parte del tiempo 47 7.68 7.04 8.33
## Todo el tiempo 35 7.14 6.33 7.96
plot(
1:nrow(res),
res[, "media"],
ylim = c(6, 9.5),
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: La satisfacción con la vida es menor conforme aumenta la 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
## 38 82 98 159 341 220
Pregunta 11. Escriba el significado de las
categorías de PC1.
Respuesta: Con qué dificultad puede llegar a fin de mes cubriendo sus gastos habituales
Construya ahora una variable factor utilizando las etiquetas verificadas en el descriptor.
base$fin_mes_f <- factor(
base$PC1,
levels = c(1:6),
labels = c("con mucha dificultad" ,
"con dificultad" ,
"con poca dificultad" ,
"con poca facilidad" ,
"con facilidad" ,
"con mucha facilidad"
)
)
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(7, 9.5),
xaxt = "n",
xlab = "Salud autopercibida",
ylab = "Satisfacción con la vida",
main = "Dificultad para llegar a fin de mes",
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: Se ve una progresión entre capacidad económica y satisfacción con la vida
PF1_1 se refiere a la confianza en la mayoría de la
gente.
Revise primero la variable.
str(base$PF1_1)
## chr [1:938] "05" "08" "05" "05" "05" "10" "07" "04" "01" "05" "03" "04" ...
table(base$PF1_1, useNA = "ifany")
##
## 00 01 02 03 04 05 06 07 08 09 10
## 120 41 47 79 65 197 103 122 116 28 20
Pregunta 13. De acuerdo con el descriptor, ¿cómo
está medida PF1_1?
Respuesta: En una progresión de 1-10
Antes de modificarla, piense:
¿Conviene conservar todos sus valores o agruparlos? En mi opinión, conviene no agruparlos para evitar perder información entre grupos colaterales.
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: No agruparlos
Justificación: No conviene agruparlos para evitar perder información entre grupos colaterales.
Construya la variable que utilizará, obtenga sus frecuencias absolutas y relativas y posteriormente calcule la satisfacción media y su IC95%.
base$confianza <- as.numeric(base$PF1_1)
freq_confianza <- table(base$PF1_1)
freq_confianza
##
## 00 01 02 03 04 05 06 07 08 09 10
## 120 41 47 79 65 197 103 122 116 28 20
round(prop.table(freq_confianza) * 100, 1)
##
## 00 01 02 03 04 05 06 07 08 09 10
## 12.8 4.4 5.0 8.4 6.9 21.0 11.0 13.0 12.4 3.0 2.1
grupos <- split(base$satisf_vida, base$PF1_1)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## 00 120 8.51 8.17 8.84
## 01 41 8.63 7.98 9.28
## 02 47 8.62 8.17 9.07
## 03 79 8.47 8.12 8.82
## 04 65 8.75 8.41 9.09
## 05 197 8.64 8.41 8.87
## 06 103 8.73 8.49 8.96
## 07 122 8.66 8.43 8.90
## 08 116 9.28 9.10 9.45
## 09 28 8.96 8.35 9.57
## 10 20 9.65 9.19 10.11
plot(
1:nrow(res),
res[, "media"],
ylim = c(6, 10),
xaxt = "n",
xlab = "Confianza",
ylab = "Satisfacción con la vida",
main = "Confianza",
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 14. ¿Qué relación descriptiva observa entre confianza interpersonal y satisfacción con la vida?
Respuesta: No se observa una relación clara
Seleccione una variable adicional de ENBIARE que considere que podría estar relacionada con la satisfacción con la vida. #Elejí comparar satisfacción con la vida y si se encuentra en una relación de pareja
Antes de analizarla complete:
#11.1 Revisar la variable original
table(base$PK1, useNA = "ifany")
##
## 1 2
## 590 348
base$pareja_f <- factor(
base$PK1,
levels = c(1, 2),
labels = c("Sí", "No")
)
table(base$pareja_f)
##
## Sí No
## 590 348
freq_PK1 <- table(base$pareja_f)
freq_PK1
##
## Sí No
## 590 348
round(prop.table(freq_PK1) * 100, 1)
##
## Sí No
## 62.9 37.1
tapply(
base$satisf_vida,
base$pareja_f,
mean,
na.rm = TRUE
)
## Sí No
## 8.854237 8.540230
Obtenga ahora media e IC95%.
grupos <- split(base$satisf_vida, base$pareja_f)
res <- t(sapply(grupos, IC_media))
round(res, 2)
## n media LI LS
## Sí 590 8.85 8.73 8.97
## No 348 8.54 8.38 8.70
plot(
1:nrow(res),
res[, "media"],
ylim = c(8, 10),
xaxt = "n",
xlab = "PK1",
ylab = "Satisfacción con la vida",
main = "Satisfacción con la vida según pareja",
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 15. ¿Qué patrón encontró?
Respuesta: Se observa una satisfacción con la vida más alta al tener pareja que al no tenerla, sin embargo no se sabe si es significativamente más alta.
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 observan semejantes |
| Curso de vida | grupo_edad |
No se observa un patron en específico |
| Salud | salud_f |
Parece aumentar progresivamente la satisfacción con la vida respecto a la salud autopercibida |
| Soledad | soledad_f |
La satisfacción con la vida es menor conforme aumenta la frecuencia de soledad |
| Capacidad económica | fin_mes_f |
Se observa un aumento de satisfacción con la vida a medidia que es más fácil llegar a fin de mes |
| Confianza interpersonal | confianza |
No hay una relación clara |
| Pareja | pareja_f |
Sí hay una relación |
Observe conjuntamente sus resultados y gráficas.
Redacte un comentario de 200 a 250 palabras que responda:
Interpretación final: Las variables que parecen ser más relacionales respecto a satisfacción con la vida son salud autopercibida, soledad y facilidad economica de llegar a fin de mes, las medias se parecen mucho en cuanto al sexo, podría plantearse que las variables económicas, de salud y relacionales impactan directamente en la satisfacción con la vida, el aspecto que yo considere (la pareja) no puede ser determinante solo con estas variables. La aproximación etnografica daria una persectiva más amplia sobre las causalidades, efectos y percepciones que tienen las personas sobre lo que vemos en estas variables cualitativas.
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? No necesariamente
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.