Analítica avanzada y ciencia de datos aplicada

28.10.2026
Guía de repaso · Analítica avanzada y ciencia de datos aplicada

Guía de repaso del módulo

Diplomado en Business Intelligence e Inteligencia Artificial · CEC-EPN · 20 al 28 de octubre de 2026

Inicio

Resumen de consulta rápida del módulo, con la ruta que seguimos, la sintaxis en R que se fue acumulando, los conceptos que más se confunden y lo que se pidió en la evaluación final. Úsalo para repasar, no para copiar: tus cifras salen de tu provincia.

20 horas, 6 clases

Del 20 al 28 de octubre de 2026. Todo con datos reales: ENEMDU anual 2025, la provincia asignada a cada participante.

Una sola base, un solo script

Un mismo bloque de preparación y los mismos objetos de la clase 1 a la 6; cada clase suma pasos al mismo script.

Evaluación

Diagnóstica (0 puntos), cinco formativas de 10 puntos y un taller final de 50. Se aprueba con 70 y 80 % de asistencia.

La ruta en cinco pasos

1AuditarLimpieza, códigos especiales, atípicos
2DescribirMedia, mediana, CV, factor de expansión
3InferirIC, prueba t, correlación
4SegmentarK-means y perfiles
5Proyectar y decidirSerie mensual, KPIs, recomendación
Idea central: un análisis no termina en el número. Termina en una decisión, con su riesgo y con la honestidad de decir qué no se puede concluir.

Clase a clase

Qué vimos cada día y la idea que hay que llevarse.

Exploración y limpieza 20–21 oct

  • Descarga y lectura de la ENEMDU anual 2025 y selección de la provincia.
  • Auditoría de la base: códigos especiales (999999 y -1 pasan a NA), faltantes y atípicos.
  • Distribuciones y visualización con ggplot2.
Idea clave: antes de calcular, audita. Un código especial tratado como dato puede mover la media.

Estadística descriptiva 22 oct

  • Media, mediana, varianza y coeficiente de variación.
  • Factor de expansión: la misma medida cambia con y sin él (media del ingreso en Guayas: 552 sin factor, 467 con factor).
  • Correlación: Spearman cuando la variable es muy asimétrica o ordinal.
Idea clave: en una encuesta, la media sin factor describe a la muestra, no a la población.

Probabilidad, inferencia y primer K-means 23 oct

  • Probabilidad como proporción y probabilidad condicional (por ejemplo, ganar menos que el salario básico, por sexo).
  • Error estándar, intervalo de confianza al 95 % y prueba t de Welch.
  • Primer K-means con edad e ingreso.
Idea clave: el valor p no es la probabilidad de que la hipótesis nula sea cierta, y «no significativo» no significa «no hay diferencia».

Segmentación con K-means 26 oct

  • Variables estandarizadas con scale(), ingreso en logaritmo y set.seed() para reproducir resultados.
  • Método del codo: orienta, no decide. También cuentan el tamaño de los grupos y su sentido.
  • Perfiles: tamaño, edad, horas, ingreso mediano, % de mujeres y % rural. Prueba de estabilidad con otra semilla.
Idea clave: el número del grupo es solo una etiqueta, no un ranking. Los grupos se nombran por lo que los describe.

Series de tiempo e insights 27 oct

  • Serie mensual de 2025: media móvil de 3 meses, tendencia con lm() y su valor p.
  • Separar ruido de señal: intervalo de confianza de cada mes contra la media anual.
  • Proyección de 3 meses con intervalo de predicción y el límite de usar un solo año.
  • Storytelling y recomendaciones: título con el mensaje, tres hallazgos con cifra y una acción con su riesgo.
Idea clave: con un solo año se ve el movimiento mes a mes, pero no se puede afirmar estacionalidad.

Taller final: del dato a la decisión 28 oct

  • Se reúne todo el recorrido en un solo script que corre de principio a fin.
  • Entregas: informe ejecutivo de 3 páginas, presentación ejecutiva con KPIs y recomendaciones, script en R y registro de prompts de IA.
  • Exposición de 3 minutos con la presentación, para quienes alcanzan.
Idea clave: los KPIs resumen; la recomendación decide; las limitaciones dan credibilidad.

Sintaxis en R

El script se arma por bloques sobre la misma preparación. Copia cada bloque debajo del anterior y corre todo de principio a fin.

Se copia una sola vez, al inicio. Cambia PROVINCIA por la tuya.

Preparación y funciones ponderadas
library(tidyverse)
library(data.table)

PROVINCIA <- 9    # Guayas por defecto; usa la que se te asigne

