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()