Esta investigación presenta una herramienta web basada en la Teoría Clásica de los Tests (TCT) para análisis psicométrico de ítems dicotómicos. La aplicación calcula parámetros esenciales de calidad psicométrica mediante algoritmos estadísticos validados, proporcionando a docentes indicadores cuantitativos para optimizar instrumentos evaluativos. La implementación combina HTML5, Chart.js para visualización, y bibliotecas para exportación profesional de resultados.
Modelo psicométrico que conceptualiza la puntuación observada (X) como:
X = V + E
Los parámetros calculados permiten minimizar E y maximizar la validez de V.
Fórmula matemática:
pj = (Σxij)/n
| Valor p | Interpretación | Decisión Instruccional |
|---|---|---|
| >0.85 | Ítem muy fácil | Revisar necesidad pedagógica |
| 0.60-0.85 | Dificultad óptima | Mantener para evaluación formativa |
| 0.40-0.60 | Dificultad media | Ideal para evaluación sumativa |
| 0.20-0.40 | Ítem difícil | Verificar adecuación al nivel |
| <0.20 | Ítem muy difícil | Revisar o eliminar |
rpbi = [(X̄₁ - X̄₀)/sX] * √[(n₁n₀)/(n(n-1))]
| rpbi | Calidad discriminativa | Implicaciones pedagógicas |
|---|---|---|
| >0.40 | Excelente | Ítem altamente informativo |
| 0.30-0.39 | Buena | Mantener sin modificaciones |
| 0.20-0.29 | Aceptable | Mejorable con ajustes menores |
| <0.20 | Inadecuada | Requiere revisión urgente |
α = [k/(k-1)] * [1 - (Σσ²Yi)/σ²X]
| α | Nivel de fiabilidad | Adecuación de uso |
|---|---|---|
| ≥0.90 | Excelente | Decisiones individuales críticas |
| 0.80-0.89 | Buena | Evaluación sumativa grupal |
| 0.70-0.79 | Aceptable | Evaluación formativa |
| <0.70 | Cuestionable | No recomendable para decisiones |
[Diagrama Mermaid]
flowchart TB
A[Entrada de Datos] --> B[CSV o Manual]
B --> C{Validación}
C --> D[Filtrado Datos]
D --> E[Cálculo Parámetros]
E --> F[Visualización]
F --> G[Exportación]
Función discriminación (JavaScript)
function discriminacion(items, scores) {
const n = items.length;
const meanTotal = scores.reduce((a,b)=>a+b,0)/n;
const stdTotal = Math.sqrt(scores.map(s=>(s-meanTotal)**2).reduce((a,b)=>a+b,0)/n);
return items.map(itemCol => {
const mean1 = itemCol.reduce((sum, val, i) => val ? sum + scores[i] : sum, 0) / itemCol.filter(v=>v).length;
const mean0 = itemCol.reduce((sum, val, i) => !val ? sum + scores[i] : sum, 0) / itemCol.filter(v=>!v).length;
const n1 = itemCol.filter(v=>v).length;
const n0 = n - n1;
return ((mean1 - mean0) / stdTotal) * Math.sqrt((n1 * n0) / (n * (n - 1)));
});
}
Función α de Cronbach
function cronbachAlpha(data) {
const nItems = data[0].length;
const variances = data[0].map((_, j) => {
const col = data.map(row => row[j]);
const mean = col.reduce((s,v) => s+v, 0)/col.length;
return col.reduce((s,v) => s + (v-mean)**2, 0)/col.length;
});
const totalScores = data.map(row => row.reduce((a,b)=>a+b));
const totalVar = totalScores.reduce((s,v) => {
const mean = totalScores.reduce((a,b)=>a+b,0)/totalScores.length;
return s + (v-mean)**2;
}, 0)/totalScores.length;
return (nItems / (nItems-1)) * (1 - variances.reduce((a,b)=>a+b,0)/totalVar);
}
[Diagrama de diagnóstico]
| Combinación | Interpretación | Acción Recomendada |
|---|---|---|
| p bajo + rpbi bajo | Ítem muy difícil y no discriminativo | Eliminar o reformular |
| p alto + rpbi bajo | Ítem fácil pero no discriminativo | Simplificar o convertir en control |
| p medio + rpbi bajo | Ítem con problemas de validez | Revisar ambigüedad |
| p medio + rpbi alto | Ítem óptimo | Mantener |
Contexto: Colegio público (n=127), Ciencias Naturales, 25 ítems, 3 iteraciones
| Parámetro | Iteración 1 | Iteración 2 | Iteración 3 | Cambio (%) |
|---|---|---|---|---|
| α Cronbach | 0.68 | 0.76 | 0.84 | +23.5% |
| Discriminación media | 0.19 | 0.27 | 0.35 | +84.2% |
| Ítems problemáticos | 9 | 4 | 1 | -88.9% |
| Distribución dificultad | 5-17-3 | 3-19-3 | 2-21-2 | +28% óptimos |
Esta herramienta representa un puente entre investigación psicométrica y práctica docente, permitiendo: