Saltar al contenido principal
alcance avanzado

Cómo funciona nuestra IA: la ciencia detrás del alcance ENS

Explicación técnica del modelo de inteligencia artificial que genera alcances ENS. Modelos estadísticos, análisis de redes, topic modeling y predicción de categorías, entrenados sobre 2.215 certificados reales.

12 min de lectura
25 de febrero de 2026

Este artículo es técnico. Si buscas una guía práctica para redactar tu alcance paso a paso, consulta nuestra guía práctica de definición del alcance. Aquí explicamos cómo funciona la inteligencia artificial que lo hace por ti.

Cuando introduces el perfil de tu empresa en esquema.dev y pulsas Analizar, no estás lanzando un simple prompt a un LLM. Estás activando un sistema agéntico de 4 etapas que combina modelos estadísticos clásicos, análisis de redes, topic modeling y generación de lenguaje natural, todo entrenado sobre el corpus completo de 2.215 certificados ENS del registro público del CCN-CERT.

Este artículo explica exactamente qué hace cada etapa, con las fórmulas matemáticas reales que ejecuta nuestro código.

1. El corpus: 2.215 certificados ENS

Todo parte de los datos. Hemos descargado, parseado y analizado la totalidad de los certificados ENS publicados en el registro oficial del CCN-CERT hasta febrero de 2026. Esto incluye:

  • 2.215 alcances textuales con su categoría (ALTA, MEDIA, BÁSICA)
  • 762 certificados ALTA (34,4%), 1.393 MEDIA (62,9%), 60 BÁSICA (2,7%)
  • Metadatos de sector, certificadora, comunidad autónoma y fecha de certificación

Sobre este corpus aplicamos cuatro capas de análisis que alimentan directamente nuestra IA.

2. Predicción de categoría: modelo de log-odds aditivo

La primera pregunta que responde nuestra IA es: ¿qué categoría ENS es probable para esta empresa?

2.1 Asociación término → categoría ALTA

Para cada término tt que aparece en los alcances, calculamos su odds ratio respecto a la categoría ALTA mediante una tabla de contingencia 2×22 \times 2:

OR(t)=P(ALTAt)  /  P(¬ALTAt)P(ALTA¬t)  /  P(¬ALTA¬t)\text{OR}(t) = \frac{P(\text{ALTA} \mid t) \;/\; P(\neg\text{ALTA} \mid t)}{P(\text{ALTA} \mid \neg t) \;/\; P(\neg\text{ALTA} \mid \neg t)}

Un OR>1\text{OR} > 1 indica asociación positiva con ALTA; un OR<1\text{OR} < 1 indica asociación con MEDIA o BÁSICA.

2.2 Test de significancia

Cada asociación se valida con un test chi-cuadrado de Pearson:

χ2=i=1k(OiEi)2Ei\chi^2 = \sum_{i=1}^{k} \frac{(O_i - E_i)^2}{E_i}

donde OiO_i son las frecuencias observadas y EiE_i las esperadas bajo independencia. Dado que evaluamos múltiples términos simultáneamente, aplicamos la corrección de Bonferroni para controlar el error de tipo I:

α=αm\alpha' = \frac{\alpha}{m}

donde mm es el número de tests realizados. Solo los términos con p<αp < \alpha' se consideran estadísticamente significativos.

2.3 Resultados principales

Términonn% ALTAOR\text{OR}Significativo
datacenter1877,8%6,78
infraestructura crítica2572,0%5,00
emergencia3762,2%3,19
cloud21559,1%3,10
nube8660,5%3,06
sanitario4456,8%2,56
monitorización15754,8%2,48
ciberseguridad14351,7%2,16
hosting13450,7%2,00
formación15427,9%0,72No
implantación21828,4%0,74No

Las empresas que mencionan “datacenter” en su alcance tienen 6,78 veces más probabilidad de ser categoría ALTA que las que no lo mencionan.

2.4 Score acumulado

Para un perfil de usuario con términos {t1,t2,,tn}\{t_1, t_2, \ldots, t_n\}, nuestro modelo calcula un score aditivo en escala logarítmica:

S=i=1nwiln(OR(ti))S = \sum_{i=1}^{n} w_i \cdot \ln(\text{OR}(t_i))

