El presente análisis tiene como objetivo examinar el rendimiento de
los videos en TikTok utilizando herramientas de visualización
interactivas en R, principalmente ggplot2 y
plotly. Se busca identificar patrones en el engagement,
vistas, duración del video y otros factores, para entender qué tipo de
contenido tiene mejor recepción en esta red social.
# Librerías necesarias
library(tidyverse)
library(plotly)
library(lubridate)
# Cargar los datos (asegúrate de tener el archivo dataset.csv en el mismo directorio)
tiktok <- read_csv("tiktok_dataset.csv")
# Limpieza y transformación
tiktok_clean <- tiktok %>%
mutate(
views = as.numeric(video_view_count),
likes = as.numeric(video_like_count),
shares = as.numeric(video_share_count),
comments = as.numeric(video_comment_count),
duration = video_duration_sec,
engagement = (likes + comments + shares) / views
) %>%
filter(!is.na(views), views > 0)
grafico1 <- ggplot(tiktok_clean, aes(x = duration, y = views, color = engagement)) +
geom_point(alpha = 0.7) +
labs(title = "Duración del video vs. Vistas", x = "Duración (segundos)", y = "Vistas") +
theme_minimal()
ggplotly(grafico1)
Interpretación:
Este gráfico permite observar si existe alguna relación entre la
duración de los videos y el número de vistas que reciben. El color
representa el engagement, ayudando a identificar videos con alto
rendimiento relativo.
grafico2 <- ggplot(tiktok_clean, aes(x = duration, y = engagement)) +
geom_point(color = "steelblue", alpha = 0.6) +
labs(title = "Engagement según la duración del video", x = "Duración (segundos)", y = "Engagement") +
theme_minimal()
ggplotly(grafico2)
Interpretación:
Aquí se visualiza cómo varía el engagement dependiendo de la duración
del video. Se busca identificar si existe una duración “ideal” que
favorezca la interacción del público.
grafico3 <- ggplot(tiktok_clean, aes(x = verified_status, y = engagement, fill = verified_status)) +
geom_boxplot() +
labs(title = "Engagement según estado verificado", x = "¿Cuenta verificada?", y = "Engagement") +
theme_minimal()
ggplotly(grafico3)
Interpretación:
Este boxplot compara la interacción de cuentas verificadas versus no
verificadas. Permite identificar si la verificación otorga alguna
ventaja en términos de engagement.
grafico4_data <- tiktok_clean %>%
group_by(author_ban_status) %>%
summarise(prom_vistas = mean(views, na.rm = TRUE))
plot_ly(grafico4_data, x = ~author_ban_status, y = ~prom_vistas, type = "bar",
marker = list(color = "darkgreen")) %>%
layout(title = "Promedio de vistas según estado de baneo del autor",
xaxis = list(title = "Estado de baneo"), yaxis = list(title = "Promedio de vistas"))
Interpretación:
Este gráfico de barras muestra cómo el estado de baneo afecta el
rendimiento de los videos. Las cuentas sancionadas tienden a tener menos
vistas, lo que puede reflejar una penalización algorítmica.
A través de este análisis visual se concluye que:
Estas visualizaciones interactivas brindan una herramienta poderosa para creadores de contenido y analistas de redes sociales, facilitando decisiones basadas en datos reales de comportamiento en TikTok.