← Inicio

Explicación matemática detallada

Fundamentos del motor bayesiano adaptativo, con formulación general y ejemplos numéricos de la demo

Contenido

  1. El problema: diagnosticar con pocas preguntas
  2. El espacio de hipótesis y el prior inicial
  3. El modelo IRT 3PL: cómo se calculan las verosimilitudes
  4. La actualización bayesiana paso a paso
  5. La entropía de Shannon como termómetro de incertidumbre
  6. Selección de la siguiente pregunta: ganancia esperada de información
  7. Criterio de parada dual
  8. Número máximo de preguntas: búsqueda minimax
  9. Aleatorización justa: Fisher-Yates y selección ponderada
  10. Sesión de ejemplo completa
  11. Convergencia: por qué el sistema aprende

Los bloques en EJEMPLO · DEMO muestran el caso concreto de la demo (3 niveles, 4 opciones). El resto de cada sección es formulación general.

1. El problema: diagnosticar con pocas preguntas

Un test convencional hace las mismas preguntas a todos los alumnos y cuenta cuántas acierta. El resultado es un porcentaje. El problema es que muchas de esas preguntas son demasiado fáciles o demasiado difíciles para cada alumno concreto: aportan poca información útil y alargan el test innecesariamente.

Un test adaptativo elige cada pregunta en función de lo que ya sabe del alumno. Para ello necesita:

  1. Una representación del estado de conocimiento del alumno en cada momento.
  2. Un mecanismo para actualizar esa representación tras cada respuesta.
  3. Un criterio para elegir la pregunta que más información aportará.
  4. Un criterio para decidir cuándo ya sabe suficiente y puede parar.

Este sistema resuelve los cuatro puntos usando el teorema de Bayes para actualizar, la función logística IRT 3PL para calcular las verosimilitudes, y la entropía de Shannon para medir la incertidumbre y seleccionar preguntas. El diseño es independiente del número de hipótesis, del número de dificultades y del formato de las preguntas.

2. El espacio de hipótesis y el prior inicial

El sistema no trabaja con una estimación puntual del nivel del alumno, sino con una distribución de probabilidades sobre \(n\) hipótesis \(H_0, H_1, \ldots, H_{n-1}\). Las hipótesis pueden ser niveles jerárquicos, errores conceptuales, necesidades de refuerzo u otras categorías pedagógicas pertinentes.

A cada hipótesis se le asigna un valor numérico \(\theta_i\) que la posiciona en la escala de habilidad. Los valores deben ser simétricos respecto al cero y espaciados uniformemente:

\[ \theta_i = -\frac{n-1}{2}\cdot s + i\cdot s \qquad i = 0, 1, \ldots, n-1 \]

donde \(s\) es el paso entre niveles consecutivos. La dificultad de las preguntas \(b_q\) usa la misma escala. Sin embargo, es imprescindible que las escalas no coincidan en sus extremos:

Invariante crítica: \(\max|\theta_i| > \max|b_q|\)
Si el nivel más extremo \(\theta_{\max}\) coincide con la dificultad más extrema \(b_{\max}\), la curva IRT devuelve exactamente \((1+c_q)/2\) para ese par — el punto de inflexión de la curva logística. En esa zona la ganancia de información del algoritmo adaptativo es mínima, y el sistema nunca selecciona preguntas de ese tipo de dificultad, sea cual sea el patrón de respuestas. La escala de \(\theta\) debe abarcar un rango estrictamente mayor que el de \(b_q\); un factor de 2 funciona bien en la práctica: \(|\theta_{\max}| = 2\cdot|b_{\max}|\).

Con \(s = 1\) y \(n = 3\): \(\theta = (-1,\; 0,\; +1)\) — rango ±1, igual al de \(b\). Con \(s = 2\) y \(n = 3\): \(\theta = (-2,\; 0,\; +2)\) — rango ±2, doble del de \(b\). Este segundo caso cumple la invariante.

Prior inicial: ignorancia total

