title: “Taller 1 - Análisis de Datos” subtitle: “Diplomado de Análisis de Datos” author: “Brayan Gúzman - Diego Segura” date: “05 de octubre de 2026” output: html_document: toc: true toc_float: true number_sections: true code_folding: hide ——————

Introducción

El presente documento desarrolla el Taller 1 del Diplomado de Análisis de Datos, utilizando una base de datos relacionada con el impacto de las redes sociales en la vida de los estudiantes.

El objetivo es realizar una exploración de los datos, seleccionar variables numéricas y categóricas, obtener medidas estadísticas descriptivas, analizar relaciones entre variables mediante gráficos y correlaciones, y comparar el comportamiento del uso diario de las redes sociales según la plataforma principal utilizada.

1. Selección de la base de datos

La base de datos seleccionada corresponde a información relacionada con el impacto de las redes sociales en la vida de los estudiantes.

La base cumple con los requisitos establecidos para el desarrollo del taller, ya que contiene variables numéricas y categóricas.

Carga de la base de datos

library(readxl)
library(dplyr)
library(ggplot2)
library(GGally)
library(knitr)

# Cargamos la base de datos
datos <- read_xlsx(
  "C:/Users/leoxs/OneDrive/Escritorio/Diplomado/Segundo modulo/Expocición/Social_Media_Impact_Diego.xlsx"
)

Exploración inicial de la base de datos

Estructura y tipos de datos

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

La función str() permite identificar la estructura de la base de datos y determinar el tipo de cada una de las variables.

Primeras filas de la base de datos

head(datos)
## # A tibble: 6 × 16
##   Student_ID    Age Gender Academic_Level Primary_Platform Daily_Usage_Hours
##   <chr>       <dbl> <chr>  <chr>          <chr>                        <dbl>
## 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  
## 5 STU_2024004    17 Male   High School    LinkedIn                       3.3
## 6 STU_2024005    16 Male   High School    TikTok                         6.2
## # ℹ 10 more variables: Weekend_Extra_Hours <dbl>, Device_Type <chr>,
## #   Sleep_Duration_Hours <dbl>, Sleep_Quality_Score <dbl>,
## #   Late_Night_Usage <lgl>, Social_Comparison_Frequency <chr>,
## #   Perceived_Stress_Score <dbl>, Mental_Health_Index <dbl>,
## #   Academic_Performance_GPA <dbl>, Overall_Impact <chr>

La función head() permite observar las primeras filas de la base de datos y verificar que la información haya sido cargada correctamente.

Datos faltantes

colSums(is.na(datos))
##                  Student_ID                         Age 
##                           0                           0 
##                      Gender              Academic_Level 
##                           0                           0 
##            Primary_Platform           Daily_Usage_Hours 
##                           0                           0 
##         Weekend_Extra_Hours                 Device_Type 
##                           0                           0 
##        Sleep_Duration_Hours         Sleep_Quality_Score 
##                           0                           0 
##            Late_Night_Usage Social_Comparison_Frequency 
##                           0                           0 
##      Perceived_Stress_Score         Mental_Health_Index 
##                          46                           0 
##    Academic_Performance_GPA              Overall_Impact 
##                          85                           0

Este procedimiento permite identificar la cantidad de valores faltantes (NA) presentes en cada variable.

Resumen estadístico

