Metodología

Versión v1.0 · junio de 2026. Este documento especifica, con el detalle suficiente para reproducir cada cifra, cómo se construyen los indicadores de Congreso en Datos. Los indicadores son experimentales: se publican con sus supuestos, sus intervalos de incertidumbre y sus limitaciones, y no constituyen estadística oficial.

1. Fuente y pipeline de datos

Los datos provienen del sitio oficial del Congreso de la República de Guatemala (congreso.gob.gt) y son recolectados por el pipeline abierto de CINCO, que corre tres veces por semana (martes, jueves y viernes) y carga a BigQuery seis tablas: sesiones plenarias, puntos votados, votos nominales (diputado × votación, extraídos de los PDF oficiales de cada acta), iniciativas de ley, dictámenes de comisión y decretos. La cobertura de votaciones nominales inicia en 2011; al cierre de esta versión el corpus contiene ~1,068 sesiones, ~11,976 votaciones y ~1.9 millones de votos individuales.

Cada cifra publicada aquí es trazable a ese corpus. Cuando el pipeline corrige datos históricos, los indicadores se recalculan completos; no mantenemos cifras congeladas.

2. Construcción del panel de votos

El insumo analítico es un panel (diputado × votación) que se construye con las siguientes reglas, en orden:

  1. Deduplicación. Existen pares (votación, nombre) con más de un registro (6 claves en el corpus actual, artefactos del parser de PDF). Se colapsan con precedencia voto informativo (A FAVOR / EN CONTRA) > LICENCIA > AUSENTE. Si un mismo par registra A FAVOR y EN CONTRA, la celda queda nula: una contradicción no se adjudica.
  2. Categorías. Las celdas toman cuatro valores: A FAVOR, EN CONTRA, AUSENTE y LICENCIA. Los registros con estado "PRESENTE" del acta conservan el voto de su celda (el estado es un artefacto de formato). La licencia se trata como ausencia justificada y se excluye de las tasas de ausencia.
  3. Canonicalización de nombres. Los PDF traen variantes ortográficas del mismo diputado (tildes, orden de apellidos, errores de OCR). La clave canónica de una persona son los tokens de su nombre normalizado (descomposición NFD, minúsculas, solo letras) ordenados alfabéticamente; el nombre visible es la variante más frecuente. Se retienen las identidades con ≥ 20 votos informativos en la legislatura: en 2024–2028 esto separa nítidamente a las 165 identidades reales (160 escaños más sustituciones, todas con ≥ 100 votos) de 97 variantes residuales de OCR (todas con menos de 20).
  4. Bloque al momento del voto. Cada celda lleva el bloque con el que el diputado aparece en esa acta. El transfuguismo es frecuente; ninguna métrica asume pertenencia fija. Para visualización se usa el bloque modal (el más frecuente entre las celdas del diputado), con una corrección: los diputados del partido oficialista de 2024–2028 votaron casi toda la legislatura bajo la etiqueta genérica de suspensión de su partido, por lo que su pertenencia se detecta por celdas (≥ 5 celdas con etiqueta oficialista) y no por el modal.

Fechas en español. Las fechas de iniciativas vienen como texto ("Martes, 13 de agosto de 2019") y se interpretan con un parser determinista. El 55.6 % de las iniciativas (2,028 de 3,650) no registra fecha en la fuente ("N/A"); los análisis que requieren fechas se restringen al subconjunto con fecha y lo declaran.

3. Universos de votaciones

No todas las votaciones informan todas las métricas. Definimos:

4. Clases de unanimidad

Cada votación se clasifica por la participación de la minoría s=min(F,C)/(F+C)s = \min(F,C)/(F+C): unánime (s<0.025s < 0.025), consensual (0.025s<0.100.025 \le s < 0.10), dividida (0.10s<0.350.10 \le s < 0.35) y reñida (s0.35s \ge 0.35). La mayoría absoluta constitucional es 81 de 160 votos; los dos tercios, 107.

5. Asistencia y ausencia estratégica

La tasa de ausencia de un diputado se calcula ponderada por día de sesión: primero la proporción de ausencias dentro de cada día (entre celdas A FAVOR / EN CONTRA / AUSENTE), luego el promedio entre días. Así un día maratónico de 40 votaciones no domina el indicador. Su incertidumbre se estima con bootstrap por conglomerados (remuestreo de días, B = 1,000, intervalos percentiles al 95 %).

Para el patrón de ausencia estratégica comparamos la propensión a ausentarse en votaciones disputadas (minoría ≥ 25 %) contra aplastantes (minoría < 10 %):

Δi=p^i(Adisputada)p^i(Aaplastante)\Delta_i = \hat p_i(\text{A} \mid \text{disputada}) - \hat p_i(\text{A} \mid \text{aplastante})

