1 Descaragr librerias

#Descargar librerias 
library(readxl)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

2 Llamar la ubicacion de la base de datos

#llamar la ubicacioin de la base de datos

setwd("C:/Users/leoxs/OneDrive/Escritorio/Diplomado/Segundo modulo/Expocición")

3 Nombrar la base de datos

A continuacion vamos nombrar la base de datos la cual de daremos como nombre “datos”, para lo cual insertamos el comando read.csv y luego llamamos el acceso de ruta de la base de datos.

Adicionalmete para mayor verasidad de la informacion a continuacion se agregara el link wed de la base de datos y paara mayor facilidad tambien se agregara el hipervinculo que dirige drectamente a la pagina web, el nombre del hipervinculo sera visitar kaggle.

Como la base de datos se encuentra en formato CSV, utilizamos la función read.csv() para realizar su importación.

4 Exploración inicial de la base de datos

La exploración inicial permite conocer las características generales de la base de datos y verificar cómo está organizada la información.

5 Comando head

#comando head
head(datos)
##    Student_ID Age Gender Academic_Level Primary_Platform Daily_Usage_Hours
## 1 STU_2024000  19 Female  Undergraduate         Snapchat               7.5
## 2 STU_2024001  19 Female  Undergraduate        Instagram               4.6
## 3 STU_2024002  17 Female    High School           TikTok              10.9
## 4 STU_2024003  16 Female    High School          YouTube               6.0
## 5 STU_2024004  17   Male    High School         LinkedIn               3.3
## 6 STU_2024005  16   Male    High School           TikTok               6.2
##   Weekend_Extra_Hours Device_Type Sleep_Duration_Hours Sleep_Quality_Score
## 1                 1.5  Smartphone                  5.9                   2
## 2                 1.3  Smartphone                  7.9                   3
## 3                 1.7  Smartphone                  5.2                   1
## 4                 2.3      Tablet                  7.6                   4
## 5                 2.6  Smartphone                  7.6                   4
## 6                 1.6  Smartphone                  5.9                   1
##   Late_Night_Usage Social_Comparison_Frequency Perceived_Stress_Score
## 1             True                      Always                     20
## 2             True                   Sometimes                     17
## 3             True                  Frequently                     18
## 4             True                   Sometimes                     15
## 5             True                       Never                     16
## 6            False                      Rarely                     10
##   Mental_Health_Index Academic_Performance_GPA Overall_Impact
## 1                  73                     2.73        Neutral
## 2                  90                     3.21     Beneficial
## 3                  70                     3.00        Neutral
## 4                  82                     3.42     Beneficial
## 5                  84                     3.41     Beneficial
## 6                  66                     3.21     Beneficial

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

6 Codigo tail

#codigo tail
tail(datos)
##       Student_ID Age Gender Academic_Level Primary_Platform Daily_Usage_Hours
## 4495 STU_2028494  16   Male    High School          YouTube               5.2
## 4496 STU_2028495  16   Male    High School          YouTube               5.8
## 4497 STU_2028496  19 Female  Undergraduate         LinkedIn               3.8
## 4498 STU_2028497  19   Male  Undergraduate        Instagram               7.7
## 4499 STU_2028498  16   Male    High School         LinkedIn               4.6
## 4500 STU_2028499  24   Male  Undergraduate        Instagram               1.8
##      Weekend_Extra_Hours Device_Type Sleep_Duration_Hours Sleep_Quality_Score
## 4495                 1.6  Smartphone                  5.7                   3
## 4496                 1.2  Smartphone                  7.8                   3
## 4497                 3.0  Smartphone                  6.6                   3
## 4498                 1.1  Smartphone                  6.0                   2
## 4499                 3.3   Laptop/PC                  7.1                   3
## 4500                 2.1  Smartphone                  6.8                   3
##      Late_Night_Usage Social_Comparison_Frequency Perceived_Stress_Score
## 4495             True                   Sometimes                     24
## 4496             True                   Sometimes                     11
## 4497            False                  Frequently                      9
## 4498             True                  Frequently                     13
## 4499            False                   Sometimes                     22
## 4500             True                  Frequently                     10
##      Mental_Health_Index Academic_Performance_GPA Overall_Impact
## 4495                  77                     3.31        Neutral
## 4496                  79                     2.85     Beneficial
## 4497                  83                     3.37     Beneficial
## 4498                  73                     3.16     Beneficial
## 4499                  87                     3.50     Beneficial
## 4500                  98                     3.73     Beneficial

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