Al comenzar el test, el sistema no tiene información sobre el alumno. Aplica el principio de indiferencia: asigna probabilidades iguales a todas las hipótesis.

\[ \pi^{(0)}_i = \frac{1}{n} \qquad \forall\, i \]

Este vector \(\pi^{(0)}\) es el prior. Tras cada respuesta se convierte en el posterior, que pasa a ser el prior de la siguiente pregunta. La estimación se refina de forma acumulativa.

Intuición La distribución no es una etiqueta sino un estado de conocimiento. \(P(H_i) = 0{,}70\) no afirma que el alumno tiene el nivel \(i\): afirma que, con los datos disponibles, esa hipótesis es 2,3 veces más probable que otra con \(P(H_j) = 0{,}30\).
Ejemplo · Demo (n = 3 niveles, 4 opciones por pregunta)
HipótesisValor \(\theta_i\)Significado
\(H_0\) — Básico\(-2\)Conocimiento básico o escaso
\(H_1\) — Medio\(0\)Conocimiento medio o consolidado
\(H_2\) — Avanzado\(+2\)Conocimiento avanzado o sólido

Con \(s = 2\): rango \(\theta \in [-2, +2]\), doble que el rango de dificultades \(b \in [-1, +1]\). Cumple la invariante \(\max|\theta_i| > \max|b_q|\). El valor de \(\theta\) se calcula automáticamente como \(\pm 2\cdot b_{\max}\) a partir del banco de preguntas.

Prior inicial: \(\pi^{(0)} = (1/3,\; 1/3,\; 1/3) \approx 33{,}3\%\) para cada nivel.

3. El modelo IRT 3PL: cómo se calculan las verosimilitudes

Para actualizar con Bayes, el sistema necesita saber: «si el alumno fuera de nivel \(H_i\), ¿con qué probabilidad acertaría esta pregunta \(q\)?» Esa probabilidad es la verosimilitud.

En lugar de fijar una tabla estática, las verosimilitudes se calculan de forma dinámica para cada pregunta usando el modelo logístico IRT de tres parámetros (3PL):

\[ P(\text{acierto} \mid H_i,\, q) \;=\; c_q + (1 - c_q)\cdot\frac{1}{1 + e^{-a\,(\theta_i - b_q)}} \]

Los tres parámetros son:

La función logística y el parámetro de azar

La fracción \(\sigma(x) = 1/(1+e^{-x})\) es la función logística estándar. Con \(x = a(\theta_i - b_q)\):

El término \(c_q + (1-c_q)\cdot\sigma\) desplaza el suelo de la curva hasta \(c_q\): ningún alumno puede tener una probabilidad de acierto menor que la de responder al azar. Cuando \(\theta_i = b_q\) exactamente, la probabilidad de acierto es siempre:

\[ P(\text{acierto} \mid \theta_i = b_q) = c_q + (1-c_q)\cdot 0{,}5 = \frac{1 + c_q}{2} \]

Por tanto, el punto de inflexión de la curva depende del valor de \(c_q\): con \(c_q = 0{,}25\) es \(0{,}625\); con \(c_q = 0{,}5\) (pregunta verdadero/falso) es \(0{,}75\); con \(c_q = 0\) es exactamente \(0{,}5\).

Verosimilitud de fallo

Si el alumno falla, la verosimilitud es el complemento:

\[ P(\text{fallo} \mid H_i,\, q) = 1 - P(\text{acierto} \mid H_i,\, q) \]
Asimetría diagnóstica general El suelo \(c_q\) hace que los fallos sean siempre más diagnósticos que los aciertos. Un fallo elimina la componente aleatoria: solo puede deberse a ignorancia genuina. Un acierto puede deberse a suerte con probabilidad \(c_q\). Cuanto mayor es \(c_q\) (menos opciones), más débil es la evidencia de cada acierto y más fuerte la de cada fallo.
Ejemplo · Demo (a = 1,5 · m_q = 4 · c_q = 0,25 · 3 niveles · 3 dificultades)