summary(datos)
##      Student_ID        Age             Gender       Academic_Level
##  Length   :4500   Min.   :15.0   Length   :4500   Length   :4500  
##  N.unique :4500   1st Qu.:17.0   N.unique :   4   N.unique :   3  
##  N.blank  :   0   Median :19.0   N.blank  :   0   N.blank  :   0  
##  Min.nchar:  11   Mean   :18.7   Min.nchar:   4   Min.nchar:  11  
##  Max.nchar:  11   3rd Qu.:20.0   Max.nchar:  17   Max.nchar:  13  
##                   Max.   :26.0                                    
##                                                                   
##   Primary_Platform Daily_Usage_Hours Weekend_Extra_Hours    Device_Type  
##  Length   :4500    Min.   : 0.900    Min.   :0.000       Length   :4500  
##  N.unique :   7    1st Qu.: 3.400    1st Qu.:1.300       N.unique :   3  
##  N.blank  :   0    Median : 4.700    Median :1.800       N.blank  :   0  
##  Min.nchar:   6    Mean   : 5.296    Mean   :1.797       Min.nchar:   6  
##  Max.nchar:  11    3rd Qu.: 6.600    3rd Qu.:2.300       Max.nchar:  10  
##                    Max.   :14.000    Max.   :4.500                       
##                                                                          
##  Sleep_Duration_Hours Sleep_Quality_Score Late_Night_Usage
##  Min.   : 3.000       Min.   :1.000       Mode :logical   
##  1st Qu.: 6.000       1st Qu.:2.000       FALSE:1856      
##  Median : 6.800       Median :3.000       TRUE :2644      
##  Mean   : 6.701       Mean   :2.472                       
##  3rd Qu.: 7.500       3rd Qu.:3.000                       
##  Max.   :10.500       Max.   :5.000                       
##                                                           
##  Social_Comparison_Frequency Perceived_Stress_Score Mental_Health_Index
##  Length   :4500              Min.   : 0.00          Min.   :32.00      
##  N.unique :   5              1st Qu.: 9.00          1st Qu.:72.00      
##  N.blank  :   0              Median :13.00          Median :82.00      
##  Min.nchar:   5              Mean   :13.51          Mean   :79.87      
##  Max.nchar:  10              3rd Qu.:18.00          3rd Qu.:89.00      
##                              Max.   :40.00          Max.   :98.00      
##                              NAs    :46                                
##  Academic_Performance_GPA   Overall_Impact
##  Min.   :1.900            Length   :4500  
##  1st Qu.:3.200            N.unique :   3  
##  Median :3.460            N.blank  :   0  
##  Mean   :3.429            Min.nchar:   7  
##  3rd Qu.:3.720            Max.nchar:  10  
##  Max.   :4.000                            
##  NAs    :85

El resumen estadístico permite obtener una visión general de las variables numéricas y categóricas contenidas en la base.

1.1 Selección de variables

Para el desarrollo del taller se seleccionaron las siguientes variables:

Variables numéricas:

Variable categórica:

Se crea un nuevo conjunto de datos únicamente con estas variables.

datos_taller <- subset(
  datos,
  select = c(
    Daily_Usage_Hours,
    Perceived_Stress_Score,
    Academic_Performance_GPA,
    Primary_Platform
  )
)

# Eliminamos registros con datos faltantes
datos_taller <- na.omit(datos_taller)

# Dimensiones del conjunto de datos
dim(datos_taller)
## [1] 4369    4

A continuación se presentan las primeras observaciones del conjunto seleccionado:

head(datos_taller)
## # A tibble: 6 × 4
##   Daily_Usage_Hours Perceived_Stress_Score Academic_Performance_GPA
##               <dbl>                  <dbl>                    <dbl>
## 1               7.5                     20                     2.73
## 2               4.6                     17                     3.21
## 3              10.9                     18                     3   
## 4               6                       15                     3.42
## 5               3.3                     16                     3.41
## 6               6.2                     10                     3.21
## # ℹ 1 more variable: Primary_Platform <chr>

2. Análisis de una variable numérica

Para este análisis se seleccionó la variable:

Daily_Usage_Hours

Esta variable representa el número de horas diarias que los estudiantes dedican al uso de redes sociales.

Medidas estadísticas

x <- datos_taller$Daily_Usage_Hours

media <- mean(x)
mediana <- median(x)
varianza <- var(x)
desviacion <- sd(x)
cv <- (desviacion / media) * 100

cuantiles <- quantile(
  x,
  probs = c(0.25, 0.50, 0.75)
)

resultados <- data.frame(
  Medida = c(
    "Media",
    "Mediana",
    "Varianza",
    "Desviación estándar",
    "Coeficiente de variación (%)",
    "Primer cuartil (Q1)",
    "Mediana (Q2)",
    "Tercer cuartil (Q3)"
  ),
  Resultado = c(
    media,
    mediana,
    varianza,
    desviacion,
    cv,
    cuantiles[1],
    cuantiles[2],
    cuantiles[3]
  )
)

kable(
  resultados,
  digits = 2,
  caption = "Medidas estadísticas de Daily_Usage_Hours"
)
Medidas estadísticas de Daily_Usage_Hours
Medida Resultado
Media 5.30
Mediana 4.70
Varianza 6.80
Desviación estándar 2.61
Coeficiente de variación (%) 49.19
Primer cuartil (Q1) 3.40
Mediana (Q2) 4.70
Tercer cuartil (Q3) 6.60

Interpretación

La media representa el promedio de horas diarias de uso de redes sociales de los estudiantes.

La mediana corresponde al valor que divide la distribución en dos partes iguales. La comparación entre la media y la mediana permite identificar posibles diferencias en la distribución de los datos.

La varianza y la desviación estándar permiten medir la dispersión de las horas de uso alrededor de la media.

Por su parte, el coeficiente de variación expresa la variabilidad relativa de los datos en términos porcentuales.

Los cuartiles permiten dividir la distribución en cuatro partes y conocer la posición del 25 %, 50 % y 75 % de las observaciones.

Histograma

El histograma permite observar la distribución de las horas de uso diario de redes sociales y determinar en qué intervalos se concentra la mayor cantidad de observaciones.

Diagrama de caja y bigotes

El diagrama de caja permite identificar la mediana, los cuartiles y la dispersión de los datos, así como posibles valores atípicos.

3. Relación entre las variables numéricas

Para analizar la relación entre las variables numéricas se construyó una matriz de diagramas de dispersión acompañada de una matriz de correlaciones.

Las variables utilizadas fueron:

La variable Primary_Platform se utiliza para diferenciar las observaciones mediante colores.

Interpretación de resultados

A partir de la matriz de dispersión y correlación se pueden analizar las principales relaciones existentes entre las variables numéricas.

Relación entre horas de uso y estrés

Se observa una relación positiva entre las horas de uso diario de redes sociales y la puntuación de estrés percibido.

Esto significa que, a medida que aumentan las horas de uso diario, también tiende a aumentar la puntuación de estrés percibido.

Relación entre horas de uso y rendimiento académico

Se observa una relación negativa entre las horas de uso diario y el promedio académico.

En términos generales, los estudiantes con mayor cantidad de horas de uso de redes sociales tienden a presentar valores inferiores en su promedio académico.

Relación entre estrés y rendimiento académico

También se observa una relación negativa entre el estrés percibido y el rendimiento académico.

Esto indica que mayores niveles de estrés tienden a estar asociados con menores niveles de rendimiento académico.

Comportamiento según plataforma

Al utilizar Primary_Platform como variable de agrupación mediante colores, es posible observar el comportamiento de las diferentes plataformas dentro de las relaciones analizadas.

4. Análisis por plataforma

Para este punto se calcula el promedio de horas de uso diario, la desviación estándar y el número de usuarios para cada plataforma.

resumen_plataformas <- datos %>%
  group_by(Primary_Platform) %>%
  summarise(
    Media_Horas = mean(Daily_Usage_Hours, na.rm = TRUE),
    Desviacion_Estandar = sd(
      Daily_Usage_Hours,
      na.rm = TRUE
    ),
    Total_Usuarios = n(),
    .groups = "drop"
  )

kable(
  resumen_plataformas,
  digits = 2,
  caption = "Resumen estadístico del uso diario por plataforma"
)
Resumen estadístico del uso diario por plataforma
Primary_Platform Media_Horas Desviacion_Estandar Total_Usuarios
Instagram 5.26 2.54 1453
LinkedIn 5.27 2.40 96
Reddit 5.31 2.75 229
Snapchat 5.46 2.66 472
TikTok 5.33 2.68 1226
X (Twitter) 5.14 2.55 206
YouTube 5.25 2.58 818

Interpretación de los resultados

Los resultados muestran que el tiempo medio de uso diario es notablemente homogéneo entre las diferentes plataformas, ya que los valores se encuentran dentro de un rango relativamente estrecho.

La plataforma con el mayor tiempo medio de uso diario es Snapchat, con aproximadamente 5,46 horas, mientras que X (Twitter) presenta el menor promedio, con aproximadamente 5,14 horas.

Esta diferencia relativamente pequeña permite observar que los estudiantes consumen un volumen de tiempo diario similar, independientemente de cuál sea su plataforma principal.

Desviación estándar

La desviación estándar es relativamente alta y consistente entre las plataformas. Los valores oscilan aproximadamente entre 2,40 horas en LinkedIn, como valor mínimo, y 2,75 horas en Reddit, como valor máximo.

Esto indica que existe una variabilidad importante dentro de cada plataforma. Es decir, aunque el promedio de uso sea similar entre los grupos, existen usuarios con un consumo considerablemente menor y otros con un consumo mucho mayor.

Sin embargo, la dispersión se mantiene relativamente similar entre las diferentes plataformas.

Distribución de la muestra

Por último, se evidencia una concentración importante de la muestra entre algunas plataformas.

El tamaño de los grupos se encuentra desbalanceado, ya que dos categorías concentran aproximadamente el 60 % de las observaciones.

Instagram representa aproximadamente el 32,3 % de la muestra, mientras que TikTok representa cerca del 27,2 %, para una muestra total de 4.500 estudiantes.

Por otro lado, plataformas como Reddit, X (Twitter) y LinkedIn presentan una participación considerablemente menor y, en conjunto, representan menos del 12 % de la muestra.

Por lo tanto, aunque los promedios de uso diario son bastante similares entre plataformas, se debe tener en cuenta que el número de observaciones no es igual para todos los grupos. Esta diferencia en el tamaño de las categorías debe considerarse al momento de interpretar y comparar los resultados.

5. Comparación del uso diario por plataforma

Para comparar las horas de uso diario entre plataformas se construye un diagrama de caja.

Primero se convierte la variable Primary_Platform en factor.

datos$Primary_Platform <- factor(
  datos$Primary_Platform,
  levels = c(
    "Instagram",
    "LinkedIn",
    "Reddit",
    "Snapchat",
    "TikTok",
    "X (Twitter)",
    "YouTube"
  )
)

Boxplot por plataforma

Interpretación del diagrama de caja

El diagrama de caja (Boxplot) confirma visualmente las tendencias observadas en los resultados descriptivos del punto anterior.

En primer lugar, se observa que las medianas se encuentran alineadas aproximadamente alrededor de las 5 horas diarias. Esto demuestra visualmente que el usuario representativo dedica una cantidad de tiempo similar al uso de redes sociales, independientemente de cuál sea su plataforma principal.

En cuanto a la dispersión, las dimensiones y los límites de las cajas son bastante similares entre los diferentes grupos. Sin embargo, se observa que la categoría Reddit presenta una caja ligeramente más extendida y desplazada hacia valores superiores, lo que refleja una variabilidad un poco mayor en las horas de uso diario de sus usuarios.

Otro aspecto relevante corresponde a los valores atípicos, representados por los puntos ubicados fuera de las cajas.

Las plataformas con mayor presencia en la muestra, especialmente Instagram, TikTok y YouTube, presentan una mayor concentración visual de valores atípicos. Algunos de estos valores alcanzan aproximadamente 14 a 15 horas de uso diario, lo que representa usuarios con un consumo excepcionalmente alto de redes sociales.