con intervalos de Newcombe (método híbrido de Wilson) y un test z de dos proporciones. Los p-valores de los 160+ diputados se corrigen por comparaciones múltiples con Benjamini–Hochberg (FDR 5 %). La insignia "patrón de ausencia estratégica" exige q ≤ 0.05 y además Δ ≥ 10 puntos porcentuales (significancia y materialidad). En el Congreso guatemalteco romper quórum es una táctica documentada; el indicador la hace medible, pero no prueba intención.

6. Cohesión de bloques

El índice clásico de Rice para el bloque bb en la votación jj es

Rbj=FbjCbjnbj,nbj=Fbj+Cbj.(7)R_{bj} = \frac{|F_{bj} - C_{bj}|}{n_{bj}}, \qquad n_{bj} = F_{bj} + C_{bj}. \tag{7}

Rice está sesgado al alza en bloques pequeños (dos diputados lanzando monedas "coinciden" la mitad de las veces). Lo corregimos contra el nulo exacto: si los nbjn_{bj} miembros fueran una muestra sin reemplazo del pleno (que votó KjK_j a favor de NjN_j votantes), el número de favorables del bloque sería hipergeométrico y el Rice esperado bajo el azar es

E0[Rbj]=k2knbjnbj(Kjk)(NjKjnbjk)(Njnbj),(8)E_0[R_{bj}] = \sum_{k} \frac{|2k - n_{bj}|}{n_{bj}} \cdot \frac{\binom{K_j}{k}\binom{N_j-K_j}{\,n_{bj}-k\,}}{\binom{N_j}{n_{bj}}}, \tag{8}

(la forma exacta de la corrección de Desposato 2005, evaluada en log-espacio con error < 10⁻¹⁰), y el Rice corregido es

R~bj=RbjE01E0.(9)\tilde R_{bj} = \frac{R_{bj} - E_0}{1 - E_0}. \tag{9}

R~=1\tilde R = 1 es disciplina perfecta; R~=0\tilde R = 0 es indistinguible del azar; valores negativos indican dispersión mayor que el azar. Se computa solo sobre el universo dividido con nbj2n_{bj} \ge 2, y se agrega por mes con pesos ω=nbj\omega = n_{bj}:

R~b(mes)=jnbjR~bjjnbj,(10)\tilde R_b^{(\text{mes})} = \frac{\sum_j n_{bj}\,\tilde R_{bj}}{\sum_j n_{bj}}, \tag{10}

publicándose ventanas con jnbj30\sum_j n_{bj} \ge 30. La cohesión efectiva CEbj=FbjCbj/(Fbj+Cbj+Abj)CE_{bj} = |F_{bj}-C_{bj}|/(F_{bj}+C_{bj}+A_{bj}) penaliza además las ausencias.

7. Acuerdo entre pares y red

Para cada par de diputados con ≥ 20 votos divididos compartidos se calcula la coincidencia simple aika_{ik} y se descuenta el acuerdo esperado por marginales con la κ de Cohen:

κik=aikeik1eik,eik=pipk+(1pi)(1pk),(11)\kappa_{ik} = \frac{a_{ik} - e_{ik}}{1 - e_{ik}}, \qquad e_{ik} = p_i p_k + (1-p_i)(1-p_k), \tag{11}

donde pip_i es la proporción de votos a favor de ii en los votos compartidos. Dos diputados que votan siempre con la mayoría coinciden mucho por construcción; κ corrige precisamente eso.

La red de coincidencia une pares con κ0.5\kappa \ge 0.5 más los 5 vecinos más próximos de cada nodo (para que nadie quede aislado), con pesos max(κ,0)\max(\kappa, 0). Sobre ella:

8. Puntos ideales (eje oficialismo–oposición)

8.1 Modelo

Usamos el modelo espacial bayesiano de Clinton–Jackman–Rivers con enlace logístico. Para el diputado ii y la votación jj, con yij=1y_{ij}=1 si votó a favor:

Pr(yij=1)=σ(αj+βjxi),xiN(0,1),(αj,βj)N(0,25I2).(1)\Pr(y_{ij} = 1) = \sigma(\alpha_j + \beta_j x_i), \qquad x_i \sim \mathcal N(0,1), \quad (\alpha_j, \beta_j) \sim \mathcal N(0, 25\,I_2). \tag{1}

xix_i es la posición del diputado en una dimensión latente; βj\beta_j la discriminación de la votación; αj/βj-\alpha_j/\beta_j su línea de corte.

8.2 Estimación: EM variacional con cota de Jaakkola–Jordan

