library(e1071)
## Warning: package 'e1071' was built under R version 4.5.1
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.1
##
## Adjuntando el paquete: 'ggplot2'
## The following object is masked from 'package:e1071':
##
## element
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#leer los datos
datos = read.csv("DatosEquipo7_filtrado.csv")
datos$p34_2_bin = ifelse(datos$p34_2 %in% c(1), "Sí", "No")
datos$p34_3_bin = ifelse(datos$p34_3 %in% c(1), "Sí", "No")
va1 = subset(datos, p34_2_bin == "Sí")
va2 = subset(datos, p34_3_bin == "Sí")
decirsi = rbind(data.frame(grupo = "Sí_p34_2", p4 = va1$p4, p26 = va1$p26), data.frame(grupo = "Sí_p34_3", p4 = va2$p4, p26 = va2$p26))
# grafica de caja para minutos de lectura
boxplot(p26 ~ grupo, data = decirsi, main = "Minutos de lectura (p26): Sí_p34_2 vs Sí_p34_3", xlab = " ", ylab = "Minutos de lectura continua", col = c("blue", "green"))
# grafica de caja para Libros leidos por año
boxplot(p4 ~ grupo, data = decirsi, main = "Libros leídos (p4): Sí_p34_2 vs Sí_p34_3", xlab = " ", ylab = "Número de libros leídos", col = c("blue", "green"))
P26: Aproximadamente, ¿cuántos minutos continuos lee algún material
de lectura?
medidas_p26 = c(as.numeric(summary(datos$p26)),
(max(datos$p26)-min(datos$p26))/2,
sd(datos$p26),
mean(datos$p26)/sd(datos$p26),
skewness(datos$p26),
kurtosis(datos$p26))
m = data.frame(medidas_p26)
row.names(m) = c("Minimo","Q1","Mediana","Media","Q3","Máximo","Rango
Medio", "Desv Est", "CV", "Sesgo", "Curtosis")
round(m,2)
## medidas_p26
## Minimo 0.00
## Q1 0.00
## Mediana 20.00
## Media 26.78
## Q3 30.00
## Máximo 360.00
## Rango\nMedio 180.00
## Desv Est 32.71
## CV 0.82
## Sesgo 2.75
## Curtosis 14.25
P4: ¿Cuántos libros leyó en los últimos doce meses?
medidas_p4 = c(as.numeric(summary(datos$p4)),
(max(datos$p4)-min(datos$p4))/2,
sd(datos$p4),
mean(datos$p4)/sd(datos$p4),
skewness(datos$p4),
kurtosis(datos$p4))
m = data.frame(medidas_p4)
row.names(m) = c("Minimo","Q1","Mediana","Media","Q3","Máximo","Rango
Medio", "Desv Est", "CV", "Sesgo", "Curtosis")
round(m,2)
## medidas_p4
## Minimo 0.00
## Q1 0.00
## Mediana 0.00
## Media 1.27
## Q3 2.00
## Máximo 70.00
## Rango\nMedio 35.00
## Desv Est 3.26
## CV 0.39
## Sesgo 9.38
## Curtosis 143.56
nombres_p34 <- c("Blanco por pase", "Sí", "No", "No recuerda")
p34_2_factor <- factor(datos$p34_2, levels = 0:3, labels = nombres_p34)
p34_3_factor <- factor(datos$p34_3, levels = 0:3, labels = nombres_p34)
prop_p34_2 <- prop.table(table(p34_2_factor))
prop_p34_3 <- prop.table(table(p34_3_factor))
df_plot <- data.frame(
Respuesta = rep(nombres_p34, 2),
Proporcion = c(as.numeric(prop_p34_2), as.numeric(prop_p34_3)),
Pregunta = rep(c("p34_2", "p34_3"), each = length(nombres_p34))
)
ggplot(df_plot, aes(x = Respuesta, y = Proporcion, fill = Pregunta)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Comparación de proporciones entre p34_2 y p34_3",
x = "Respuesta", y = "Proporción") +
scale_y_continuous(labels = scales::percent_format()) +
scale_fill_manual(values = c("p34_2" = "blue", "p34_3" = "green")) + # Colores personalizados
theme_classic()
nombres_p30=c("Blanco por pase","Poco","Medio","Mayor parte","Completo")
p30_factor <- factor(datos$p30, levels = 0:4, labels = nombres_p30)
ggplot(datos, aes(x = p30_factor, fill = p34_2_factor)) +
geom_bar(position = "fill") +
coord_flip() +
labs(x = "Compresión lectora", y = "Proporción",
title = "¿Veía a sus padres o tutores leer?",
fill = "Respuesta")
ggplot(datos, aes(x = p30_factor, fill = p34_3_factor)) +
geom_bar(position = "fill") +
coord_flip() +
labs(x = "Compresión lectora", y = "Proporción",
title = "¿Sus padres o tutores le leían?",
fill = "Respuesta")
nombres_p5=c("Blanco por pase","Trabajo","Estudio","Cultura/Estar al día","Gusto/Entretenimiento","Religión","Otro")
p5_factor <- factor(datos$p5, levels = 0:6, labels = nombres_p5)
ggplot(datos, aes(x = p5_factor, fill = p34_2_factor)) +
geom_bar(position = "fill") +
coord_flip() +
labs(x = "Motivo por leer libros", y = "Proporción",
title = "¿Veía a sus padres o tutores leer?",
fill = "Respuesta")
ggplot(datos, aes(x = p5_factor, fill = p34_3_factor)) +
geom_bar(position = "fill") +
coord_flip() +
labs(x = "Motivo por leer libros", y = "Proporción",
title = "¿Sus padres o tutores le leían?",
fill = "Respuesta")
table(datos$p34_2)
##
## 0 1 2 3
## 47 984 962 23
table(datos$p34_3)
##
## 0 1 2 3
## 47 666 1268 35
table(datos$p5)
##
## 0 1 2 3 4 5 6
## 1207 87 86 206 322 96 12
table(datos$p30)
##
## 0 1 2 3 4
## 666 60 212 775 303
library(ggplot2)
# Leer datos
D = read.csv("DatosEquipo7_filtrado.csv")
# Recodificar variables binarias
D$p34_2_bin = ifelse(D$p34_2 %in% c(2,3), "Sí", "No")
D$p34_3_bin = ifelse(D$p34_3 %in% c(2,3), "Sí", "No")
# Nivel de confianza
conf.level = 0.96
alpha = 1 - conf.level
z = qnorm(1 - alpha/2) # valor crítico z
niveles = unique(D$p30)
# Inicializar data frame para almacenar resultados
resultados = data.frame(
Nivel = character(),
Variable = character(),
Proporcion = numeric(),
IC_inf = numeric(),
IC_sup = numeric(),
stringsAsFactors = FALSE
)
# Calcular proporciones e intervalos manualmente
for (nivel in niveles) {
x_2 = sum(D$p34_2[D$p30 == nivel] == 1, na.rm = TRUE)
n_2 = sum(D$p30 == nivel, na.rm = TRUE)
p_2 = x_2 / n_2
error_2 = z * sqrt(p_2 * (1 - p_2) / n_2)
x_3 = sum(D$p34_3[D$p30 == nivel] == 1, na.rm = TRUE)
n_3 = n_2
p_3 = x_3 / n_3
error_3 = z * sqrt(p_3 * (1 - p_3) / n_3)
resultados = rbind(resultados,
data.frame(Nivel = nivel, Variable = "P34_2 (vio leer a padres)",
Proporcion = p_2, IC_inf = p_2 - error_2, IC_sup = p_2 + error_2),
data.frame(Nivel = nivel, Variable = "P34_3 (le leían de niño)",
Proporcion = p_3, IC_inf = p_3 - error_3, IC_sup = p_3 + error_3)
)
}
# Graficar horizontalmente
ggplot(resultados, aes(x = Nivel, y = Proporcion, color = Variable)) +
geom_point(position = position_dodge(width = 0.5), size = 3) +
geom_errorbar(aes(ymin = IC_inf, ymax = IC_sup), width = 0.2,
position = position_dodge(width = 0.5)) +
coord_flip() +
labs(title = "Intervalos de confianza (96%) por nivel de comprensión lectora",
x = "Nivel de comprensión lectora (P30)",
y = "Proporción de respuesta 'Sí'",
color = "Pregunta") +
theme_minimal()