datos <- fread("enemdu_2025.csv") |>
  as_tibble() |>
  filter(as.numeric(prov) == PROVINCIA) |>
  select(area, p02, p03, p10a, p24, ingrl, fexp, mes) |>
  rename(ingreso = ingrl, factor = fexp,
         edad = p03, sexo = p02,
         instruccion = p10a,
         horas = p24)

ing <- datos |>
  mutate(ingreso = if_else(ingreso %in% c(999999, -1),
                           NA_real_, as.numeric(ingreso))) |>
  filter(!is.na(ingreso)) |>
  mutate(sexo = if_else(sexo == 1, "Hombre", "Mujer"),
         area = if_else(area == 1, "Urbano", "Rural"))

nrow(ing)

# Funciones ponderadas (se copian una sola vez)
media_pond <- function(x, w) sum(x * w) / sum(w)
mediana_pond <- function(x, w) {
  o <- order(x); x <- x[o]; w <- w[o]
  x[which(cumsum(w) >= sum(w) / 2)[1]]
}
sd_pond <- function(x, w)
  sqrt(sum(w * (x - media_pond(x, w))^2) / sum(w))
prop_pond <- function(cond, w) sum(w * cond) / sum(w)
Auditoría de la base
n_filas    <- nrow(datos)
n_codigos  <- sum(datos$ingreso %in% c(999999, -1), na.rm = TRUE)
n_blanco   <- sum(is.na(datos$ingreso))
n_ingreso  <- nrow(ing)
n_cero     <- sum(ing$ingreso == 0)

q <- quantile(ing$ingreso, c(0.25, 0.75))
lim_sup    <- q[2] + 1.5 * (q[2] - q[1])
n_atipicos <- sum(ing$ingreso > lim_sup)

summary(ing$ingreso)
# Control: n_filas - n_codigos - n_blanco = n_ingreso
Descriptivas, correlación, IC y prueba t
# Media, mediana y CV: sin y con factor de expansión
estad <- tibble(
  medida = c("Media", "Mediana", "Desv. estándar", "CV"),
  sin_factor = c(mean(ing$ingreso), median(ing$ingreso),
                 sd(ing$ingreso), sd(ing$ingreso) / mean(ing$ingreso)),
  con_factor = c(media_pond(ing$ingreso, ing$factor),
                 mediana_pond(ing$ingreso, ing$factor),
                 sd_pond(ing$ingreso, ing$factor),
                 sd_pond(ing$ingreso, ing$factor) /
                   media_pond(ing$ingreso, ing$factor)))

# Correlación de Spearman (el ingreso es muy asimétrico)
cor(ing$instruccion, ing$ingreso, method = "spearman", use = "complete.obs")

# Probabilidad como proporción: ¿gana menos que el salario básico?
SBU <- 470
mean(ing$ingreso < SBU)
prop_pond(ing$ingreso < SBU, ing$factor)

# Intervalo de confianza al 95 % por grupo
ic_sexo <- ing |>
  group_by(sexo) |>
  summarise(n = n(),
            media = mean(ingreso),
            ee = sd(ingreso) / sqrt(n),
            li = media - qt(0.975, n - 1) * ee,
            ls = media + qt(0.975, n - 1) * ee)

# Prueba t de Welch (no usa el factor de expansión)
prueba <- t.test(ingreso ~ sexo, data = ing)
prueba$conf.int
prueba$p.value
K-means, codo y perfiles
set.seed(2026)

seg <- ing |>
  filter(ingreso > 0, !is.na(horas), horas > 0, horas <= 168) |>
  mutate(log_ingreso = log(ingreso))

km_datos <- seg |>
  select(edad, horas, log_ingreso) |>
  scale()

# Método del codo
codo <- tibble(
  k = 1:8,
  sct = map_dbl(1:8, \(k) kmeans(km_datos, k, nstart = 10)$tot.withinss))

ggplot(codo, aes(k, sct)) +
  geom_line() + geom_point() +
  scale_x_continuous(breaks = 1:8) +
  labs(title = "Método del codo",
       x = "Número de grupos (k)",
       y = "Variación dentro de los grupos",
       caption = "Fuente: INEC, ENEMDU anual 2025")

K <- 3   # tu decisión: codo + tamaño + sentido de los grupos
km <- kmeans(km_datos, centers = K, nstart = 25)
seg <- seg |> mutate(grupo = factor(km$cluster))