La verosimilitud logística no es conjugada. Usamos la cota cuadrática local de Jaakkola–Jordan (2000): con tij=2yij1t_{ij} = 2y_{ij}-1 y ηij=αj+βjxi\eta_{ij} = \alpha_j + \beta_j x_i,

logσ(tη)    logσ(ξ)+tηξ2λ(ξ)(η2ξ2),λ(ξ)=tanh(ξ/2)4ξ,(2)\log \sigma(t\,\eta) \;\ge\; \log\sigma(\xi) + \tfrac{t\,\eta - \xi}{2} - \lambda(\xi)\,(\eta^2 - \xi^2), \qquad \lambda(\xi) = \frac{\tanh(\xi/2)}{4\xi}, \tag{2}

que convierte cada actualización de campo medio en un cierre gaussiano exacto. Con q(xi)=N(mi,vi)q(x_i)=\mathcal N(m_i, v_i) y q(ζj)=N(μj,Vj)q(\zeta_j)=\mathcal N(\mu_j, V_j):

vi1=1+2jJiλ(ξij)βj2,mi=vijJi[tij2βj2λ(ξij)αjβj],(3)v_i^{-1} = 1 + 2\sum_{j \in J_i} \lambda(\xi_{ij})\,\langle \beta_j^2\rangle, \qquad m_i = v_i \sum_{j \in J_i} \Big[ \tfrac{t_{ij}}{2}\langle\beta_j\rangle - 2\lambda(\xi_{ij})\langle\alpha_j\beta_j\rangle \Big], \tag{3} Vj1=125I+2iIjλ(ξij)x~ix~i ⁣,μj=VjiIjtij2x~i,(4)V_j^{-1} = \tfrac{1}{25} I + 2\sum_{i \in I_j} \lambda(\xi_{ij}) \langle \tilde x_i \tilde x_i^{\!\top}\rangle, \qquad \mu_j = V_j \sum_{i \in I_j} \tfrac{t_{ij}}{2} \langle \tilde x_i \rangle, \tag{4}

con x~i=(1,xi) ⁣\tilde x_i = (1, x_i)^{\!\top}, y el parámetro variacional óptimo

ξij2=(αj+βjxi)2.(5)\xi_{ij}^2 = \langle (\alpha_j + \beta_j x_i)^2 \rangle. \tag{5}

El objetivo (ELBO) es

L=ijΩ[logσ(ξij)ξij2+λ(ξij)ξij2+tij2ηijλ(ξij)ηij2]iKLijKLj,(6)\mathcal L = \sum_{ij \in \Omega} \Big[ \log\sigma(\xi_{ij}) - \tfrac{\xi_{ij}}{2} + \lambda(\xi_{ij})\xi_{ij}^2 + \tfrac{t_{ij}}{2}\langle\eta_{ij}\rangle - \lambda(\xi_{ij})\langle\eta_{ij}^2\rangle \Big] - \sum_i \mathrm{KL}_i - \sum_j \mathrm{KL}_j, \tag{6}

y es monótono no decreciente por construcción (ascenso por coordenadas sobre un minorizador); el código lo verifica en cada iteración. Convergencia: correlación entre iteraciones >1107> 1 - 10^{-7} y cambio máximo <104< 10^{-4}.

8.3 Inicialización espectral

Para evitar óptimos locales y hacer el resultado determinista, el VEM arranca del escalado clásico de Torgerson: con la matriz de acuerdos simples AA, se forma Δ=(1A)2\Delta = (1-A)^2, se centra doblemente (B=12HΔHB = -\tfrac12 H \Delta H) y se toma la primera coordenada principal. La razón λ2/λ1\lambda_2/\lambda_1 del espectro (publicada como diagnóstico) indica cuánta estructura quedaría para una segunda dimensión.

8.4 Identificación

La verosimilitud es invariante a traslación, escala y reflexión. Se fija: media 0 y desviación 1 de los xix_i (los ítems se transforman coherentemente), y signo tal que la media de los diputados oficialistas sea positiva. El ancla de cada legislatura está versionada en el código (2024–2028: Movimiento Semilla; 2020–2024: Vamos; 2016–2020: FCN-Nación; 2012–2016: Partido Patriota). El eje se lee oficialismo ↔ oposición, no izquierda–derecha.

8.5 Incertidumbre

Los intervalos se estiman con bootstrap no paramétrico de votaciones (remuestreo de columnas con reemplazo, B = 100), re-ajustando el modelo con arranque caliente desde la solución completa y re-identificando cada réplica. Se publican IC del 95 % para la posición y para el rango (el dato más robusto: "entre el 12.º y el 19.º más oficialista"). El generador aleatorio está sembrado por (métrica, legislatura, versión): la misma versión produce exactamente los mismos números.

8.6 Diagnósticos publicados

