FORO 4

Analisis de una base de datos del examen de planea

Carga de la librerias

library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.2.1
## ✔ purrr     1.0.4     ✔ tidyr     1.3.1
## ✔ readr     2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)

Carga de la base de datos

file_path <- "PLANEA_062018_Resultados_de_Logro_Mat_20190109.xlsx"

Eleccion de la hoja de información

PLANEA_2018_Mat <- read_excel("PLANEA_062018_Resultados_de_Logro_Mat_20190109.xlsx", 
                              sheet = "15", range = "A7:H155", col_names = FALSE)
## New names:
## • `` -> `...1`
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`

Inspeccionar la estructura

head(PLANEA_2018_Mat)
## # A tibble: 6 × 8
##   ...1  ...2                                  ...3  ...4  ...5  ...6  ...7  ...8
##   <chr> <chr>                                <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 PMA_1 Calcular el área de triángulos.        594    35    34    26    26    45
## 2 PMA_2 Identificar el objeto dadas las coo…   554    40    40    29    24    50
## 3 PMA_3 Resolver problemas que implican con…   588    35    34    28    30    48
## 4 PMA_4 Resolver problemas que implican con…   548    43    42    32    29    51
## 5 PMA_5 Resolver problemas que implican una…   399    68    67    54    50    82
## 6 PMA_6 Resolver problemas que implican con…   564    39    38    37    38    46
names(PLANEA_2018_Mat) <- c("clave", "contenido_curricular", "dificultad", "global", "general_publica", "indigena", "comuntaria",   "privada") 
str(PLANEA_2018_Mat)
## tibble [149 × 8] (S3: tbl_df/tbl/data.frame)
##  $ clave               : chr [1:149] "PMA_1" "PMA_2" "PMA_3" "PMA_4" ...
##  $ contenido_curricular: chr [1:149] "Calcular el área de triángulos." "Identificar el objeto dadas las coordenadas." "Resolver problemas que implican conversiones entre unidades de capacidad del Sistema Internacional de Medidas, "| __truncated__ "Resolver problemas que implican conversiones entre unidades de peso del Sistema Internacional de Medidas, de un"| __truncated__ ...
##  $ dificultad          : num [1:149] 594 554 588 548 399 564 509 324 571 559 ...
##  $ global              : num [1:149] 35 40 35 43 68 39 49 80 39 41 ...
##  $ general_publica     : num [1:149] 34 40 34 42 67 38 48 80 38 40 ...
##  $ indigena            : num [1:149] 26 29 28 32 54 37 41 67 35 36 ...
##  $ comuntaria          : num [1:149] 26 24 30 29 50 38 43 65 36 40 ...
##  $ privada             : num [1:149] 45 50 48 51 82 46 65 89 45 48 ...

Seleccion la columna correcta con el porcentaje de respuestas correctas (“Global”)

PLANEA_2018_Mat_global <- PLANEA_2018_Mat %>% 
  select(global) %>%  
  rename(aciertos_correctos = global) %>%
  na.omit()  

Calcular estadísticas descriptivas

media <- mean(PLANEA_2018_Mat_global$aciertos_correctos)
mediana <- median(PLANEA_2018_Mat_global$aciertos_correctos)
moda <- as.numeric(names(sort(table(PLANEA_2018_Mat_global$aciertos_correctos), decreasing = TRUE)[1]))  # Moda
rango <- max(PLANEA_2018_Mat_global$aciertos_correctos) - min(PLANEA_2018_Mat_global$aciertos_correctos)
desviacion_estandar <- sd(PLANEA_2018_Mat_global$aciertos_correctos)
varianza <- var(PLANEA_2018_Mat_global$aciertos_correctos)

Mostrar resultados

cat("Media:", media, "\n")
## Media: 45.59864
cat("Mediana:", mediana, "\n")
## Mediana: 45
cat("Moda:", moda, "\n")
## Moda: 35
cat("Rango:", rango, "\n")
## Rango: 62
cat("Desviación Estándar:", desviacion_estandar, "\n")
## Desviación Estándar: 11.49607
cat("Varianza:", varianza, "\n")
## Varianza: 132.1597

Graficar histograma

ggplot(PLANEA_2018_Mat_global, aes(x = aciertos_correctos)) +
  geom_histogram(binwidth = 5, fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Distribución del Porcentaje de Respuestas Correctas",
       x = "Porcentaje de Respuestas Correctas",
       y = "Frecuencia") +
  theme_minimal()

# Graficar boxplot

ggplot(PLANEA_2018_Mat_global, aes(y = aciertos_correctos)) +
  geom_boxplot(fill = "red", color = "black") +
  labs(title = "Boxplot del Porcentaje de Respuestas Correctas",
       y = "Porcentaje de Respuestas Correctas") +
  theme_minimal()