Este documento elabora las graficas y tablas para el reporte que se entregan a los colegios.
Cargar paquetes relevantes
#data wrangling
library(tidyverse)
library(readr)
library(janitor)
library(naniar)
library(webr)
library(vtable)
library(ggplot2)
#redes
library(igraph)
library(ggnetwork)
#para exportar tabla de datos a excel
#install.packages("writexl")
library("writexl")Para detalles revisar el notebook “importar y ordenar datos.Rmd” o directamente, correr el scrip resumido.
Los indicadores se calculan en base al notebook “indicadores.Rmd”
# Partir en limpio
rm(list = ls())
#(asignra carpeta)
#importar y formatear todas las carpetas relevantes
source('importar_cursos.R')
## Calcular indicadores
source("tablas_indicadores_individuales.R")
library(foreign)
write.dta(individual, "individual.dta")
write.dta(cursos, "curso.dta")
write.dta(juego_cursos, "juego_cursos_diadas.dta")
write_xlsx(individual, "individual.xlsx")
write_xlsx(cursos, "curso.xlsx")
write_xlsx(juego_cursos, "juego_cursos_diadas.xlsx")cursos %>%
left_join(participacion_global, by = c("colegio", "curso")) %>%
select(colegio, curso, total, aceptaron, n_j, jugaron, jugaron_j, no_jugaron_j) %>%
mutate (ok_aceptaron= ifelse(aceptaron==n_j, "OK", "Problema"), ok_jugaron= ifelse(aceptaron==n_j, "OK", "Problema"))## # A tibble: 8 x 10
## colegio curso total aceptaron n_j jugaron jugaron_j no_jugaron_j
## <chr> <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 0014 0013 16 14 14 12 12 2
## 2 0014 0017 27 27 27 20 20 7
## 3 0014 0018 32 31 31 26 26 5
## 4 0014 0019 21 20 20 14 14 6
## 5 0015 0020 36 30 30 18 19 11
## 6 0015 0021 37 25 25 17 17 8
## 7 0015 0022 39 35 35 26 26 9
## 8 0015 0023 36 31 31 23 23 8
## # … with 2 more variables: ok_aceptaron <chr>, ok_jugaron <chr>
Agregar a cursos total
cursos <- left_join(cursos, select(participacion_global, c(colegio, curso, total, aceptaron, jugaron)), by = c("colegio", "curso"))Identificar los cursos y colegios a incluir en los reportes. Solo correr el chunk correspondiente al reporte o, si se pasa a html ponerle true al correspondiente
lista_colegios= c("0015")
lista_cursos = c("0020","0021", "0022", "0023")
lista_named=c("1ero","2do", "3ero", "4to")Reportes:
Esta parte selecciona del total de sujetos del experimento, al colegio especificio para el cual hacemos el reporte.
reporte_cursos <- cursos %>% filter( cursos$curso %in% lista_cursos )
reporte_individual <- individual %>% filter( individual$curso %in% lista_cursos)Estas primeras tablas y graficas describen elementos generales del juego.
Reporte de participacion PPT
participacion <- reporte_cursos %>%
group_by(colegio) %>%
summarise( total = sum(total),
participaron=sum(aceptaron),
perc_participacion =( participaron / total)*100 ,
jugaron=sum(jugaron),
perc_jugaron =( jugaron / total)*100 ,
no_jugaron_j=sum(no_jugaron_j))
participacion## # A tibble: 1 x 7
## colegio total participaron perc_participaci… jugaron perc_jugaron no_jugaron_j
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0015 148 121 81.8 84 56.8 36
Este grafico presenta los resultados del juego agrupados por curso participante en el colegio.
Data <-reporte_cursos %>%
select(curso, total) %>%
left_join( reporte_individual, by="curso") %>%
group_by(nivel) %>%
summarise( total=mean(total),
participaron = n(),
perc_participacion =( participaron / total)*100 ,
jugaron = sum(jugo_D),
perc_jugaron =( jugaron / total)*100 ,
no_jugaron= participaron-jugaron,
perc_nojugaron =( no_jugaron / total)*100 ) %>%
ungroup()
Data## # A tibble: 4 x 8
## nivel total participaron perc_participacion jugaron perc_jugaron no_jugaron
## <fct> <dbl> <int> <dbl> <dbl> <dbl> <dbl>
## 1 1ero 36 30 83.3 19 52.8 11
## 2 2do 37 25 67.6 17 45.9 8
## 3 3ero 39 35 89.7 26 66.7 9
## 4 4to 36 31 86.1 23 63.9 8
## # … with 1 more variable: perc_nojugaron <dbl>
Este grafico presenta los resultados del juego agrupados por curso participante en el colegio y PIE. Esta es la tabla de la ppte
Reporte de participacion PPT
Data <- reporte_individual%>%
group_by(nivel, curso, clasificacion_diag) %>%
summarise( participaron = n(),
jugaron = sum(jugo_D),
no_jugaron= participaron-jugaron)%>%
ungroup() %>%
left_join( select(reporte_cursos, c(curso, total)), by="curso") %>%
group_by(nivel, clasificacion_diag) %>%
summarise( total_estudiantes = mean(total),
participaron = sum(participaron),
jugaron = sum(jugaron),
no_jugaron= sum(no_jugaron) )%>%
pivot_wider(names_from=clasificacion_diag, values_from = c(participaron, jugaron, no_jugaron) )## `summarise()` has grouped output by 'nivel', 'curso'. You can override using the `.groups` argument.
## `summarise()` has grouped output by 'nivel'. You can override using the `.groups` argument.
Data## # A tibble: 4 x 8
## # Groups: nivel [4]
## nivel total_estudiant… participaron_No participaron_PIE jugaron_No jugaron_PIE
## <fct> <dbl> <int> <int> <dbl> <dbl>
## 1 1ero 36 25 5 16 3
## 2 2do 37 21 4 14 3
## 3 3ero 39 29 6 23 3
## 4 4to 36 26 5 20 3
## # … with 2 more variables: no_jugaron_No <dbl>, no_jugaron_PIE <dbl>
Data <- reporte_cursos %>%
select(curso, total) %>%
left_join( reporte_individual, by="curso") %>%
group_by(nivel) %>%
summarise( total=mean(total),
participaron = n(),
jugaron = sum(jugo_D)) %>%
ungroup() %>%
left_join(
select( reporte_individual%>%
group_by(nivel, clasificacion_diag) %>%
summarise( participaron = n(),
jugaron = sum(jugo_D),
no_jugaron= participaron-jugaron)%>%
ungroup() %>%
pivot_wider(names_from=clasificacion_diag, values_from = c(participaron, jugaron, no_jugaron) ),
nivel, participaron_PIE, jugaron_PIE), by="nivel")## `summarise()` has grouped output by 'nivel'. You can override using the `.groups` argument.
head(Data)## # A tibble: 4 x 6
## nivel total participaron jugaron participaron_PIE jugaron_PIE
## <fct> <dbl> <int> <dbl> <int> <dbl>
## 1 1ero 36 30 19 5 3
## 2 2do 37 25 17 4 3
## 3 3ero 39 35 26 6 3
## 4 4to 36 31 23 5 3
Clasificación de acuerdo a los resultados obtenidos:
“No seleccionados”: Niños o niñas no elegidos por ninguno de sus pares para la entrega de estrellas.
“Seleccionado pero no recibe estrellas”: Niños o niñas elegidos para jugar, pero que no recibieron estrellas por parte de sus pares.
“Recibe estrellas”: Niños o niñas elegidos y que sí recibieron al menos una estrella por parte de sus pares.
Data <- reporte_individual %>%
group_by(nivel, factor_visibilidad) %>%
summarise( n = n()) %>%
group_by(nivel) %>%
mutate(suma=sum(n), perc=round(n/suma*100,2) ) %>%
complete(factor_visibilidad, fill = list(n=0, suma = 0, perc=0))## `summarise()` has grouped output by 'nivel'. You can override using the `.groups` argument.
Data## # A tibble: 12 x 5
## # Groups: nivel [4]
## nivel factor_visibilidad n suma perc
## <fct> <fct> <dbl> <dbl> <dbl>
## 1 1ero No elegido 0 0 0
## 2 1ero Sin estrellas 0 0 0
## 3 1ero Con estrellas 30 30 100
## 4 2do No elegido 0 0 0
## 5 2do Sin estrellas 0 0 0
## 6 2do Con estrellas 25 25 100
## 7 3ero No elegido 2 35 5.71
## 8 3ero Sin estrellas 1 35 2.86
## 9 3ero Con estrellas 32 35 91.4
## 10 4to No elegido 0 0 0
## 11 4to Sin estrellas 0 0 0
## 12 4to Con estrellas 31 31 100
PieDonut(Data, aes(nivel, factor_visibilidad, count=n),
title = "Resultados descriptivos del juego por curso",
pieLabelSize = 5,
donutLabelSize = 4,
showRatioThreshold = F,
labelposition = 1,
use.labels = T,
r1=0.9, r2=1.2, r0=0,
showPieName = FALSE
)## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
Dentro de los que reciben las estrellas, se definen las siguientes sub-categorías:
“En periferia”: Niños o niñas que reciben estrellas, pero que están bajo 1 desviación estándar en cantidad de la media de de elecciones o de estrellas recibidas en su curso.
“En periferia(+)”: Niños o niñas que reciben estrellas, pero que están bajo 2 desviaciones estándar en cantidad de la media de de elecciones o de estrellas o de recibidas en su curso.
“En media”
“Central”: Niños o niñas que reciben sobre 1 desviación estándar en cantidad de elecciones o cantidad del promedio de elecciones o de estrellas recibidas en su curso.
“Central +” : Niños o niñas que reciben sobre 2 desviación estándar en cantidad de elecciones o cantidad del promedio de elecciones o de estrellas recibidas en su curso.
Data <- reporte_individual %>%
group_by(nivel, subcategorias_elegidos) %>%
summarise( n = n()) %>%
group_by(nivel) %>%
mutate(suma=sum(n), perc=round(n/suma*100,2) ) %>%
complete(subcategorias_elegidos, fill = list(n=0, suma = 0, perc=0))## `summarise()` has grouped output by 'nivel'. You can override using the `.groups` argument.
Data## # A tibble: 20 x 5
## # Groups: nivel [4]
## nivel subcategorias_elegidos n suma perc
## <fct> <fct> <dbl> <dbl> <dbl>
## 1 1ero Periferia + 0 0 0
## 2 1ero Periferia 5 30 16.7
## 3 1ero En media 20 30 66.7
## 4 1ero Central 4 30 13.3
## 5 1ero Central + 1 30 3.33
## 6 2do Periferia + 0 0 0
## 7 2do Periferia 6 25 24
## 8 2do En media 15 25 60
## 9 2do Central 3 25 12
## 10 2do Central + 1 25 4
## 11 3ero Periferia + 0 0 0
## 12 3ero Periferia 4 35 11.4
## 13 3ero En media 26 35 74.3
## 14 3ero Central 3 35 8.57
## 15 3ero Central + 2 35 5.71
## 16 4to Periferia + 0 0 0
## 17 4to Periferia 5 31 16.1
## 18 4to En media 20 31 64.5
## 19 4to Central 6 31 19.4
## 20 4to Central + 0 0 0
PieDonut(Data, aes(nivel, subcategorias_elegidos, count=n),
title = "Resultados descriptivos del juego por curso",
pieLabelSize = 5,
donutLabelSize = 4,
showRatioThreshold = F,
labelposition = 1,
use.labels = T,
r1=0.9, r2=1.2, r0=0,
showPieName = FALSE
)## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
La siguiente sección explora la condición de participar en PIE.
Data <- reporte_individual %>%
group_by(clasificacion_diag, factor_visibilidad) %>%
summarise( n = n()) %>%
group_by(clasificacion_diag) %>%
mutate(suma=sum(n), perc=round(n/suma*100,2) ) %>%
complete(factor_visibilidad, fill = list(n=0, suma = 0, perc=0))## `summarise()` has grouped output by 'clasificacion_diag'. You can override using the `.groups` argument.
Data## # A tibble: 6 x 5
## # Groups: clasificacion_diag [2]
## clasificacion_diag factor_visibilidad n suma perc
## <chr> <fct> <dbl> <dbl> <dbl>
## 1 No No elegido 2 101 1.98
## 2 No Sin estrellas 1 101 0.99
## 3 No Con estrellas 98 101 97.0
## 4 PIE No elegido 0 0 0
## 5 PIE Sin estrellas 0 0 0
## 6 PIE Con estrellas 20 20 100
PieDonut(Data, aes(clasificacion_diag, factor_visibilidad, count=n),
title = "Resultados descriptivos del juego, pertenece a PIE",
pieLabelSize = 5,
donutLabelSize = 4,
showRatioThreshold = F,
labelposition = 1,
use.labels = T,
r1=0.9, r2=1.2, r0=0,
showPieName = FALSE
)## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
Data <- reporte_individual %>%
group_by(clasificacion_diag, subcategorias_elegidos) %>%
summarise( n = n()) %>%
group_by(clasificacion_diag) %>%
mutate(suma=sum(n), perc=round(n/suma*100,2) ) %>%
complete(subcategorias_elegidos, fill = list(n=0, suma = 0, perc=0))## `summarise()` has grouped output by 'clasificacion_diag'. You can override using the `.groups` argument.
head(Data)## # A tibble: 6 x 5
## # Groups: clasificacion_diag [2]
## clasificacion_diag subcategorias_elegidos n suma perc
## <chr> <fct> <dbl> <dbl> <dbl>
## 1 No Periferia + 0 0 0
## 2 No Periferia 16 101 15.8
## 3 No En media 66 101 65.4
## 4 No Central 15 101 14.8
## 5 No Central + 4 101 3.96
## 6 PIE Periferia + 0 0 0
PieDonut(Data, aes(clasificacion_diag, subcategorias_elegidos, count=n),
title = "Resultados descriptivos del juego, pertenece a PIE",
pieLabelSize = 5,
donutLabelSize = 4,
showRatioThreshold = F,
labelposition = 1,
use.labels = T,
r1=0.9, r2=1.2, r0=0,
showPieName = FALSE
)## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
Tabla de contingencia: está en la periferia o no recibe estrellas vs no está en la periferia.
table(reporte_individual$periferia, reporte_individual$clasificacion_diag )##
## No PIE
## 0 83 16
## 1 18 4
xtabs(freq ~ gender + handed) %>% addmargins()
Construir las redes y graficos relevantes
source("red_estrellas_elegidos.R")Redes de elección sin atributos
Guarda los plots a carpeta
Red con atributos