Contenido del Informe

  1. Introducción
  2. Importación de la base de datos
  3. Exploración inicial
  4. Estructura de las variables
  5. Codificación de variables
  6. Conversión a factor
  7. Factor ordenado
  8. Resumen de variables transformadas

1. Introducción

La presente actividad tiene como objetivo realizar una exploración y transformación inicial de la base de datos rendimiento acedemico de los estudiantes (Students Performance Dataset). Para ello,se realizará la importación de la base de datos, una exploración de su estructura y la identificación y transformación de diferentes tipos de variables utilizando R.

La base de datos original fue obtenida de la plataforma Kaggle: Students Performance Dataset en Kaggle

2. Importación de la base de datos

Para importar lainformación a R se utilizará el paquete readxl, que permite trabajar con archivos en formato Excel.

library(readxl)

estudiantes <- read_excel("Datos-Diplomado-expo.xlsx")

Una vez importada la información, se verificó que la base de datos se encuentre almacenada correctamente en el objeto estudiantes.

estudiantes
## # A tibble: 2,392 × 15
##    StudentID   Age Gender Ethnicity ParentalEducation StudyTimeWeekly   Absences
##        <dbl> <dbl>  <dbl>     <dbl>             <dbl> <chr>                <dbl>
##  1      1001    17      1         0                 2 1.98337228078547…        7
##  2      1002    18      0         0                 1 1540875605584670         0
##  3      1003    15      0         2                 3 421056976881226         26
##  4      1004    17      1         0                 3 1.00288294739582…       14
##  5      1005    17      1         0                 2 4.67249527297132…       17
##  6      1006    18      0         0                 1 8191218545250180         0
##  7      1007    15      0         1                 1 1.56016804746992…       10
##  8      1008    15      1         1                 4 1.5424496305808E…       22
##  9      1009    17      0         0                 0 4562007558047700         1
## 10      1010    16      1         0                 1 1.84444663630972…        0
## # ℹ 2,382 more rows
## # ℹ 8 more variables: Tutoring <dbl>, ParentalSupport <dbl>,
## #   Extracurricular <dbl>, Sports <dbl>, Music <dbl>, Volunteering <dbl>,
## #   GPA <chr>, GradeClass <chr>

3. Exploración inicial de la base de datos

Primeras observaciones

La función head() permite observar las primeras seis observaciones de la base de datos.

head(estudiantes)
## # A tibble: 6 × 15
##   StudentID   Age Gender Ethnicity ParentalEducation StudyTimeWeekly    Absences
##       <dbl> <dbl>  <dbl>     <dbl>             <dbl> <chr>                 <dbl>
## 1      1001    17      1         0                 2 1.98337228078547E…        7
## 2      1002    18      0         0                 1 1540875605584670          0
## 3      1003    15      0         2                 3 421056976881226          26
## 4      1004    17      1         0                 3 1.00288294739582E…       14
## 5      1005    17      1         0                 2 4.672495272971329…       17
## 6      1006    18      0         0                 1 8191218545250180          0
## # ℹ 8 more variables: Tutoring <dbl>, ParentalSupport <dbl>,
## #   Extracurricular <dbl>, Sports <dbl>, Music <dbl>, Volunteering <dbl>,
## #   GPA <chr>, GradeClass <chr>

Últimas observaciones

La función tail() permite visualizar las últimas seis observaciones de la base de datos.

tail(estudiantes)
## # A tibble: 6 × 15
##   StudentID   Age Gender Ethnicity ParentalEducation StudyTimeWeekly    Absences
##       <dbl> <dbl>  <dbl>     <dbl>             <dbl> <chr>                 <dbl>
## 1      3387    16      0         0                 2 1.38140207899833E…       14
## 2      3388    18      1         0                 3 1.06805546076943E…        2
## 3      3389    17      0         0                 1 7583217279598860          4
## 4      3390    16      1         0                 2 6.805499644680609…       20
## 5      3391    16      1         1                 0 1.24166526554838E…       17
## 6      3392    16      1         0                 2 1.78199074928852E…       13
## # ℹ 8 more variables: Tutoring <dbl>, ParentalSupport <dbl>,
## #   Extracurricular <dbl>, Sports <dbl>, Music <dbl>, Volunteering <dbl>,
## #   GPA <chr>, GradeClass <chr>

Nombres de las variables

La función names() permite identificar los nombres de las variables que conforman la base de datos.

names(estudiantes)
##  [1] "StudentID"         "Age"               "Gender"           
##  [4] "Ethnicity"         "ParentalEducation" "StudyTimeWeekly"  
##  [7] "Absences"          "Tutoring"          "ParentalSupport"  
## [10] "Extracurricular"   "Sports"            "Music"            
## [13] "Volunteering"      "GPA"               "GradeClass"

Dimensiones de la base de datos

La función dim() permite conocer el número de filas y columnas que contiene la base de datos.

dim(estudiantes)
## [1] 2392   15

