1 Introducción

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.


2 Carga y limpieza de datos

# 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)

3 Visualizaciones Interactivas

3.1 1. Duración del video vs. Vistas

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.


3.2 2. Engagement según la duración del video

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.


3.3 3. Engagement según estado verificado

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.


3.4 4. Promedio de vistas por estado de baneo del autor

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.


4 Conclusión

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.