7 Codigo names

#codigo names
names(datos)
##  [1] "Student_ID"                  "Age"                        
##  [3] "Gender"                      "Academic_Level"             
##  [5] "Primary_Platform"            "Daily_Usage_Hours"          
##  [7] "Weekend_Extra_Hours"         "Device_Type"                
##  [9] "Sleep_Duration_Hours"        "Sleep_Quality_Score"        
## [11] "Late_Night_Usage"            "Social_Comparison_Frequency"
## [13] "Perceived_Stress_Score"      "Mental_Health_Index"        
## [15] "Academic_Performance_GPA"    "Overall_Impact"

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

8 Codigo dim

dim(datos)
## [1] 4500   16

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

9 Codigo class

class(datos)
## [1] "data.frame"

La función class() permite conocer la clase general del objeto datos.

10 Codigo str

#codigo str
str(datos)
## 'data.frame':    4500 obs. of  16 variables:
##  $ Student_ID                 : chr  "STU_2024000" "STU_2024001" "STU_2024002" "STU_2024003" ...
##  $ Age                        : int  19 19 17 16 17 16 20 19 18 18 ...
##  $ Gender                     : chr  "Female" "Female" "Female" "Female" ...
##  $ Academic_Level             : chr  "Undergraduate" "Undergraduate" "High School" "High School" ...
##  $ Primary_Platform           : chr  "Snapchat" "Instagram" "TikTok" "YouTube" ...
##  $ Daily_Usage_Hours          : num  7.5 4.6 10.9 6 3.3 6.2 5.6 1.2 3.3 4.7 ...
##  $ Weekend_Extra_Hours        : num  1.5 1.3 1.7 2.3 2.6 1.6 1.8 2.4 1.8 1.7 ...
##  $ Device_Type                : chr  "Smartphone" "Smartphone" "Smartphone" "Tablet" ...
##  $ Sleep_Duration_Hours       : num  5.9 7.9 5.2 7.6 7.6 5.9 8.3 8.1 6.4 7.9 ...
##  $ Sleep_Quality_Score        : int  2 3 1 4 4 1 3 5 2 2 ...
##  $ Late_Night_Usage           : chr  "True" "True" "True" "True" ...
##  $ Social_Comparison_Frequency: chr  "Always" "Sometimes" "Frequently" "Sometimes" ...
##  $ Perceived_Stress_Score     : num  20 17 18 15 16 10 10 6 23 6 ...
##  $ Mental_Health_Index        : int  73 90 70 82 84 66 88 95 88 96 ...
##  $ Academic_Performance_GPA   : num  2.73 3.21 3 3.42 3.41 3.21 3.72 3.37 3.59 3.66 ...
##  $ Overall_Impact             : chr  "Neutral" "Beneficial" "Neutral" "Beneficial" ...

La función str() permite analizar la estructura de la base de datos y observar cómo R almacenó cada una de sus variables.

11 Codigo glimpse

#codigo glimpse
glimpse(datos)
## Rows: 4,500
## Columns: 16
## $ Student_ID                  <chr> "STU_2024000", "STU_2024001", "STU_2024002…
## $ Age                         <int> 19, 19, 17, 16, 17, 16, 20, 19, 18, 18, 15…
## $ Gender                      <chr> "Female", "Female", "Female", "Female", "M…
## $ Academic_Level              <chr> "Undergraduate", "Undergraduate", "High Sc…
## $ Primary_Platform            <chr> "Snapchat", "Instagram", "TikTok", "YouTub…
## $ Daily_Usage_Hours           <dbl> 7.5, 4.6, 10.9, 6.0, 3.3, 6.2, 5.6, 1.2, 3…
## $ Weekend_Extra_Hours         <dbl> 1.5, 1.3, 1.7, 2.3, 2.6, 1.6, 1.8, 2.4, 1.…
## $ Device_Type                 <chr> "Smartphone", "Smartphone", "Smartphone", …
## $ Sleep_Duration_Hours        <dbl> 5.9, 7.9, 5.2, 7.6, 7.6, 5.9, 8.3, 8.1, 6.…
## $ Sleep_Quality_Score         <int> 2, 3, 1, 4, 4, 1, 3, 5, 2, 2, 2, 2, 1, 5, …
## $ Late_Night_Usage            <chr> "True", "True", "True", "True", "True", "F…
## $ Social_Comparison_Frequency <chr> "Always", "Sometimes", "Frequently", "Some…
## $ Perceived_Stress_Score      <dbl> 20, 17, 18, 15, 16, 10, 10, 6, 23, 6, 11, …
## $ Mental_Health_Index         <int> 73, 90, 70, 82, 84, 66, 88, 95, 88, 96, 83…
## $ Academic_Performance_GPA    <dbl> 2.73, 3.21, 3.00, 3.42, 3.41, 3.21, 3.72, …
## $ Overall_Impact              <chr> "Neutral", "Beneficial", "Neutral", "Benef…