donde wiw_i es un peso que depende de la fuente del término:

  • wi=1w_i = 1 para términos estadísticamente significativos (p<αp < \alpha')
  • wi=0.3/ln(OR(ti))w_i = -0.3 / \ln(\text{OR}(t_i)) para términos no significativos con OR<1\text{OR} < 1 (efecto protector suavizado)
  • Bonus de +0.8+0.8 para tipos de datos sensibles (sanitarios, financieros, judiciales)
  • Bonus sectoriales (+0.5+0.5 sanidad, +0.2+0.2 administración pública)

La predicción final se determina por umbrales calibrados empíricamente:

C^={ALTAsi S>2,0 (confianza alta)ALTAsi 0,8<S2,0 (confianza media)BAˊSICAsi S<0,5MEDIAen otro caso\hat{C} = \begin{cases} \text{ALTA} & \text{si } S > 2{,}0 \text{ (confianza alta)} \\ \text{ALTA} & \text{si } 0{,}8 < S \leq 2{,}0 \text{ (confianza media)} \\ \text{BÁSICA} & \text{si } S < -0{,}5 \\ \text{MEDIA} & \text{en otro caso} \end{cases}

Nota: Esta predicción es orientativa. La categoría formal se determina mediante el Análisis de Impacto en el Negocio (BIA) y la valoración de las dimensiones CITA. Nuestra herramienta de BIA gratuita realiza ese cálculo formal.

3. Análisis de redes: comunidades de servicios

Los servicios no se certifican de forma aislada. Cuando una empresa certifica “desarrollo”, casi siempre certifica también “mantenimiento” (402 co-ocurrencias). Estas relaciones forman un grafo de co-ocurrencia que analizamos con el algoritmo de Louvain.

3.1 Grafo de co-ocurrencia

Construimos un grafo no dirigido G=(V,E)G = (V, E) donde:

  • Cada nodo vVv \in V es un servicio que aparece en al menos 10 alcances
  • Cada arista eijEe_{ij} \in E tiene peso wijw_{ij} igual al número de alcances donde los servicios ii y jj aparecen juntos

3.2 Optimización de modularidad (Louvain)

El algoritmo de Louvain maximiza la modularidad QQ del grafo:

Q=12mij[Aijkikj2m]δ(ci,cj)Q = \frac{1}{2m}\sum_{ij}\left[A_{ij} - \frac{k_i k_j}{2m}\right]\delta(c_i, c_j)

donde:

  • AijA_{ij} es el peso de la arista entre los nodos ii y jj
  • ki=jAijk_i = \sum_j A_{ij} es el grado ponderado del nodo ii
  • m=12ijAijm = \frac{1}{2}\sum_{ij} A_{ij} es el peso total del grafo
  • δ(ci,cj)=1\delta(c_i, c_j) = 1 si los nodos ii y jj pertenecen a la misma comunidad, 0 en otro caso

El algoritmo procede en dos fases iterativas:

  1. Fase local: cada nodo se mueve a la comunidad vecina que maximiza ΔQ\Delta Q
  2. Fase de agregación: se colapsan las comunidades en supernodos y se repite

3.3 Las 4 comunidades identificadas

El resultado son 4 comunidades de servicios claramente diferenciadas:

ComunidadServicios% ALTA típico
Consultoría y auditoríaauditoría, consultoría, diseño, formación, implantación, redes, seguridad30-35%
Desarrollo de softwaredesarrollo, integración, mantenimiento, SaaS, soporte técnico25-33%
Infraestructura cloudciberseguridad, cloud, infraestructura, monitorización, operación55-67%
Telecomunicacionesdatos, gestión, instalación, telecomunicaciones31%

Cuando el usuario introduce sus servicios, nuestra IA identifica a qué comunidad pertenecen. Esto tiene dos aplicaciones:

  1. Sugerir servicios olvidados: si el usuario está en la comunidad “Desarrollo de software” y no ha incluido “mantenimiento”, se lo sugerimos (402 co-ocurrencias en datos reales)
  2. Contextualizar la predicción de categoría: la comunidad “Infraestructura cloud” tiene tasas de ALTA del 55-67%, muy superiores al promedio del 34,4%

4. Topic modeling: NMF sobre el corpus de alcances

Además del análisis de redes sobre los servicios, aplicamos Factorización de Matrices No Negativas (NMF) directamente sobre los textos de los 2.215 alcances para descubrir tópicos latentes.

4.1 Representación TF-IDF

Cada alcance se convierte en un vector TF-IDF. Sea VV la matriz documento-término de dimensión d×vd \times v (2.215 documentos ×\times vocabulario):

TF-IDF(t,d)=tf(t,d)log(N{dD:td})\text{TF-IDF}(t, d) = \text{tf}(t, d) \cdot \log\left(\frac{N}{|\{d' \in D : t \in d'\}|}\right)

donde tf(t,d)\text{tf}(t, d) es la frecuencia del término tt en el documento dd, y N=2.215N = 2{.}215 es el total de documentos.

4.2 Factorización NMF

La NMF descompone la matriz VV en dos matrices no negativas:

Vd×vWd×kHk×vV_{d \times v} \approx W_{d \times k} \cdot H_{k \times v}

donde k=10k = 10 es el número de tópicos. La matriz WW asigna a cada documento su distribución sobre los 10 tópicos, y HH define qué términos caracterizan cada tópico.

La factorización minimiza la divergencia de Frobenius con restricción de no negatividad:

minW,H0VWHF2=minW,H0ij(Vij(WH)ij)2\min_{W, H \geq 0} \|V - WH\|_F^2 = \min_{W, H \geq 0} \sum_{ij}\left(V_{ij} - (WH)_{ij}\right)^2

4.3 Los 10 tópicos del ENS

IDTópiconn documentos% ALTATérminos principales
0Seguridad y consultoría21348,4%servicio, seguridad, consultoría, ciberseguridad
1Datacenter y externalización18769,5%soportar, centro dato, externalizado
5Cloud y monitorización5867,2%cloud, monitorización, hosting, operación
3Desarrollo e implantación29730,0%desarrollo, implantación, mantenimiento
4Administración electrónica39926,3%electrónico, administración, sede, gestión
8Gestión empresarial21136,5%gestión, empresa, recurso, proceso negocio
9Software y soporte44125,9%software, soporte, aplicación, mantenimiento
7Telecomunicaciones27431,4%telecomunicación, instalación, red, dato
6Educación y portales web9817,3%educación, portal, web, plataforma
2Servicios municipales375,4%proceso atención, oficina virtual, facturación

Los tópicos con mayor tasa de ALTA son Datacenter (69,5%) y Cloud (67,2%). Los de menor tasa son Servicios municipales (5,4%) y Educación (17,3%). Nuestra IA identifica el tópico dominante del perfil del usuario para refinar la predicción.

5. El sistema agéntico: 4 herramientas en secuencia

Toda esta inteligencia estadística se orquesta mediante un sistema agéntico que ejecuta 4 herramientas en secuencia, cada una alimentando a la siguiente.

5.1 Arquitectura

Cargando diagrama...

5.2 Herramienta 1: analyze_services

Entrada: servicios seleccionados, sector, descripción de la empresa.

Proceso:

  1. Normaliza los servicios (minúsculas, sin tildes)
  2. Calcula el solapamiento máximo con cada comunidad Louvain:
overlap(U,Ck)=UCk\text{overlap}(U, C_k) = |U \cap C_k|

donde UU es el conjunto de servicios del usuario y CkC_k la comunidad kk. La comunidad con mayor solapamiento se asigna al perfil.

  1. Recorre la tabla de co-ocurrencias y sugiere servicios que frecuentemente aparecen junto a los del usuario pero que este no ha incluido.

Salida: comunidad identificada, hasta 5 servicios sugeridos con evidencia de co-ocurrencia.

5.3 Herramienta 2: predict_category

Entrada: servicios, tipos de datos, sector, infraestructura.

Proceso: ejecuta el modelo de log-odds descrito en la Sección 2, incluyendo modificadores por tipo de datos y sector, y matching con el tópico NMF más cercano.

Salida: predicción (BÁSICA/MEDIA/ALTA), nivel de confianza, hasta 6 factores de evidencia con sus odds ratios, y tópico NMF más cercano.

5.4 Herramienta 3: find_examples

Entrada: sector, servicios, categoría predicha.

Proceso: puntúa cada uno de los 10 alcances de referencia anonimizados mediante una función de relevancia:

score(e)=31[sector(e)sector(u)]+2S(e)S(u)+1[cat(e)=C^]\text{score}(e) = 3 \cdot \mathbb{1}[\text{sector}(e) \sim \text{sector}(u)] + 2 \cdot |S(e) \cap S(u)| + \mathbb{1}[\text{cat}(e) = \hat{C}]

donde 1[]\mathbb{1}[\cdot] es la función indicadora, S()S(\cdot) son los servicios, y C^\hat{C} la categoría predicha.

Salida: los 5 alcances más relevantes, con su texto, categoría, longitud y formato (prosa/viñetas).

5.5 Herramienta 4: generate_alcance

Entrada: todo el contexto acumulado (nombre, servicios, sector, servicios sugeridos, categoría predicha, ejemplos).

Proceso: esta herramienta es especial. En lugar de ejecutar código, genera una instrucción estructurada que se devuelve al modelo de lenguaje. El modelo entonces produce 3 variantes del texto de alcance, cada una siguiendo la fórmula canónica que usa el 47% de los certificados reales:

“Los sistemas de información que dan soporte a los servicios de [lista]…, conforme a la Declaración de Aplicabilidad vigente.”

Las 3 variantes son:

  1. Formal: fórmula canónica clásica, tono institucional
  2. Conciso: lo más breve posible dentro del rango de 200-400 caracteres
  3. Detallado: incluye tipos de datos o infraestructura cuando es relevante

Cada variante se valida contra los parámetros estadísticos del corpus: longitud entre 200-400 caracteres (donde se concentra el 47,5% de los alcances reales), referencia obligatoria a la DdA, y nomenclatura basada en servicios.

6. Streaming en tiempo real

La experiencia del usuario no es una espera estática. Cada herramienta emite eventos en tiempo real mediante Server-Sent Events (SSE), que se muestran en una terminal de agente interactiva:

Cargando diagrama...

El usuario ve cada paso en tiempo real: qué herramienta se está ejecutando, qué resultados produce, y cuándo se completa el análisis. Transparencia total sobre el proceso.

7. Refinamiento iterativo

Después de la generación inicial, el usuario puede refinar el texto mediante instrucciones en lenguaje natural. El modelo de refinamiento mantiene las restricciones del corpus:

  • Longitud dentro de 200-400 caracteres
  • Referencia a la Declaración de Aplicabilidad
  • Sin versiones/fechas de la DdA
  • Sin jerga técnica excesiva

Esto combina la precisión estadística de nuestro modelo con la flexibilidad del lenguaje natural, permitiendo ajustes como “hazlo más formal”, “añade el servicio de backup” o “reduce la longitud”.

Conclusiones

Lo que diferencia nuestro enfoque no es simplemente “usar IA para generar texto”. Es la combinación de:

  1. Datos reales: 2.215 certificados completos, no muestras ni datos sintéticos
  2. Estadística rigurosa: chi-cuadrado con corrección de Bonferroni, odds ratios con significancia
  3. Análisis de redes: comunidades Louvain sobre el grafo de co-ocurrencia de servicios
  4. Topic modeling: NMF de 10 tópicos sobre el corpus TF-IDF completo
  5. Sistema agéntico: 4 herramientas que se alimentan mutuamente, no un prompt único
  6. La fórmula que funciona: texto generado siguiendo la estructura que usa el 47% de los certificados reales

El resultado es un alcance ENS que no solo “suena bien”, sino que está estadísticamente alineado con lo que las certificadoras aprueban en la práctica.

Pruébalo gratis: define el alcance de tu sistema con nuestra IA en app.esquema.dev. El análisis de impacto (BIA) también es gratuito.

Preguntas frecuentes

¿Qué datos usa la IA para generar el alcance?

Nuestro modelo está entrenado sobre los 2.215 certificados ENS del registro público del CCN-CERT. Incluye análisis estadístico (chi-cuadrado, odds ratios), detección de comunidades de servicios (Louvain), topic modeling (NMF con 10 tópicos) y un corpus de alcances reales anonimizados.

¿Cómo predice la categoría ENS?

Usamos un modelo de log-odds aditivo. Para cada término del perfil del usuario, sumamos el logaritmo natural de su odds ratio respecto a la categoría ALTA. El score acumulado se compara con umbrales calibrados sobre datos reales para predecir BASICA, MEDIA o ALTA.

¿Qué es la detección de comunidades Louvain?

El algoritmo de Louvain maximiza la modularidad de un grafo de co-ocurrencia de servicios. Esto agrupa los servicios que tienden a certificarse juntos, formando 4 comunidades naturales: Consultoría/Auditoría, Desarrollo de Software, Infraestructura Cloud y Telecomunicaciones.

¿Qué precisión tiene la predicción?

La predicción no pretende reemplazar la categorización formal (BIA + CITA). Es una estimación probabilística basada en correlaciones estadísticas significativas (p < 0,05 con corrección de Bonferroni). Los odds ratios más altos alcanzan 6,78 (datacenter → ALTA), con intervalos de confianza estrechos dado el tamaño muestral de 2.215.

¿La IA genera el texto completo del alcance?

Sí. Nuestro sistema agéntico ejecuta 4 herramientas en secuencia (análisis de servicios, predicción de categoría, búsqueda de ejemplos, generación de texto) y produce 3 variantes del alcance en diferentes estilos, todas siguiendo la fórmula canónica que usa el 47% de los certificados reales.

¿Listo para categorizar tu sistema?

Usa nuestra herramienta gratuita para realizar el análisis de impacto

Usar Herramienta Gratis