1. Introducción

En este informe se analiza la relación entre el año y el número de graduados en educación superior en Colombia, usando una regresión lineal simple.
Los datos provienen del portal de datos abiertos del gobierno.

2. Cargar paquetes y datos

# Instala los paquetes solo si no los tienes (descomenta si hace falta)
# install.packages("readr")
# install.packages("ggplot2")
# install.packages("dplyr")
# install.packages("scales")

library(readr)
library(ggplot2)
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(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
## 
##     col_factor
# Cargar los datos desde el archivo CSV
datos <- read_csv("graduados.csv", locale = locale(encoding = "ISO-8859-1"))
## Rows: 513900 Columns: 33
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (21): Institución.de.Educación.Superior.(IES), Principal.o.Seccional, Se...
## dbl (12): Código.de.la.Institución, IES.PADRE, ID.Sector.IES, ID.Caracter, C...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

3. Ver estructura del conjunto de datos

str(datos)
## spc_tbl_ [513,900 × 33] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Código.de.la.Institución               : num [1:513900] 1101 1101 1101 1101 1101 ...
##  $ IES.PADRE                              : num [1:513900] 1101 1101 1101 1101 1101 ...
##  $ Institución.de.Educación.Superior.(IES): chr [1:513900] "UNIVERSIDAD NACIONAL DE COLOMBIA" "UNIVERSIDAD NACIONAL DE COLOMBIA" "UNIVERSIDAD NACIONAL DE COLOMBIA" "UNIVERSIDAD NACIONAL DE COLOMBIA" ...
##  $ Principal.o.Seccional                  : chr [1:513900] "PRINCIPAL" "PRINCIPAL" "PRINCIPAL" "PRINCIPAL" ...
##  $ ID.Sector.IES                          : num [1:513900] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Sector.IES                             : chr [1:513900] "OFICIAL" "OFICIAL" "OFICIAL" "OFICIAL" ...
##  $ ID.Caracter                            : num [1:513900] 4 4 4 4 4 4 4 4 4 4 ...
##  $ Caracter.IES                           : chr [1:513900] "UNIVERSIDAD" "UNIVERSIDAD" "UNIVERSIDAD" "UNIVERSIDAD" ...
##  $ Código.del.departamento.(IES)          : chr [1:513900] "11" "11" "11" "11" ...
##  $ Departamento.de.domicilio.de.la.IES    : chr [1:513900] "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" ...
##  $ Código.del.Municipio.(IES)             : chr [1:513900] "11001" "11001" "11001" "11001" ...
##  $ Municipio.de.domicilio.de.la.IES       : chr [1:513900] "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" ...
##  $ Código.SNIES.del.programa              : num [1:513900] 3103 16947 16950 15 3 ...
##  $ Programa.Académico                     : chr [1:513900] "GEOGRAFIA" "ESPECIALIZACION EN DERECHO CONSTITUCIONAL" "ESPECIALIZACION EN INSTITUCIONES JURIDICO-PROCESALES" "TRABAJO SOCIAL" ...
##  $ ID.Nivel.Académico                     : num [1:513900] 1 2 2 1 1 2 2 1 2 1 ...
##  $ Nivel.Académico                        : chr [1:513900] "PREGRADO" "POSGRADO" "POSGRADO" "PREGRADO" ...
##  $ ID.Nivel.de.Formación                  : num [1:513900] 6 1 1 6 6 1 1 6 1 6 ...
##  $ Nivel.de.Formación                     : chr [1:513900] "UNIVERSITARIA" "ESPECIALIZACION" "ESPECIALIZACION" "UNIVERSITARIA" ...
##  $ ID.Metodología                         : num [1:513900] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Metodología                            : chr [1:513900] "PRESENCIAL" "PRESENCIAL" "PRESENCIAL" "PRESENCIAL" ...
##  $ ID.Área                                : chr [1:513900] "5" "5" "5" "5" ...
##  $ Área.de.Conocimiento                   : chr [1:513900] "CIENCIAS SOCIALES Y HUMANAS" "CIENCIAS SOCIALES Y HUMANAS" "CIENCIAS SOCIALES Y HUMANAS" "CIENCIAS SOCIALES Y HUMANAS" ...
##  $ Id_Nucleo                              : chr [1:513900] "562" "559" "559" "569" ...
##  $ Núcleo.Básico.del.Conocimiento.(NBC)   : chr [1:513900] "GEOGRAFIA  HISTORIA" "DERECHO Y AFINES" "DERECHO Y AFINES" "SOCIOLOGIA  TRABAJO SOCIAL Y AFINES" ...
##  $ Código.del.Departamento.(Programa)     : chr [1:513900] "11" "11" "11" "11" ...
##  $ Departamento.de.oferta.del.programa    : chr [1:513900] "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" ...
##  $ Código.del.Municipio.(Programa)        : chr [1:513900] "11001" "11001" "11001" "11001" ...
##  $ Municipio.de.oferta.del.programa       : chr [1:513900] "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" "BOGOTA DC" ...
##  $ ID.Sexo                                : num [1:513900] 2 2 2 2 2 1 2 2 2 2 ...
##  $ Sexo                                   : chr [1:513900] "MUJER" "MUJER" "MUJER" "MUJER" ...
##  $ Año                                    : num [1:513900] 2011 2009 2012 2012 2011 ...
##  $ Semestre                               : num [1:513900] 2 2 1 2 1 2 2 2 2 2 ...
##  $ Graduados                              : num [1:513900] 6 17 5 36 27 44 28 15 5 15 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Código.de.la.Institución = col_double(),
##   ..   IES.PADRE = col_double(),
##   ..   `Institución.de.Educación.Superior.(IES)` = col_character(),
##   ..   Principal.o.Seccional = col_character(),
##   ..   ID.Sector.IES = col_double(),
##   ..   Sector.IES = col_character(),
##   ..   ID.Caracter = col_double(),
##   ..   Caracter.IES = col_character(),
##   ..   `Código.del.departamento.(IES)` = col_character(),
##   ..   Departamento.de.domicilio.de.la.IES = col_character(),
##   ..   `Código.del.Municipio.(IES)` = col_character(),
##   ..   Municipio.de.domicilio.de.la.IES = col_character(),
##   ..   Código.SNIES.del.programa = col_double(),
##   ..   Programa.Académico = col_character(),
##   ..   ID.Nivel.Académico = col_double(),
##   ..   Nivel.Académico = col_character(),
##   ..   ID.Nivel.de.Formación = col_double(),
##   ..   Nivel.de.Formación = col_character(),
##   ..   ID.Metodología = col_double(),
##   ..   Metodología = col_character(),
##   ..   ID.Área = col_character(),
##   ..   Área.de.Conocimiento = col_character(),
##   ..   Id_Nucleo = col_character(),
##   ..   `Núcleo.Básico.del.Conocimiento.(NBC)` = col_character(),
##   ..   `Código.del.Departamento.(Programa)` = col_character(),
##   ..   Departamento.de.oferta.del.programa = col_character(),
##   ..   `Código.del.Municipio.(Programa)` = col_character(),
##   ..   Municipio.de.oferta.del.programa = col_character(),
##   ..   ID.Sexo = col_double(),
##   ..   Sexo = col_character(),
##   ..   Año = col_double(),
##   ..   Semestre = col_double(),
##   ..   Graduados = col_double()
##   .. )
##  - attr(*, "problems")=<externalptr>
head(datos)
## # A tibble: 6 × 33
##   Código.de.la.Instituc…¹ IES.PADRE Institución.de.Educa…² Principal.o.Seccional
##                     <dbl>     <dbl> <chr>                  <chr>                
## 1                    1101      1101 UNIVERSIDAD NACIONAL … PRINCIPAL            
## 2                    1101      1101 UNIVERSIDAD NACIONAL … PRINCIPAL            
## 3                    1101      1101 UNIVERSIDAD NACIONAL … PRINCIPAL            
## 4                    1101      1101 UNIVERSIDAD NACIONAL … PRINCIPAL            
## 5                    1101      1101 UNIVERSIDAD NACIONAL … PRINCIPAL            
## 6                    1101      1101 UNIVERSIDAD NACIONAL … PRINCIPAL            
## # ℹ abbreviated names: ¹​Código.de.la.Institución,
## #   ²​`Institución.de.Educación.Superior.(IES)`
## # ℹ 29 more variables: ID.Sector.IES <dbl>, Sector.IES <chr>,
## #   ID.Caracter <dbl>, Caracter.IES <chr>,
## #   `Código.del.departamento.(IES)` <chr>,
## #   Departamento.de.domicilio.de.la.IES <chr>,
## #   `Código.del.Municipio.(IES)` <chr>, …

4. Modelo de regresión lineal (por año consolidado)

# Agrupar por año y sumar el total de graduados
# Convertir texto a número si es necesario

datos <- datos %>% mutate(Graduados = as.numeric(Graduados))

# Resumir por año
datos_resumidos <- datos %>%
  group_by(Año) %>%
  summarise(Total_Graduados = sum(Graduados, na.rm = TRUE))

# Crear el modelo de regresión con datos resumidos
modelo <- lm(Total_Graduados ~ Año, data = datos_resumidos)
summary(modelo)
## 
## Call:
## lm(formula = Total_Graduados ~ Año, data = datos_resumidos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -48202 -27930   2129  27136  59775 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -43653289    2586422  -16.88 1.76e-12 ***
## Año             21855       1286   16.99 1.58e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33170 on 18 degrees of freedom
## Multiple R-squared:  0.9413, Adjusted R-squared:  0.938 
## F-statistic: 288.6 on 1 and 18 DF,  p-value: 1.578e-12

5. Gráfico del modelo

# Gráfico con línea ajustada y puntos por año

# Formato de ejes numéricos con separador de miles
ggplot(datos_resumidos, aes(x = Año, y = Total_Graduados)) +
  geom_point(color = "blue", size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "darkred", size = 1.5) +
  scale_y_continuous(labels = comma) +
  labs(title = "Evolución del Número de Graduados por Año",
       x = "Año",
       y = "Total de Graduados") +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold", hjust = 0.5, size = 16),
        axis.title = element_text(face = "bold", size = 12))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'

