Resumen

Column

Logo Wifi Gratis

Estadisticas Generales

    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  

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

Histograma Usuarios

Análisis de Dos Variables

Row

Tiempo de Sesión por Municipio

Municipio vs Día

Correlación

Row

Matriz de Correlación

Usuarios vs Sesiones

Row

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

Pronóstico Holt-Winters (Usuarios Diarios)

Row

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.

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

![](wifiGratis.jpg)

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