La función glimpse() permite observar de manera resumida los nombres, tipos y algunos valores de las variables.

12 Como codificar vriables

A continuación se seleccionarán dos variables categóricas que no se encuentran codificadas numéricamente y se transformarán sus categorías en valores numéricos.

12.1 Variable Device_type

A continuacion vamos a codificar la variable Device_Type, la cual dentro de la base de datos nos refleja el tipo de disposibo principal que el estudiante usa para ver sus redes sociales teniendo en total las siguientes tres categorias (smartphone, portátil/PC, tableta).

datos$Device_Type_Codificado <- ifelse(datos$Device_Type == "Smartphone", 1,
                             ifelse(datos$Device_Type == "Tablet", 2,
                             ifelse(datos$Device_Type == "Laptop/PC", 3, NA)))

names(datos)
##  [1] "Student_ID"                  "Age"                        
##  [3] "Gender"                      "Academic_Level"             
##  [5] "Primary_Platform"            "Daily_Usage_Hours"          
##  [7] "Weekend_Extra_Hours"         "Device_Type"                
##  [9] "Sleep_Duration_Hours"        "Sleep_Quality_Score"        
## [11] "Late_Night_Usage"            "Social_Comparison_Frequency"
## [13] "Perceived_Stress_Score"      "Mental_Health_Index"        
## [15] "Academic_Performance_GPA"    "Overall_Impact"             
## [17] "Device_Type_Codificado"
class(datos$Device_Type_Codificado)
## [1] "numeric"
str(datos$Device_Type_Codificado)
##  num [1:4500] 1 1 1 2 1 1 1 1 1 1 ...

La codificación realizada es la siguiente:

Categoría Código
Smartphone 1
Tablet 2
Laptop/PC 3

Para comprobar los valores obtenidos se utiliza la función table():

table(datos$Device_Type_Codificado, useNA = "ifany")
## 
##    1    2    3 
## 3775  129  596

12.2 Variable Late_Night_Usage

A acontuniacion vamos a codificar la varibales Late_Night_Usage, la cual dentro de la base de datos nos refleja si el estudiante frecunta el uso de pantallas despues de la media noche, teniendo las sigueintes dos categorias (falso y verdadero).

datos$Late_Night_Usage_Codificada <- ifelse(datos$Late_Night_Usage == "True", 1,
                                            ifelse(datos$Late_Night_Usage == "False", 2, NA))

names(datos)
##  [1] "Student_ID"                  "Age"                        
##  [3] "Gender"                      "Academic_Level"             
##  [5] "Primary_Platform"            "Daily_Usage_Hours"          
##  [7] "Weekend_Extra_Hours"         "Device_Type"                
##  [9] "Sleep_Duration_Hours"        "Sleep_Quality_Score"        
## [11] "Late_Night_Usage"            "Social_Comparison_Frequency"
## [13] "Perceived_Stress_Score"      "Mental_Health_Index"        
## [15] "Academic_Performance_GPA"    "Overall_Impact"             
## [17] "Device_Type_Codificado"      "Late_Night_Usage_Codificada"
class(datos$Late_Night_Usage_Codificada)
## [1] "numeric"
str(datos$Late_Night_Usage_Codificada)
##  num [1:4500] 1 1 1 1 1 2 2 2 2 2 ...

La codificación realizada es la siguiente:

Categoría Código
True 1
False 2

Para comprobar los valores obtenidos se utiliza la función table():

table(datos$Late_Night_Usage_Codificada, useNA = "ifany")
## 
##    1    2 
## 2644 1856