Junto a cada ajuste: CCR (tasa de clasificación correcta), APRE (reducción proporcional agregada del error frente a predecir siempre la mayoría), GMP (media geométrica de probabilidades), λ2/λ1\lambda_2/\lambda_1 y el contraste probit: el mismo panel se ajusta con un EM probit exacto (Imai–Lo–Olmsted 2016) y se exige ρ\rho de Spearman ≥ 0.99 entre ambos ordenamientos (en 2024–2028: ρ = 0.999). Para referencia, el ajuste de la legislatura actual: CCR ≈ 0.87, APRE ≈ 0.28, GMP ≈ 0.72 sobre 165 diputados × 2,250 votaciones.

8.7 Qué no es

El punto ideal resume cómo votó un diputado en el pleno, no qué piensa. En congresos con agenda controlada, la dimensión recuperada refleja el eje de conflicto que llegó a votarse. Votaciones estratégicas, pareos y ausencias selectivas distorsionan la señal; el modelo trata las ausencias como datos faltantes ignorables, lo cual es un supuesto (véase §5).

9. Polarización

Sobre los puntos ideales: η² (proporción de la varianza de posiciones explicada por la pertenencia a bloque; bloques con ≥ 2 diputados, el resto agrupado en "otros") y el coeficiente de bimodalidad de Sarle

BC=g12+1g2+3(n1)2(n2)(n3),(12)BC = \frac{g_1^2 + 1}{g_2 + \dfrac{3(n-1)^2}{(n-2)(n-3)}}, \tag{12}

donde BC>0.555BC > 0.555 sugiere dos polos. La serie anual re-ajusta el modelo por año calendario (sin bootstrap) y alinea el signo por correlación con la solución de la legislatura completa.

10. Embudo legislativo

Para iniciativas se publican conteos descriptivos: presentadas, con dictamen de comisión y con dictamen favorable, enlazando dictámenes por número de registro normalizado. El 55.6 % de las iniciativas carece de fecha de presentación en la fuente, por lo que no publicamos en v1 curvas de supervivencia tiempo-a-dictamen; quedan para una versión futura con mejor cobertura de fechas.

11. Índices de poder de coalición

Sobre el padrón actual se calcula el juego de votación ponderada [q;s1,,sm][q; s_1, \dots, s_m] con cuota q=81q = 81 (y nota para 107). Cada bloque es un jugador; cada independiente es un jugador unipersonal. Se publican:

βk=ηklηl(Banzhaf normalizado),(15)\beta_k = \frac{\eta_k}{\sum_l \eta_l} \quad\text{(Banzhaf normalizado)}, \tag{15} ϕk=S∌k, S no ganadora, S{k} ganadoraS!(mS1)!m!(Shapley–Shubik),(16)\phi_k = \sum_{S \not\ni k,\ S \text{ no ganadora},\ S\cup\{k\} \text{ ganadora}} \frac{|S|!\,(m-|S|-1)!}{m!} \quad\text{(Shapley–Shubik)}, \tag{16}

ambos evaluados exactamente con funciones generatrices en aritmética entera (BigInt), no por muestreo. Los índices miden poder combinatorio de coalición bajo votantes intercambiables; no modelan afinidad ideológica. Léanse junto a la red (§7).

12. Limitaciones generales

  1. La fuente es el sitio del Congreso: errores u omisiones en las actas se heredan; el pipeline reporta sus propias métricas de calidad.
  2. Registro nominal solamente: lo que no llega al pleno (poder de agenda) es invisible para todas las métricas.
  3. Identidad por nombre: la canonicalización tiene cobertura verificada en 2024–2028; en legislaturas históricas puede dividir a un diputado con cambios de nombre legales.
  4. Ausencias informativas: los modelos las tratan como faltantes ignorables; §5 muestra que a veces no lo son.
  5. Una dimensión: λ2/λ10.3\lambda_2/\lambda_1 \approx 0.3 indica que una segunda dimensión tiene señal; v1 publica solo la primera.

13. Reproducibilidad y versionado

Toda la analítica corre en TypeScript puro, determinista (PRNG sembrado splitmix32; sin dependencia del orden de cómputo), con pruebas unitarias contra valores conocidos (hipergeométrica por enumeración, índices de poder de juegos clásicos, Wilson/Newcombe de la literatura) y una prueba de recuperación sobre datos sintéticos (ρ ≥ 0.95 contra el parámetro verdadero). Los cambios metodológicos incrementan la versión visible en cada gráfico. Esta página es la especificación; el código es la implementación; ante discrepancia, mandan los datos.


Congreso en Datos es un proyecto de CINCO. Datos: congreso.gob.gt. Código del pipeline: CincoIS/monitoreo-congreso-guatemala.