El punto de inflexión diagonal es \((1+0{,}25)/2 = 0{,}625\).

Tabla de verosimilitudes de acierto:

DificultadBásico \(\theta=-2\)Medio \(\theta=0\)Avanzado \(\theta=+2\)
Fácil \(b=-1\)38,7 %86,3 %99,2 %
Media \(b=0\)28,6 %62,5 %96,4 %
Difícil \(b=+1\)25,8 %38,7 %86,3 %

Solo la celda Medio/Media está en el punto \(\theta_i = b_q\) (resaltada, 62,5 %). Los valores \(\theta\) ampliados a ±2 separan las escalas de habilidad y dificultad, haciendo que cada tipo de pregunta sea muy diagnóstico para el nivel correspondiente.

Cálculos explícitos para pregunta media:

-- θ = 0 (Medio), b = 0 (Media), a = 1.5, c = 0.25 Exponente: −1.5·(0 − 0) = 0 → σ = 1/(1+e⁰) = 0.5 P(acierto): 0.25 + 0.75·0.5 = 0.625 -- θ = −2 (Básico), b = 0 (Media) Exponente: −1.5·(−2 − 0) = +3 → e^3 ≈ 20.086 → σ ≈ 0.04742 P(acierto): 0.25 + 0.75·0.04742 = 0.286 -- θ = +2 (Avanzado), b = 0 (Media) Exponente: −1.5·(+2 − 0) = −3 → e^−3 ≈ 0.04979 → σ ≈ 0.9526 P(acierto): 0.25 + 0.75·0.9526 = 0.964

Verosimilitudes de fallo en pregunta media: Básico 71,4 % · Medio 37,5 % · Avanzado 3,6 %. La ratio básico/avanzado es 20:1: el fallo es altamente diagnóstico.

4. La actualización bayesiana paso a paso

El teorema de Bayes toma el prior actual \(\pi^{(t)}\), la verosimilitud de la respuesta observada \(R\), y produce el posterior \(\pi^{(t+1)}\):

\[ \pi^{(t+1)}_i = P(H_i \mid R) = \frac{P(R \mid H_i)\cdot \pi^{(t)}_i}{\displaystyle\sum_{j=0}^{n-1} P(R \mid H_j)\cdot \pi^{(t)}_j} \]

El denominador normaliza el resultado: garantiza que \(\sum_i \pi^{(t+1)}_i = 1\). Coincide con la probabilidad total de la respuesta \(P(R) = \sum_j P(R\mid H_j)\,\pi^{(t)}_j\).

El proceso se repite tras cada respuesta. El posterior de cada turno se convierte en el prior del siguiente, acumulando evidencia de forma continua.

En la práctica, la operación vectorial es:

  1. Calcular los numeradores: \(u_i = P(R \mid H_i)\cdot \pi^{(t)}_i\) para cada \(i\).
  2. Sumar: \(Z = \sum_i u_i\).
  3. Normalizar: \(\pi^{(t+1)}_i = u_i / Z\).
Ejemplo · Demo — Pregunta media, respuesta incorrecta
1
Prior: \(\pi = (1/3,\; 1/3,\; 1/3)\). Tomamos como ejemplo una pregunta media (\(b_q = 0\), \(m_q = 4\), \(a = 1{,}5\)) para ilustrar el cálculo paso a paso.
2
Verosimilitudes de fallo (con \(\theta = -2, 0, +2\)): \[P(\text{fallo} \mid H_0) = 0{,}714 \qquad P(\text{fallo} \mid H_1) = 0{,}375 \qquad P(\text{fallo} \mid H_2) = 0{,}036\]
3
Numeradores: \[u_0 = 0{,}714 \times \tfrac{1}{3} = 0{,}238 \qquad u_1 = 0{,}375 \times \tfrac{1}{3} = 0{,}125 \qquad u_2 = 0{,}036 \times \tfrac{1}{3} = 0{,}012\]
4
Normalización: \(Z = 0{,}238 + 0{,}125 + 0{,}012 = 0{,}375\)
5
Posterior: \[\pi^{(1)} = \left(\frac{0{,}238}{0{,}375},\;\frac{0{,}125}{0{,}375},\;\frac{0{,}012}{0{,}375}\right) \approx (63{,}5\%,\; 33{,}3\%,\; 3{,}2\%)\]
Resultado Con una sola respuesta, el sistema pasa de la distribución plana (33 %, 33 %, 33 %) a otra con hipótesis dominante (63,5 %, 33,3 %, 3,2 %). Básico es ahora 20 veces más probable que Avanzado.

