Analisis de una base de datos del examen de planea
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)
file_path <- "PLANEA_062018_Resultados_de_Logro_Mat_20190109.xlsx"
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`
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 ...
PLANEA_2018_Mat_global <- PLANEA_2018_Mat %>%
select(global) %>%
rename(aciertos_correctos = global) %>%
na.omit()
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)
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
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()