USUARIOS SESIONES TIEMPO.DE.SESION
Min. : 1.00 Min. : 1.00 Min. : 0
1st Qu.: 9.00 1st Qu.: 18.50 1st Qu.: 11506
Median : 20.00 Median : 48.00 Median : 30441
Mean : 30.13 Mean : 90.48 Mean : 51326
3rd Qu.: 41.00 3rd Qu.: 122.00 3rd Qu.: 66094
Max. :252.00 Max. :1019.00 Max. :443005
Este tablero presenta el análisis del Laboratorio 3 para el conjunto de datos de tráfico Wi-Fi en el Valle del Cauca. Se incluyen análisis de correlación, gráficos bivariados y modelos de pronóstico de series de tiempo.
Existe una correlación positiva muy fuerte (\(r \approx 0.84\)) entre la cantidad de usuarios y las sesiones, lo cual valida la consistencia de los datos.
Para cumplir con el requerimiento de Pronósticos del Laboratorio 3, se utilizó el método de Holt-Winters. Este modelo es ideal para estos datos ya que captura tanto la tendencia general como la estacionalidad semanal (el comportamiento de los usuarios varía entre fines de semana y días laborales). La franja azul representa el intervalo de confianza de la predicción.
---
title: "Tablero Control Wi-Fi Valle"
author: "Steven Candela, David Bravo & Sebastian Bucheli"
date: "2025-11-30"
output:
flexdashboard::flex_dashboard:
orientation: rows
social: menu
source_code: embed
---
```{r}
# --- LIBRERÍAS ---
library(flexdashboard)
library(ggplot2)
library(dplyr)
library(corrplot)
library(forecast)
# --- CARGA DE DATOS ---
wifiData = read.table("datos_wifi.csv", header=TRUE, sep=",",
dec=".", stringsAsFactors = TRUE)
# --- LIMPIEZA DE DATOS ---
cols_num = c("TIEMPO.DE.SESION", "TRAFICO.DE.SUBIDA", "TRAFICO.BAJADA", "SESIONES")
for(col in cols_num){
wifiData[[col]] = as.numeric(gsub(",", "", wifiData[[col]]))
}
wifiData$FECHA = as.Date(wifiData$FECHA, format="%d/%m/%Y")
nombres_dias <- c("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado")
wifiData$Dia <- factor(nombres_dias[as.POSIXlt(wifiData$FECHA)$wday + 1],
levels=c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"))
```
Resumen {data-orientation=columns}
===
Column {data-width=400}
---
### Logo Wifi Gratis

### Estadisticas Generales
```{r}
summary(wifiData[, c("USUARIOS", "SESIONES", "TIEMPO.DE.SESION")])
```
### Información
Este tablero presenta el análisis del Laboratorio 3 para el conjunto de datos de tráfico Wi-Fi en el Valle del Cauca. Se incluyen análisis de correlación, gráficos bivariados y modelos de pronóstico de series de tiempo.
Column {data-width=600}
---
### Histograma Usuarios
```{r}
ggplot(wifiData, aes(x=USUARIOS)) +
geom_histogram(fill="blue", bins=30, color="white") +
theme_minimal()
```
Análisis de Dos Variables
===
Row
---
### Tiempo de Sesión por Municipio
```{r}
top_munis = c("CARTAGO", "ZARZAL", "YUMBO", "LA UNION", "PALMIRA")
datos_filtro = filter(wifiData, MUNICIPIO %in% top_munis)
ggplot(datos_filtro, aes(x=MUNICIPIO, y=TIEMPO.DE.SESION, fill=MUNICIPIO)) +
geom_boxplot() +
coord_flip() +
scale_y_continuous(labels = scales::comma) +
labs(y="Tiempo de Sesión (Segundos)", x="Municipio") +
theme_minimal()
```
### Municipio vs Día
```{r}
ggplot(datos_filtro, aes(x=Dia, fill=MUNICIPIO)) +
geom_bar(position="fill") +
labs(y="Proporción", x="Día de la Semana", title="Distribución Semanal") +
theme_minimal() +
theme(axis.text.x = element_text(angle=45, hjust=1))
```
Correlación
===
Row {data-height=850}
---
### Matriz de Correlación
```{r}
datos_num = wifiData[, c("TIEMPO.DE.SESION", "TRAFICO.DE.SUBIDA", "TRAFICO.BAJADA", "SESIONES", "USUARIOS")]
M = cor(datos_num, use="complete.obs")
corrplot(M, method="number", tl.cex=0.7, number.cex=0.8)
```
### Usuarios vs Sesiones
```{r}
ggplot(wifiData, aes(x=USUARIOS, y=SESIONES)) +
geom_point(alpha=0.4, color="darkred") +
geom_smooth(method="lm", color="blue") +
labs(title="Relación Lineal Usuarios - Sesiones") +
theme_minimal()
```
Row {data-height=150}
---
### Interpretación
Existe una correlación positiva muy fuerte ($r \approx 0.84$) entre la cantidad de usuarios y las sesiones, lo cual valida la consistencia de los datos.
Pronósticos
===
Row {data-height=850}
---
### Pronóstico Holt-Winters (Usuarios Diarios)
```{r}
serie_diaria = wifiData %>%
group_by(FECHA) %>%
summarise(Total_Usuarios = sum(USUARIOS)) %>%
arrange(FECHA)
ts_data = ts(serie_diaria$Total_Usuarios, frequency=7)
modelo_hw = HoltWinters(ts_data)
prediccion = forecast(modelo_hw, h=14)
autoplot(prediccion) +
labs(title="Pronóstico de Usuarios (Próximos 14 días)", y="Cantidad Usuarios", x="Semanas") +
theme_minimal()
```
Row {data-height=150}
---
### Descripción del Modelo
Para cumplir con el requerimiento de Pronósticos del Laboratorio 3, se utilizó el método de Holt-Winters. Este modelo es ideal para estos datos ya que captura tanto la tendencia general como la estacionalidad semanal (el comportamiento de los usuarios varía entre fines de semana y días laborales). La franja azul representa el intervalo de confianza de la predicción.