perfil <- seg |>
  group_by(grupo) |>
  summarise(n = n(),
            pct_pob = 100 * sum(factor) / sum(seg$factor),
            edad = median(edad),
            horas = median(horas),
            ingreso = median(ingreso),
            pct_mujer = 100 * mean(sexo == "Mujer"),
            pct_rural = 100 * mean(area == "Rural"))
perfil

# Estabilidad: ¿otra semilla da la misma partición?
set.seed(99)
km2 <- kmeans(km_datos, centers = K, nstart = 25)
table(km$cluster, km2$cluster)
Serie mensual, tendencia y proyección
serie_mes <- ing |>
  group_by(mes = as.numeric(mes)) |>
  summarise(n = n(),
            media = mean(ingreso),
            ee = sd(ingreso) / sqrt(n),
            li = media - qt(0.975, n - 1) * ee,
            ls = media + qt(0.975, n - 1) * ee,
            media_p = media_pond(ingreso, factor))

# Media móvil de 3 meses
serie_mes <- serie_mes |>
  mutate(mm3 = (media_p + lag(media_p) + lag(media_p, 2)) / 3)

# Tendencia lineal y su valor p
modelo <- lm(media_p ~ mes, data = serie_mes)
summary(modelo)

# ¿Qué meses se alejan de la media anual más de lo que explica el ruido?
media_anual <- mean(ing$ingreso)
serie_mes |>
  mutate(fuera = li > media_anual | ls < media_anual) |>
  select(mes, media, li, ls, fuera)

# Proyección de 3 meses con su rango (13 a 15 = ene a mar de 2026)
nuevos <- tibble(mes = 13:15)
predict(modelo, newdata = nuevos, interval = "prediction", level = 0.95)
KPIs para el informe y la presentación
g_bajo <- which.min(perfil$ingreso)    # perfil de menor ingreso mediano

kpis <- tibble(
  kpi = c("Ingreso mediano (con factor, USD)",
          "% que gana menos que el SBU (con factor)",
          "Brecha de ingreso hombre-mujer (USD)",
          "% de la población en el perfil de menor ingreso",
          "Tendencia mensual del ingreso (USD por mes)"),
  valor = c(mediana_pond(ing$ingreso, ing$factor),
            100 * prop_pond(ing$ingreso < SBU, ing$factor),
            unname(prueba$estimate[1] - prueba$estimate[2]),
            perfil$pct_pob[g_bajo],
            unname(coef(modelo)["mes"])))
print(kpis)

Conceptos clave

Lo que más se confunde, en una frase.

Factor de expansión

Cada persona de la muestra representa a varias de la población. Sin él, describes la muestra; con él, la población.

Intervalo de confianza

Rango plausible del valor poblacional. Si los intervalos de dos grupos no se tocan, la diferencia es difícil de explicar por azar.

Valor p

Qué tan raro sería ver este resultado si no hubiera diferencia. No es la probabilidad de que la hipótesis nula sea cierta.

«No significativo»

No prueba que no haya diferencia: puede faltar información. Se dice «no hay evidencia suficiente».

Spearman

Correlación por rangos. Sirve con ingresos (muy asimétricos) y con variables ordinales como el nivel de instrucción.

t.test sin factor

La prueba t de R no usa el factor de expansión ni el diseño muestral. Hay que declararlo como limitación.

K-means

Se estandariza, se fija la semilla y se prueba estabilidad. El codo guía; el sentido de los perfiles decide.

Etiquetas de grupo

El grupo 1, 2 o 3 no es un ranking y puede cambiar de número entre equipos. Nómbralos por su perfil.

Tendencia vs ruido

Una pendiente con p alto no es evidencia de tendencia. Un mes alto o bajo puede ser variación entre meses.

Un solo año

Alcanza para ver la evolución mensual, no para afirmar estacionalidad. La proyección es un ejercicio con su rango, no una promesa.

Ejemplo resuelto

Ejemplo resuelto con la provincia de referencia (Guayas, 09). Tus cifras serán distintas; lo importante es cómo se lee cada resultado.

IndicadorValorCómo se lee
Base de trabajo18.234 personas43.819 filas, menos 230 con código especial y 25.355 sin ingreso
Ingreso mediano (con factor)USD 420Sin factor es 470; el factor cambia la foto
Gana menos que el SBU54,6 %Con factor; sin factor es 45,7 %
Brecha hombre-mujerUSD 47,9IC 95 %: 32,5 a 63,3 (p < 0,001); la prueba no usa el factor
Spearman ingreso-instrucción0,37Asociación positiva moderada; con la edad es casi nula (−0,02)
Perfil de menor ingreso (k = 3)31,4 % de la población20 horas semanales, ingreso mediano USD 180, mitad mujeres
Tendencia mensual−5,2 USD por mes (p = 0,34)No hay evidencia de tendencia
Proyección meses 13 a 15USD 438, 433 y 428Con rango amplio (aprox. 254 a 601): es un ejercicio, no una promesa