13 Convertir variables categoricas a tipo factor

Las variables categóricas pueden convertirse a tipo factor, permitiendo que R las reconozca como categorías.

13.1 Variable Gender

A continuacion vamos a canvertir la varibale Gender, la cual es de tipo categorica a una tipo factor.

datos$Gender_Factor <- factor(datos$Gender)
class(datos$Gender_Factor)
## [1] "factor"
str(datos$Gender_Factor)
##  Factor w/ 4 levels "Female","Male",..: 1 1 1 1 2 2 2 1 1 1 ...
levels(datos$Gender_Factor)
## [1] "Female"            "Male"              "Non-Binary"       
## [4] "Prefer not to say"

La función levels() permite observar las categorías que contiene la variable Gender_Factor.

13.2 Variable Device_Type

A continuacion vamos a canvertir la varibale Device_Type, la cual es de tipo categorica a una tipo factor.

datos$Device_Type_Factor <- factor(datos$Device_Type)
class(datos$Device_Type_Factor)
## [1] "factor"
str(datos$Device_Type_Factor)
##  Factor w/ 3 levels "Laptop/PC","Smartphone",..: 2 2 2 3 2 2 2 2 2 2 ...
levels(datos$Device_Type_Factor)
## [1] "Laptop/PC"  "Smartphone" "Tablet"

La variable Device_Type_Factor ahora se encuentra almacenada como un factor y sus niveles corresponden a las diferentes categorías de dispositivo.

14 Factor ordenado

Una variable categórica que posee un orden natural puede convertirse en un factor ordenado. Para esta actividad se seleccionó la variable Academic_Level, debido a que sus categorías representan diferentes niveles académicos.

Las categorías encontradas en la base de datos son:

Estas categorías presentan un orden natural desde el nivel académico más básico hasta el más avanzado.

unique(datos$Academic_Level)
## [1] "Undergraduate" "High School"   "Postgraduate"

A continuación se convierte la variable Academic_Level en un factor ordenado:

datos$Academic_Level_Ordenado <- factor(
  datos$Academic_Level,
  levels = c("High School", "Undergraduate", "Postgraduate"),
  ordered = TRUE
)

Para comprobar que la variable fue convertida correctamente se utilizan las funciones class(), str() y levels():

class(datos$Academic_Level_Ordenado)
## [1] "ordered" "factor"
str(datos$Academic_Level_Ordenado)
##  Ord.factor w/ 3 levels "High School"<..: 2 2 1 1 1 1 2 2 2 2 ...
levels(datos$Academic_Level_Ordenado)
## [1] "High School"   "Undergraduate" "Postgraduate"

La variable Academic_Level_Ordenado ahora es un factor ordenado. El orden establecido es:

High School < Undergraduate < Postgraduate

Esto permite que R reconozca que existe una relación de orden entre las diferentes categorías académicas.

15 Elementos de Markdown utilizados

En este documento se utilizaron diferentes elementos trabajados mediante Markdown:

  1. Encabezados de diferentes niveles.
  2. Texto en negrita y cursiva.
  3. Enlaces hacia la fuente de la base de datos.
  4. Tablas elaboradas mediante Markdown.
  5. Listas numeradas.
  6. Listas con viñetas.

16 Representación gráfica de la clasificación de variables

A continuación se presenta la representación gráfica de la clasificación de las variables utilizadas en el análisis de la base de datos, mostrando su tipología estadística:

17 Conclusiones

La exploración inicial permitió conocer la estructura y las características generales de la base de datos mediante las funciones head(), tail(), names(), dim(), class(), str() y glimpse().

Posteriormente, se realizó la codificación numérica de dos variables categóricas, asignando valores numéricos a las diferentes categorías de Device_Type y Late_Night_Usage.

También se transformaron las variables Gender y Device_Type a tipo factor, permitiendo que R las reconozca correctamente como variables categóricas. Sus niveles fueron comprobados mediante las funciones class(), str() y levels().

Finalmente, se convirtió la variable Academic_Level en un factor ordenado. Para ello se estableció el orden High School, Undergraduate y Postgraduate, de acuerdo con la progresión natural de los niveles académicos.

Estas transformaciones permiten preparar la base de datos para posteriores análisis estadísticos y facilitan el manejo de las variables dentro del programa R.