En contraste, categorías con menor representación en la muestra, como LinkedIn, Reddit y X (Twitter), presentan una cantidad menor de valores atípicos visibles. Sin embargo, este comportamiento también debe interpretarse teniendo en cuenta que estas plataformas cuentan con un número considerablemente menor de observaciones.

En conjunto, el Boxplot confirma que el comportamiento central del uso diario es bastante similar entre las plataformas, mientras que las principales diferencias se encuentran en la dispersión y en la presencia de usuarios con niveles de consumo particularmente elevados.

5.1 Estadísticas descriptivas por plataforma

Como análisis adicional, se calculan diferentes medidas estadísticas para cada plataforma.

resumen_grupos <- datos %>%
  group_by(Primary_Platform) %>%
  summarise(
    Media = mean(
      Daily_Usage_Hours,
      na.rm = TRUE
    ),
    Mediana = median(
      Daily_Usage_Hours,
      na.rm = TRUE
    ),
    Q1 = quantile(
      Daily_Usage_Hours,
      0.25,
      na.rm = TRUE
    ),
    Q3 = quantile(
      Daily_Usage_Hours,
      0.75,
      na.rm = TRUE
    ),
    Desv_Est = sd(
      Daily_Usage_Hours,
      na.rm = TRUE
    ),
    N = n(),
    .groups = "drop"
  )

kable(
  resumen_grupos,
  digits = 2,
  caption = "Estadísticas descriptivas por plataforma"
)
Estadísticas descriptivas por plataforma
Primary_Platform Media Mediana Q1 Q3 Desv_Est N
Instagram 5.26 4.7 3.40 6.50 2.54 1453
LinkedIn 5.27 4.7 3.40 6.60 2.40 96
Reddit 5.31 4.8 3.20 6.90 2.75 229
Snapchat 5.46 4.7 3.60 6.62 2.66 472
TikTok 5.33 4.7 3.40 6.68 2.68 1226
X (Twitter) 5.14 4.6 3.20 6.57 2.55 206
YouTube 5.25 4.8 3.32 6.50 2.58 818

Esta tabla complementa el análisis gráfico y permite comparar de manera detallada el comportamiento del uso diario de redes sociales entre las diferentes plataformas.

Conclusiones

El análisis realizado permitió explorar diferentes características de una base de datos relacionada con el uso de redes sociales y su posible relación con variables académicas y de estrés.

En primer lugar, se seleccionaron tres variables numéricas y una variable categórica, cumpliendo con los requisitos establecidos para el taller.

El análisis descriptivo de Daily_Usage_Hours permitió conocer su comportamiento mediante medidas como la media, mediana, varianza, desviación estándar, coeficiente de variación y cuartiles.

Los gráficos de histograma y boxplot permitieron complementar el análisis estadístico y observar la distribución, dispersión y posibles valores atípicos.

Por otra parte, la matriz de dispersión y correlación permitió analizar las relaciones entre las horas de uso de redes sociales, el estrés percibido y el rendimiento académico. Los resultados sugieren que el aumento en las horas de uso está asociado con mayores niveles de estrés y con menores niveles de rendimiento académico.

El análisis por plataforma mostró que el tiempo promedio de uso diario es bastante homogéneo entre las diferentes redes sociales. Sin embargo, también se encontró una variabilidad considerable dentro de cada grupo, debido a la existencia de usuarios con niveles de consumo muy diferentes.

Finalmente, la comparación mediante el diagrama de caja permitió observar que las medianas se encuentran próximas a las cinco horas diarias y que las principales diferencias entre plataformas se relacionan con la dispersión de los datos y la presencia de valores atípicos.

En conjunto, los resultados muestran la utilidad de las herramientas de análisis estadístico y visualización de datos para identificar patrones y relaciones relevantes dentro de una base de datos.