La base de datos está conformada por 2.392 observaciones y 15 variables. Las observaciones corresponden a los estudiantes y las variables representan las diferentes características registradas para cada uno.

Clase del objeto

La función class() permite identificar la clase en la que R almacenó la base de datos.

class(estudiantes)
## [1] "tbl_df"     "tbl"        "data.frame"

El resultado indica que la base fue almacenada como un tibble, que corresponde a una estructura de datos similar a un data.frame, organizada en filas y columnas.

4. Estructura de las variables

la función str() para conocer la estructura interna de la base de datos, el número de observaciones, variables y, principalmente, el tipo de dato asignado a cada variable.

str(estudiantes)
## tibble [2,392 × 15] (S3: tbl_df/tbl/data.frame)
##  $ StudentID        : num [1:2392] 1001 1002 1003 1004 1005 ...
##  $ Age              : num [1:2392] 17 18 15 17 17 18 15 15 17 16 ...
##  $ Gender           : num [1:2392] 1 0 0 1 1 0 0 1 0 1 ...
##  $ Ethnicity        : num [1:2392] 0 0 2 0 0 0 1 1 0 0 ...
##  $ ParentalEducation: num [1:2392] 2 1 3 3 2 1 1 4 0 1 ...
##  $ StudyTimeWeekly  : chr [1:2392] "1.98337228078547E+16" "1540875605584670" "421056976881226" "1.00288294739582E+16" ...
##  $ Absences         : num [1:2392] 7 0 26 14 17 0 10 22 1 0 ...
##  $ Tutoring         : num [1:2392] 1 0 0 0 1 0 0 1 0 0 ...
##  $ ParentalSupport  : num [1:2392] 2 1 2 3 3 1 3 1 2 3 ...
##  $ Extracurricular  : num [1:2392] 0 0 0 1 0 1 0 1 0 1 ...
##  $ Sports           : num [1:2392] 0 0 0 0 0 0 1 0 1 0 ...
##  $ Music            : num [1:2392] 1 0 0 0 0 0 0 0 0 0 ...
##  $ Volunteering     : num [1:2392] 0 0 0 0 0 0 0 0 1 0 ...
##  $ GPA              : chr [1:2392] "2929195591667680" "3042914833436370" "0.1126022544661815" "2.05421813970294E+16" ...
##  $ GradeClass       : chr [1:2392] "2.0" "1.0" "4.0" "3.0" ...

Los resultados muestran que la mayoría de las variables fueron almacenadas como variables numéricas, y solo tres variables (StudyTimeWeekly, GPA y GradeClass) fueron guardadas como variables de tipo carácter o texto.

5. Codificación de variables

Codificar StudyTimeWeekly como número

Las variables StudyTimeWeekly y GPA están en formato texto, por lo que se codifican numéricamente.

estudiantes$StudyTimeWeekly_cod <- as.numeric(as.factor(estudiantes$StudyTimeWeekly))
estudiantes$GPA_cod <- as.numeric(as.factor(estudiantes$GPA))

6. Conversión a factor

Convertir variables categóricas a factor

las variables Gender y Ethnicity representan categorías, por lo que se convierten en factores para su análisis.

estudiantes$Gender <- as.factor(estudiantes$Gender)
estudiantes$Ethnicity <- as.factor(estudiantes$Ethnicity)

Se revisa su estructura y niveles para confirmar la conversión.

class(estudiantes$Gender)
## [1] "factor"
str(estudiantes$Gender)
##  Factor w/ 2 levels "0","1": 2 1 1 2 2 1 1 2 1 2 ...
levels(estudiantes$Gender)
## [1] "0" "1"
class(estudiantes$Ethnicity)
## [1] "factor"
str(estudiantes$Ethnicity)
##  Factor w/ 4 levels "0","1","2","3": 1 1 3 1 1 1 2 2 1 1 ...
levels(estudiantes$Ethnicity)
## [1] "0" "1" "2" "3"

7. Factor ordenado

Conversión de GradeClass a factor ordenado

La variable GradeClass contiene niveles académicos con un orden natural. Por ello se convierte en un factor ordenado.

estudiantes$GradeClass_ord<- factor(estudiantes$GradeClass,
                                    levels = c("1.0", "2.0", "3.0", "4.0"),ordered = TRUE)

Se verifica la estructura del nuevo factor.

class(estudiantes$GradeClass_ord)
## [1] "ordered" "factor"
str(estudiantes$GradeClass_ord)
##  Ord.factor w/ 4 levels "1.0"<"2.0"<"3.0"<..: 2 1 4 3 4 1 2 4 2 NA ...
levels(estudiantes$GradeClass_ord)
## [1] "1.0" "2.0" "3.0" "4.0"

Resumen de Variables Transformadas

Variable Original Tipo Final Operación Realizada
StudyTimeWeekly Numérico Codificación a números
GPA Numérico Codificación a números
Gender Factor Conversión a categorías
Ethnicity Factor Conversión a categorías
GradeClass Factor Ordenado Jerarquía ordinal