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 ——————
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.
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.
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"
)
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.
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.
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.
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.
Para el desarrollo del taller se seleccionaron las siguientes variables:
Variables numéricas:
Daily_Usage_Hours: horas de uso diario de redes
sociales.Perceived_Stress_Score: puntuación de estrés
percibido.Academic_Performance_GPA: promedio académico.Variable categórica:
Primary_Platform: plataforma principal utilizada.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>
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.
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"
)
| 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 |
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.
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.
El diagrama de caja permite identificar la mediana, los cuartiles y la dispersión de los datos, así como posibles valores atípicos.
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:
Daily_Usage_HoursPerceived_Stress_ScoreAcademic_Performance_GPALa variable Primary_Platform se utiliza para diferenciar
las observaciones mediante colores.
A partir de la matriz de dispersión y correlación se pueden analizar las principales relaciones existentes entre las variables numéricas.
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.
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.
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.
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.
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"
)
| Primary_Platform | Media_Horas | Desviacion_Estandar | Total_Usuarios |
|---|---|---|---|
| 5.26 | 2.54 | 1453 | |
| 5.27 | 2.40 | 96 | |
| 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 |
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.
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.
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.
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"
)
)
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.
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"
)
| Primary_Platform | Media | Mediana | Q1 | Q3 | Desv_Est | N |
|---|---|---|---|---|---|---|
| 5.26 | 4.7 | 3.40 | 6.50 | 2.54 | 1453 | |
| 5.27 | 4.7 | 3.40 | 6.60 | 2.40 | 96 | |
| 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.
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.