5. La entropía de Shannon como termómetro de incertidumbre

Después de cada actualización, el sistema necesita cuantificar cuánta incertidumbre queda. Para eso usa la entropía de Shannon:

\[ H(\pi) = -\sum_{i=0}^{n-1} \pi_i \log_2 \pi_i \qquad \text{(con la convención } 0\cdot\log_2 0 = 0\text{)} \]

La entropía se mide en bits. Sus propiedades fundamentales son:

La fórmula \(-p\log_2 p\) mide la «sorpresa» esperada de cada hipótesis: si \(p = 1\) no hay sorpresa; si \(p = 0{,}5\), la sorpresa es 1 bit (equivalente a una moneda). La entropía total es la media ponderada de las sorpresas individuales.

La entropía inicial máxima depende únicamente del número de hipótesis:

Hipótesis \(n\)\(H_0 = \log_2 n\) (bits)
21,000
31,585
42,000
52,322
Ejemplo · Demo (n = 3)
Distribución \(\pi\)EntropíaSituación
\((1/3,\; 1/3,\; 1/3)\)\(1{,}585\) bitsPrior inicial — ignorancia total
\((0{,}545,\; 0{,}333,\; 0{,}122)\)\(1{,}375\) bitsTras un fallo en pregunta media
\((0{,}80,\; 0{,}10,\; 0{,}10)\)\(0{,}922\) bitsUmbral de parada \(H_\text{stop}\)
\((1{,}0,\; 0{,}0,\; 0{,}0)\)\(0\) bitsCerteza absoluta
-- π = (0.545, 0.333, 0.122) — tras el primer fallo Básico: 0.545 × log₂(0.545) = 0.545 × (−0.875) = −0.477 Medio: 0.333 × log₂(0.333) = 0.333 × (−1.585) = −0.528 Avanzado: 0.122 × log₂(0.122) = 0.122 × (−3.036) = −0.370 H(π) = −(−0.477 − 0.528 − 0.370) = 1.375 bits ΔH = 1.585 − 1.375 = 0.210 bits reducidos

6. Selección de la siguiente pregunta: ganancia esperada de información

El sistema simula el futuro: para cada pregunta disponible, calcula cuánta incertidumbre esperaría reducir antes de mostrarla, y elige la que produzca mayor reducción esperada.

La ganancia esperada de información de la pregunta \(q\) es:

\[ IG(q) = H(\pi) - \Bigl[P(A)\cdot H(\pi_A) + P(F)\cdot H(\pi_F)\Bigr] \]

Donde:

Esta fórmula es la información mutua entre la respuesta a \(q\) y la hipótesis verdadera, calculada bajo el prior actual. Es positiva o cero: ninguna pregunta puede aumentar la incertidumbre esperada.

La pregunta más informativa no es siempre la que coincide con el nivel estimado. Puede ser una que ayude a distinguir entre dos hipótesis todavía plausibles, aunque su dificultad sea distinta a la hipótesis máxima actual. El cálculo de IG se repite en cada turno con el prior actualizado.

Ejemplo · Demo — IG de las tres categorías con prior uniforme

Prior: \(\pi^{(0)} = (1/3, 1/3, 1/3)\). Parámetros: \(a=1{,}5\), \(m_q=4\), \(c_q=0{,}25\).

Pregunta fácil (\(b = -1\))