¿Cambió el mercado laboral o es ruido?

En Guayas el ingreso medio ponderado fue de USD 618 en enero y de USD 393 en marzo. No hay tendencia a lo largo del año (p = 0,34), pero sí hay variación entre meses mayor que el ruido simple: 9 de 12 meses quedan fuera de la media anual. Con un solo año no se puede decir si es estacionalidad, composición de la muestra u otro factor. La conclusión honesta: no podemos afirmar que el mercado laboral cambió.

Taller final

Lo que pidió el taller final y cómo se evaluó.

Informe ejecutivo

3 páginas: resumen con el mensaje principal, KPIs, hallazgos con evidencia, perfiles, serie, recomendaciones con riesgo y mitigación, y limitaciones.

Presentación ejecutiva

6 diapositivas: portada con el mensaje, KPIs, tres hallazgos, dos gráficos, recomendaciones y limitaciones.

Script en R

La sintaxis que ejecutaste, de principio a fin y comentada.

Prompts de IA

Registro en el Anexo A: prompt, respuesta, cómo lo verificaste y qué corregiste.

  • Ingreso mediano con factor.
  • % que gana menos que el SBU, con factor.
  • Brecha de ingreso hombre-mujer, con su IC.
  • % de la población en el perfil de menor ingreso.
  • Tendencia mensual del ingreso y su valor p.
Un buen KPI tiene nombre claro, valor que sale de tu script y una lectura para decidir.

Qué

Una acción concreta, con verbo.

A quién

Quién la ejecuta o a quién va dirigida.

Con qué evidencia

El KPI o hallazgo que la respalda.

Riesgo

Qué puede salir mal.

Mitigación

Qué haces para reducirlo.

Indicador

Cómo sabrás si funcionó.

CriterioPuntos
Limpieza y exploración7,5
Estadística aplicada10
Segmentación7,5
Series de tiempo7,5
Insights y recomendaciones10
Informe y presentación ejecutivos5
Uso documentado de IA2,5
Total50
  • Mi script corre de principio a fin sin errores.
  • Las cifras del informe y de la presentación son las mismas y salen de mi script.
  • Mis recomendaciones tienen evidencia, riesgo, mitigación e indicador.
  • Declaré las limitaciones: un solo año y t.test sin factor.
  • Llené el Anexo A con mis prompts y cómo los verifiqué.

Prompts de IA

Prompts reutilizables. La IA ayuda a entender y a redactar; las cifras, la interpretación y la recomendación son tuyas. Verifica siempre contra tu propia salida de R.

1. Entender un error
Estoy trabajando con la ENEMDU anual 2025 en R (tidyverse). Este es mi código y este es el error que me sale:

[pega aquí tu código]
[pega aquí el mensaje de error]

Explícame qué significa el error en palabras simples y dime qué línea debo revisar. No reescribas todo mi script.
2. Leer una salida
Obtuve este resultado en R con la ENEMDU 2025 (ingreso laboral, mi provincia):

[pega aquí la salida]

Explícame cómo se lee, qué NO puedo concluir y qué limitaciones debo declarar (por ejemplo, que t.test no usa el factor de expansión).
3. Revisar la redacción
Este es el borrador de mi informe ejecutivo. Revisa solo la redacción: claridad, tono profesional y que el título diga la conclusión.
No cambies mis cifras ni mi interpretación; si algo no cuadra, señálalo como comentario.

[pega aquí tu borrador]
4. Poner a prueba tu recomendación
Esta es mi recomendación para mejorar la situación laboral de mi provincia, con su evidencia:

[pega aquí tu recomendación y los KPIs que la respaldan]

Hazme de abogado del diablo: dame 3 riesgos o objeciones razonables y qué dato necesitaría para responder a cada una.
5. Ordenar tu registro de prompts
Resume en una tabla de 3 columnas (prompt, qué respondió la IA, cómo lo verifiqué / qué corregí) esta lista de prompts que usé en mi taller:

[pega aquí tus prompts]

Mantén mis palabras; solo ordena y no inventes verificaciones que yo no hice.

Recursos

Fuentes y herramientas del módulo.

Analítica avanzada y ciencia de datos aplicada · CEC-EPN · 20 al 28 de octubre de 2026

Econ. Marco Acosta

Share
© 2020 ACOSCONSULTING , Quito-Ecuador
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar