Este documento elabora las graficas y tablas para el reporte que se entregan a los colegios.

Preparación previa

Cargar datos y ordenarlos

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

Importar y ordenar datos

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

Chequeo de informacion global y desde el juego

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

Definir submuestras relevantes para el reporte

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)

Reporte

Descriptivas del juego en general

Estas primeras tablas y graficas describen elementos generales del juego.

Reporte de participación global

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

Reporte de participación por nivel

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>

Reporte de participación por curso y PIE

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

Indicadores descriptivos del juego

Clasificación de acuerdo a los resultados obtenidos:

  1. “No seleccionados”: Niños o niñas no elegidos por ninguno de sus pares para la entrega de estrellas.

  2. “Seleccionado pero no recibe estrellas”: Niños o niñas elegidos para jugar, pero que no recibieron estrellas por parte de sus pares.

  3. “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.

Subcategorías de estrellas

Dentro de los que reciben las estrellas, se definen las siguientes sub-categorías:

  1. “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.

  2. “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.

  3. “En media”

  4. “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.

  5. “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.

Indicadores y participación en PIE

La siguiente sección explora la condición de participar en PIE.

Descriptivos y participación 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.

PIE e hipótesis

Periferia

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

Centralidad

Redes

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