-- Verosimilitudes de acierto: v = (0.286, 0.863, 0.992) P(A) = (0.286 + 0.863 + 0.992)/3 = 0.714 · P(F) = 0.286 π_A = (0.286/2.141, 0.863/2.141, 0.992/2.141) = (0.133, 0.403, 0.463) → H(π_A) = 1.431 bits π_F = (0.714/0.859, 0.137/0.859, 0.008/0.859) = (0.831, 0.159, 0.010) → H(π_F) = 0.712 bits IG(fácil) = 1.585 − [0.714×1.431 + 0.286×0.712] = 0.280 bits

Pregunta media (\(b = 0\))

-- Verosimilitudes de acierto: v = (0.387, 0.625, 0.863) P(A) = (0.387 + 0.625 + 0.863)/3 = 0.625 · P(F) = 0.375 π_A = (0.387/1.875, 0.625/1.875, 0.863/1.875) = (0.206, 0.333, 0.460) → H(π_A) = 1.513 bits π_F = (0.613/1.125, 0.375/1.125, 0.137/1.125) = (0.545, 0.333, 0.122) → H(π_F) = 1.375 bits IG(media) = 1.585 − [0.625×1.513 + 0.375×1.375] = 0.275 bits

Pregunta difícil (\(b = +1\))

-- Verosimilitudes de acierto: v = (0.286, 0.387, 0.625) P(A) = (0.286 + 0.387 + 0.625)/3 = 0.433 · P(F) = 0.567 π_A = (0.286/1.298, 0.387/1.298, 0.625/1.298) = (0.220, 0.298, 0.482) → H(π_A) = 1.509 bits π_F = (0.714/1.700, 0.613/1.700, 0.375/1.700) = (0.420, 0.361, 0.221) → H(π_F) = 1.537 bits IG(difícil) = 1.585 − [0.433×1.509 + 0.567×1.537] = 0.061 bits
TipoP(A)IG (bits)Decisión
Fácil \(b=-1\)0,7140,280✓ Máxima IG
Media \(b=0\)0,6250,275≈ Empate técnico
Difícil \(b=+1\)0,4330,061

Con el banco y los parámetros actuales de la demo, la pregunta fácil tiene una IG ligeramente mayor que la media desde prior uniforme (0,280 frente a 0,275 bits). La diferencia es pequeña, pero el selector adaptativo elige la de mayor IG desde la primera pregunta.

7. Criterio de parada dual

El test se detiene cuando se cumplen simultáneamente dos condiciones, tras un número mínimo de preguntas \(MIN\_Q\):

\[ \text{(1)}\;\; H(\pi) < H_\text{stop}(n,\, p_\min) \qquad\text{y}\qquad \text{(2)}\;\; \max_i \pi_i \geq p_\min \]

El parámetro \(p_\min\) es el nivel de confianza deseado (típicamente \(0{,}80\)).

Derivación de \(H_\text{stop}\)

El umbral \(H_\text{stop}\) es la entropía de la distribución límite: la menos concentrada que aún cumple \(\max_i \pi_i = p_\min\). Bajo el supuesto de que la probabilidad restante \(1 - p_\min\) se distribuye uniformemente entre las otras \(n-1\) hipótesis:

\[ H_\text{stop}(n,\, p_\min) = -p_\min \log_2 p_\min - (1-p_\min)\log_2\!\left(\frac{1-p_\min}{n-1}\right) \]

Valores para \(p_\min = 0{,}80\):

Hipótesis \(n\)\(H_0 = \log_2 n\)\(H_\text{stop}\)Recorrido \(H_0 - H_\text{stop}\)
21,000 bits0,722 bits0,278 bits
31,585 bits0,922 bits0,663 bits
42,000 bits1,061 bits0,939 bits
52,322 bits1,161 bits1,161 bits

Por qué se necesitan dos criterios

\(H_\text{stop}\) se calcula asumiendo reparto uniforme del resto, lo que es una aproximación. Con \(n=3\), las distribuciones \((0{,}80,\; 0{,}10,\; 0{,}10)\) y \((0{,}80,\; 0{,}19,\; 0{,}01)\) tienen la misma hipótesis máxima pero entropías distintas (0,922 y 0,834 bits respectivamente). La condición \(\max_i \pi_i \geq p_\min\) garantiza que la hipótesis dominante supera el umbral de confianza independientemente de cómo se distribuya el resto.

Barra de progreso

La reducción relativa de entropía hacia el umbral de parada define el progreso:

\[ \text{progreso} = \frac{H_0 - H(\pi)}{H_0 - H_\text{stop}} \quad\in [0,\, 1] \]
Ejemplo · Demo (n = 3, p_min = 0,80)
H_stop: −0.80×log₂(0.80) − 0.20×log₂(0.10) = 0.2575 + 0.6644 = 0.922 bits H_0: log₂(3) = 1.585 bits Recorrido: 1.585 − 0.922 = 0.663 bits

Progreso tras el primer fallo (H = 1,375 bits):

H(π) = 1,375 bits → (1,585 − 1,375) / 0,663 = 0,210 / 0,663
32 %

8. Número máximo de preguntas: búsqueda minimax

\(MAX\_Q\) combina un peor caso estadístico con un límite práctico de uso. El cálculo minimax estima cuántas preguntas harían falta en el peor caso posible hasta alcanzar una parada firme o agotar el banco disponible, pero la demo además impone un tope duro de 20 preguntas y una parada por baja utilidad marginal desde la pregunta 12.

  1. En cada nodo, se selecciona la pregunta con mayor IG bajo el prior actual.
  2. Desde ese nodo se bifurcan ramas: una por cada resultado posible (acierto/fallo, o más si hay más de dos resultados autocorregibles).
  3. En cada rama se actualiza el prior y se recurre.
  4. Una rama termina cuando cumple el criterio de parada dual, cuando ya no quedan preguntas disponibles, cuando la mejor pregunta aporta menos de 0,015 bits desde la pregunta 12, o cuando se alcanza el límite práctico de 20 preguntas.
  5. \(MAX\_Q\) es la profundidad máxima del árbol.
\[ MAX\_Q^{\text{demo}} = \min\!\left(MAX\_Q^{\text{teórico}},\; 20\right) \]

Como muchas preguntas tienen los mismos parámetros estadísticos, el cálculo agrupa las preguntas reales por dificultad y número de opciones. Cada grupo conserva su recuento disponible: formular una pregunta de ese grupo consume una unidad. La búsqueda se hace con memoización sobre distribuciones ya visitadas y recuentos restantes. En la demo, el peor caso teórico se usa como referencia interna, pero el número mostrado al usuario queda acotado por el límite práctico.

Garantía de terminación En esta demo, \(MAX\_Q\) garantiza que la sesión termina en como máximo 20 preguntas, sea cual sea la secuencia de respuestas. La mayoría de sesiones terminan mucho antes; el tope duro existe para evitar colas patológicas con utilidad pedagógica marginal muy baja.
Ejemplo · Demo

En la demo hay tres grupos reales: 30 fáciles (\(b=-1\)), 30 medias (\(b=0\)) y 30 difíciles (\(b=+1\)), todas con \(m_q=4\). La búsqueda minimax parte del prior uniforme, consume preguntas del grupo seleccionado y explora recursivamente el peor caso de acierto/fallo en cada nodo, pero el recorrido efectivo se corta si la utilidad cae por debajo de 0,015 bits desde la pregunta 12 o si se alcanza el máximo práctico de 20.

9. Aleatorización justa: Fisher-Yates y selección ponderada

Por qué no basta con ordenar aleatoriamente

El truco común de barajar con array.sort(() => Math.random() - 0.5) produce permutaciones sesgadas. Los algoritmos de ordenación no llaman al comparador el mismo número de veces para todos los pares, lo que hace que ciertos elementos aparezcan antes con más frecuencia. El sesgo es sistemático y reproducible.

El algoritmo de Fisher-Yates garantiza una distribución uniforme sobre todas las \(N!\) permutaciones:

-- Fisher-Yates (versión Knuth-Durstenfeld) for i = N−1 downto 1: j = entero aleatorio uniforme en [0, i] ← cada posición elige su elemento con igual probabilidad intercambiar arr[i] y arr[j]

En cada paso, el elemento que ocupa la posición \(i\) se elige con probabilidad \(1/(i+1)\) entre los que aún no se han colocado. La probabilidad de cualquier permutación particular es exactamente \(1/N!\).

Selección aleatoria ponderada entre candidatas con igual IG

Muchas preguntas tienen la misma IG cuando comparten dificultad y número de opciones. Una selección determinista entre empates produciría tests sistemáticamente repetitivos entre sesiones. El procedimiento correcto es:

  1. Calcular \(IG(q)\) para todas las preguntas disponibles.
  2. Reunir las candidatas: todas con \(IG \geq IG_\max - \varepsilon\) (tolerancia numérica, \(\varepsilon \approx 10^{-9}\)).
  3. Asignar a cada candidata un peso \(w_q = 1\big/(1 + \text{veces que ha aparecido su categoría o concepto})\).
  4. Elegir una candidata con probabilidad proporcional a su peso.

El peso inversamente proporcional al recuento de categorías combina máxima utilidad informativa con diversidad temática, sin imponer restricciones rígidas. Si todas las categorías han aparecido el mismo número de veces, la selección es uniforme entre candidatas.

10. Sesión de ejemplo completa

Ejemplo · Demo — n = 3 niveles · a = 1,5 · m_q = 4 · p_min = 0,80

Sesión hipotética de tres preguntas que ilustra la evolución de la distribución. Las barras muestran la probabilidad de cada hipótesis en porcentaje normalizado al nivel mayor.

Inicio — Prior uniforme

\(\pi^{(0)} = (33{,}3\%,\; 33{,}3\%,\; 33{,}3\%)\)  ·  \(H = 1{,}585\) bits  ·  Progreso: 0 %

Básico
33 %
Medio
33 %
Avanzado
33 %

En el banco actual, la fácil tiene una IG ligeramente mayor que la media desde prior uniforme (0,280 frente a 0,275 bits), por lo que el selector adaptativo empezaría por una fácil.

Pregunta 1 — Media (b = 0) · Respuesta: INCORRECTA

Verosimilitudes de fallo: \((0{,}613,\; 0{,}375,\; 0{,}137)\) · Numeradores: \(0{,}2043\;\; 0{,}1250\;\; 0{,}0457\) · Z = 0,375

\(\pi^{(1)} = (54{,}5\%,\; 33{,}3\%,\; 12{,}2\%)\)  ·  \(H = 1{,}375\) bits  ·  Progreso: 32 %

Básico
54 %
Medio
33 %
Avanzado
12 %

El fallo concentra masa en Básico. La siguiente pregunta más informativa con este prior es una fácil, para distinguir entre básico y medio.

Pregunta 2 — Fácil (b = −1) · Respuesta: CORRECTA

Verosimilitudes de acierto: \((0{,}625,\; 0{,}863,\; 0{,}964)\) · P(A) = 0,746 · Numeradores: \(0{,}341\;\; 0{,}287\;\; 0{,}118\)

\(\pi^{(2)} = (45{,}7\%,\; 38{,}5\%,\; 15{,}8\%)\)  ·  \(H \approx 1{,}466\) bits  ·  Progreso: 18 %

Básico
46 %
Medio
39 %
Avanzado
16 %

El acierto en pregunta fácil es débilmente diagnóstico: un alumno básico también la acierta con 62,5 %. La entropía sube respecto al paso anterior porque el acierto no diferencia bien los niveles. Es esperable y correcto: la barra de progreso puede retroceder levemente.

Pregunta 3 — Media (b = 0) · Respuesta: INCORRECTA

Verosimilitudes de fallo: \((0{,}613,\; 0{,}375,\; 0{,}137)\) · Numeradores: \(0{,}280\;\; 0{,}144\;\; 0{,}022\) · Z = 0,446