6. Conclusiones

El análisis estadístico evidencia una clara tendencia ascendente en el número de graduados en educación superior en Colombia durante los últimos años.
La regresión lineal aplicada sobre los totales anuales muestra un patrón de crecimiento constante, lo cual refleja el fortalecimiento del sistema educativo y el aumento en la cobertura universitaria.
El modelo, con un ajuste lineal significativo, permite concluir que el paso del tiempo ha influido de forma positiva en la formación profesional del país.
Este tipo de análisis no solo permite evaluar el comportamiento histórico, sino que también resulta útil para hacer proyecciones futuras, identificar posibles estancamientos y apoyar decisiones de política pública educativa basadas en evidencia.

7. ANOVA del modelo

anova(modelo)
## Analysis of Variance Table
## 
## Response: Total_Graduados
##           Df     Sum Sq    Mean Sq F value    Pr(>F)    
## Año        1 3.1764e+11 3.1764e+11  288.62 1.578e-12 ***
## Residuals 18 1.9810e+10 1.1005e+09                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Este análisis ANOVA permite confirmar estadísticamente la validez del modelo. El valor de p < 0.05 (extremadamente bajo) indica que existe una relación significativa entre el paso de los años y la cantidad total de graduados.

Recomendaciones Finales

  • Mantener actualizada esta base de datos anualmente para refinar el modelo.
  • Analizar en el futuro otras variables como nivel académico, regiones o áreas del conocimiento.
  • Usar este análisis para prever tendencias y preparar políticas públicas más efectivas.