\(\pi^{(3)} = (62{,}8\%,\; 32{,}3\%,\; 4{,}9\%)\)  ·  \(H \approx 1{,}134\) bits  ·  Progreso: 68 %

Básico
63 %
Medio
32 %
Avanzado
5 %

Avanzado está prácticamente descartado. \(\max \pi = 63\% < 80\%\): el criterio de parada aún no se cumple. El test continúa con preguntas que apunten a la frontera básico/medio.

Patrón observado La progresión no es monotónamente decreciente en entropía: un acierto en una pregunta débilmente discriminante puede subir la entropía levemente. Lo relevante es la tendencia a largo plazo. El sistema selecciona automáticamente preguntas más informativas a medida que la distribución se concentra.

11. Convergencia: por qué el sistema aprende

La actualización bayesiana garantiza que, con respuestas consistentes, la distribución converge hacia la hipótesis verdadera. Tras \(t\) respuestas, la probabilidad de cada hipótesis es proporcional al producto de todas sus verosimilitudes:

\[ \pi^{(t)}_i \;\propto\; \pi^{(0)}_i \cdot \prod_{k=1}^{t} P(R_k \mid H_i) \]

Para que la hipótesis verdadera \(H^*\) domine sobre cualquier otra \(H_j\), basta con que su producto de verosimilitudes crezca más rápido:

\[ \prod_{k=1}^{t} P(R_k \mid H^*) \;\gg\; \prod_{k=1}^{t} P(R_k \mid H_j) \qquad \text{para todo } j \neq i^* \]

Esto ocurre cuando las respuestas son consistentes con \(H^*\): cada respuesta coherente multiplica su probabilidad por un factor mayor que 1 relativo a las demás. Los factores se acumulan multiplicativamente, lo que produce convergencia exponencialmente rápida.

Papel de la entropía

La entropía cae porque los productos de verosimilitudes son distintos para cada hipótesis. Una vez que una hipótesis tiene mucha más probabilidad que las demás, los nuevos datos la refuerzan aún más (retroalimentación positiva), y la entropía cae rápidamente hacia cero.

Respuestas inconsistentes

Si el alumno responde de forma inconsistente (acierta preguntas muy difíciles pero falla fáciles), las verosimilitudes de distintas hipótesis se compensan. La distribución no converge hacia ningún nivel y la entropía permanece alta. El sistema lo detecta: si se alcanza \(MAX\_Q\) sin cumplir el criterio de parada, el resultado se presenta como estimación provisional. Esta honestidad sobre la incertidumbre es una característica del diseño, no un defecto.

Límite del modelo Si el alumno responde al azar, las verosimilitudes de acierto y fallo para cada hipótesis son cercanas entre sí (el suelo \(c_q > 0\) reduce el rango diagnóstico de los aciertos). La distribución no converge y el test termina por límite de preguntas con diagnóstico provisional. El sistema no puede distinguir entre ignorancia genuina y respuesta aleatoria. Cuanto mayor es \(c_q\) (menos opciones por pregunta), más pronunciado es este problema.

Recuperación automática

Si el alumno falla las primeras preguntas pero luego acierta preguntas difíciles, la hipótesis de nivel alto acumula factores favorables progresivamente. No se necesita ninguna lógica de recuperación explícita: la actualización bayesiana reorienta la distribución y la selección por IG elige automáticamente preguntas más exigentes a medida que la distribución se desplaza. La recuperación es gradual y proporcional a la coherencia de la evidencia acumulada.

Ejemplo · Demo — Recuperación

Si el alumno falla las primeras preguntas medias (verosimilitud de fallo para Básico: 61,3 % frente a 13,7 % para Avanzado) pero luego acierta difíciles (verosimilitud de acierto para Avanzado: 62,5 % frente a 28,6 % para Básico), los productos acumulados de Avanzado superan a los de Básico tras suficientes aciertos difíciles, sin ninguna instrucción adicional.