jueves, 11 de diciembre de 2025
Datos. Estadística.
martes, 18 de noviembre de 2025
Datos. Estadística.
Estadística del ítem
| Clasificación del ítem | Índice de dificultad del ítem |
| Muy fácil | De 0,81 a 1,00 |
| Relativamente fácil | De 0,66 a 0,80 |
| Dificultad adecuada | De 0,51 a 0,65 |
| Relativamente difícil | De 0,31 a 0,50 |
| Difícil | De 0,11 a 0,30 |
| Muy difícil | De 0,00 a 0,10 |
- E3 =SUMA(B3:B22)
- E4 =CONTARA(A3:A22)
- E5 =E3/E4
Datos. Estadística.
Estadística del ítem
El análisis estadístico del ítem hace referencia al análisis de las preguntas de una prueba mediante procedimientos estadísticos para evaluar su calidad, dificultad, poder de discriminación y validez.
Se basa en el análisis cuantitativo de las respuestas que dan los sujetos a los ítem de una prueba para, a partir de ellas, determinar si un ítem funciona correctamente y si está midiendo lo que se pretende.
El análisis de ítem permite, pues, mejorar la calidad de una prueba y ayuda a resolver los problemas que pueden presentar los propios ítem.
Algunos de los procedimientos empleados para ello son los siguientes:
- Índice de facilidad o dificultad del ítem (IF/ID)
- Índice de homogeneidad (IH)
- Índice de discriminación
- Correlación ítem-test
- Análisis de distractores
domingo, 27 de abril de 2025
Evaluación. Ítem.
Ítem gráfico (3). Panel de imágenes.
En este caso, la solución más simple consiste en repetir la lámina de respuesta tantas veces como preguntas se formulen. De este modo el problema se reduce a un ítem de opción basada en imagen, como los que [ya vimos en esta entrada]; pero cuantos más ítem compartan el soporte de respuesta, menos funcional se vuelve esa solución, que no lo es en ningún caso, ya que sobrecargamos innecesariamente nuestro docap con imágenes repetidas y, en su caso, también con código redundante.
Disponemos de un procedimiento que elimina la necesidad de repetir las láminas de respuesta y que permite simplificar el código de forma significativa. Veamos en qué consiste; pero antes nos vamos a poner en situación para facilitar la comprensión del procedimiento.
El docap de un test como el Peabody (por poner un ejemplo) se resuelve mediante el procedimiento propuesta en la entrada dedicada al [ítem gráfico de elección de imagen], ya que en cada ítem cambia el conjunto de imágenes entre las que se encuentra la respuesta correcta; pero un test como ITPA-CA (Comprensión Auditiva) presenta el mismo conjunto de seis imágenes para un grupo numeroso de ítem. Esto permite que podamos usar el mismo mapa o conjunto de (aquí) seis imágenes, siempre que independicemos el uso de la imagen del ítem. Me explico:
- Cada ítem tiene seis (o las que sean) opciones de respuesta.
- Para un conjunto de ítem esas seis opciones son las mismas, aunque para cada ítem sólo una de ellas es la correcta
- Las imágenes configuran lo que llamo un panel de imágenes, el cual se puede construir como sumatorio de imágenes independientes o como imagen única sobreponiendo una forma transparente (o semitransparente) sobre cada una de las escenas en que se divide dicha imagen única.
- Dada imagen independiente, o cada forma superpuesta se asocia a un script que emite como resultado de la pulsación un valor (código numérico o letra) que se recoge como respuesta a cada uno de los ítem: una respuesta por ítem.
- Posteriormente, mediante funciones LO-Calc o mediante código, se valora si la respuesta dada a cada uno de los ítem se ajusta a lo esperado (es correcta) o no (es incorrecta) y, en función de ese juicio, se puntúa según el procedimiento establecido (ITPA-CA -> 0 vs. 1)
Como sucede en otras ocasiones en las que se describen procedimientos, su explicación puede resultar más compleja de lo que supone su ejecución. Me temo que este es uno de esos casos; y espero que la presentación del soporte y de su código, lo cual muestro a continuación, sirvan para aclarar las dudas que pudieran quedar.
Sub img1
Dim Lamina As string
Dim img As integer, nit As Integer
Lamina = "Lamina1"
img = 1
nit = 16
puntuar(Lamina,img, nit)
End Sub
Este procedimiento se repite con cada una de las imágenes, luego hay seis script, uno por cada sección del panel (en realidad por cada figura semi-transparente superpuesta)
La función del script es asignar contenido a una serie de tres variables (Lamina, img y nit)...
- Lamina identifica la hoja de cálculo a la que acceder (Lamina = "Lamina1")
- img designa a la imagen (sección del panel) que se está pulsando (img = 1)
- y nit identifica el número de ítem asociados a este panel (nit = 16)
... y con ellas definidas como parámetros, pasar esos valores a la subrutina (función, se diría en otros lenguajes) (puntuar(Lamina,img, nit)) que es la que ejecuta el procedimiento que sigue.
Sub puntuar (Lamina as String, img As integer, nit As Integer)
Dim oHoja As Object, oCelda As Object
Dim Celda As Integer
Dim i As integer
oHoja = ThisComponent.getSheets().getByName(Lamina)
For i = 0 To nit
N = "N" & i + 4
oCelda = oHoja.getCellRangeByName(N)
Celda = oCelda.getValue()
If Celda = 0 Then
oCelda.setValue(img)
Exit For
End If
Next
End Sub
Lo interesante de este procedimiento es que una única subrutina da servicio a estos seis script y a todos los que sean necesarios. Concretamente en ITPA-CA, a un total de 18 script con los que respondemos a un total de 50 ítem. Vemos como funciona.
- Tras acceder a la hoja sobre la que vamos a trabajar (oHoja = ThisComponent.getSheets().getByName(Lamina)) mediante el parámetro Lamina
- desarrollamos un bucle for que tiene como límite superior el valor del parámetro nit (For i = 0 To nit), que indica tanto el número de ciclos del bucle como el número de ítem a los que vamos a responder.
- Nos posicionamos en la celda que nos interesa (inicialmente N4) mediante la fórmula N = "N" & i + 4 que asocia el identificador numérico de la celda con el valor del contador i
- Y a partir de esta posición, capturamos ese objeto celda (oCelda = oHoja.getCellRangeByName(N)) y su contenido (Celda = oCelda.getValue())...
- ... condicionando la acción a desarrollar mediante if a que esa celda esté vacía (If Celda = 0 Then).
- Esa acción consiste en escribir en la celda el identificador de la imagen (img) que hemos pasado como parámetro (oCelda.setValue(img)) y salimos del bucle (Exit For)
- En caso de no cumplirse esa condición, esto es, que la celda no esté vacía, continua desarrollándose el ciclo, esto es: no se escribe nada en la celda (evitando así sobre-escribir en una celda) y se pasa a la siguiente.
sábado, 7 de septiembre de 2024
Evaluación. Ítem.
Ítem de opción (b). Varias opciones.
- Las opciones se escriben "dentro" del control, mediante su funcionalidad Etiqueta (Propiedades |General | Etiqueta)
- Cada botón tiene su propio nombre (Propiedades |General | Nombre) que componemos con un valor numérico sucesivo para facilitar su posterior manejo mediante código (btn1... btnZ)
- Cada conjunto de botones se establece como tal en relación al ítem mediante el mismo identificador en Nombre del grupo (Propiedades |General | Nombre del grupo)
- Cada botón se asocia a una celda diferente pero que mantiene cierta afinidad con las del resto de los botones del grupo (Propiedades | Datos | Celda enlazada). De esta forma es posible eliminar las activaciones de los botones mediante código, una vez resuelta la actividad.
Sub Item1' -- VARIABLES -------------------------------------------------------'Variables para acceso al formularioDim oHojaActiva As ObjectDim oPaginaDibujo As ObjectDim oFormularios As ObjectDim oFormulario As Object'Variables para acceso a los controles y para la puntuación del ítemDim Botones (3) As ObjectDim RespuestaAlumno As Integer' ---- ACCESOS --------------------------------------------------------oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()oPaginaDibujo = oHojaActiva.getDrawPage()oFormularios = oPaginaDibujo.getForms()oFormulario = oFormularios.getByName("frmItemEleccion")'ÍTEM 1. Acceso al control (botón de opción) CorrectoBotones(0) = oFormulario.getByName("btn1")If Botones(0).State() ThenRespuestaAlumno = 1ElseRespuestaAlumno = 0End If' --- INFORME -----------------------------------------------------------------------MsgBox "Puntuación del alumno en el primer ítem: " & RespuestaAlumnoEnd Sub
sábado, 31 de agosto de 2024
Evaluación. Ítem
Ítem de opción (a) V/F
Aunque los ítem de opción sean considerados unos de los ítem típicos de las pruebas de evaluación, lo cierto es que estos ítem, en su formulación textual son menos frecuente en los test de lo que pudiera parecer. Sí se empelan frecuentemente en la evaluación de la comprensión lectora y en cuestionarios de valoración actitudinal, pero no es frecuente en otro tipo de pruebas (1)
- De V/F y similares.
- De opción correcta + distractores.
- O de varias opciones correctas + distractores.
También se usan en cuestionarios de evaluación de actitudes, preferencias o grado de satisfacción, en las que la opción seleccionada no implica acierto/error, pero sí puede implicar una valoración de tipo ordinal (3). En este caso, a nivel psicométrico (y sociométrico) estamos hablando de las ya citadas escalas Likert.
Todos estas opciones de ítem pueden ser informatizados mediante diferentes objetos-control (de formulario o de cuadro de diálogo) que permiten implementar las opciones de respuesta.
Dado que como objeto-control ya han sido tratados en otras entradas, me limitaré ahora a ejemplificar su uso como ítem de evaluación (4), atendiendo a cómo se implementan en la prueba, cómo se recoge la respuesta y cómo se trata ésta.
Desde esta perspectiva nos centraremos en si el ítem se valora en términos V/F (con independencia de las opciones de respuesta, sólo una es V) o si caben varias respuestas V (con independencia de que todas reciban la misma puntuación o no).
Cuando sólo una respuesta es V (y el resto F), cabe emplear al menos dos controles, el Botón de opción y el Cuadro de lista, pero la que funcionalmente resulta más apropiada es el control [botón de opción]. Por el contrario, cuando necesitamos seleccionar varias opciones (5) lo es el control [casilla de verificación] (6).
En esta entrada me voy a limitar a explicar cómo formular el ítem V/F más sencillo, esto es: aquel en el que sólo hay dos opciones de respuesta: V vs. F (y sus diferentes formulaciones). Veremos un ejemplo en el que suponemos una prueba o un ejercicio de comprensión lectora en en que, tras la lectura del texto, se plantean al alumno un conjunto de ítem que piden elegir entre V o F en respuesta a afirmaciones basadas en el contenido textual. Normalmente estos ítem van precedidos de una explicación que concreta la instrucción.
Después de leer (el texto) di si son verdaderas o falsas las frases siguientes:
- Juan es hermano de Rosario - (Verdadero - Falso)
- Juan tiene 8 años - (Verdadero - Falso)
- ...
Para abordar la informatización de actividades de este tipo (formen parte de ejercicios de aprendizaje o de pruebas de evaluación) es especialmente apropiado el uso del control Botón de opción, del cual ya sabemos unas cuantas cosas como control de formulario o de cuadro de diálogo. Entre lo sabido está el modo de implementar estos controles en (por ejemplo) un formulario creado sobre un documento Calc, pero no estará de más refrescar nuestros conocimientos.
La implementación del objeto botón de opción, como ya sabemos, se realiza en la capa de dibujo (o capa gráfica) del documento, que es en la que se posicionan los formularios y sus controles. Este proceso, que es en realidad complejo, no es perceptible en la fase de implementación que realizamos normalmente de forma manual, ya que se ejecuta de forma automática en función de la jerarquía de clases y objetos que deriva de la lógica de la programación orientada a objetos (POO) (7) en que se basa LibreOffice, por lo que, insisto, en esta fase del proceso nos limitaremos a "dibujar" los controles que deseemos, que serán dos por ítem: uno para la opción V y otro para la opción F.
Repitiendo el procedimiento tantas veces como ítem V/F tenga la prueba, crearemos el cuestionario, finalizando con ello la primera fase del proceso (8):
'ACCESO AL FORMULARIODim oHojaActiva As ObjectDim oPaginaDibujo As ObjectDim oFormularios As ObjectDim oFormulario As Object'Acceso a la hoja activaoHojaActiva = ThisComponent.getCurrentController.getActiveSheet()'Acceso a la página de dibujo en la que se encuentran los formulariosoPaginaDibujo = oHojaActiva.getDrawPage()'Acceso a todos los formularios de la hoja de cálculooFormularios = oPaginaDibujo.getForms()'Acceso al formulario por el nombreoFormulario = oFormularios.getByName("frm2")
If BotonesOpcion(0).State() ThenRespuestasAlumno (0) = 1End If
For i = 0 To UBound(RespuestasAlumno ())
If RespuestasAlumno (i) = RespuestaCorrecta (i) Then
Puntuacion (i) = 1
Else
Puntuacion (i) = 0
End If
Next
- El condicional permite comparar el contenido de las dos matrices: la que contiene las respuestas del alumno con las respuestas correctas (RespuestasAlumno (i) = RespuestaCorrecta (i)). En función de esta comparación se establece el valor de la puntuación en la matriz Puntuacion ().
- El ciclo nos permite recorrer los cuatro elementos de las matrices antes indicadas para repetir la comparación que realizamos mediante el condicional.
- Se trata de un código más estructurado en el que se diferencia el script principal (ItemVF2) de los componentes secundarios, en los que se diferencian una función (Respuestas()) y dos subrutinas (PasarPtos() y BorrarRespuestas())
- La función Respuestas() permite simplificar significativamente el código del script principal, ya que asume el desarrollo de la segunda fase de forma mucho más eficiente que mediante la repetición de las instrucciones de acceso a los controles y a su estado.
Function Respuestas (Form As String,Formulario As Object, Formularios As Object) As Object
Dim i As Integer
Dim BotonesOpcion (7) As Object
Dim Respuesta (3) As Integer
Formulario = Formularios.getByName(Form)
For i = 1 To 8
BotonesOpcion(i-1) = Formulario.getByName("btn" & i)
Next
For i = 0 To 3
If BotonesOpcion(i*2).State() Then
Respuesta (i) = 1
Else
Respuesta (i) = 0
End If
Next
Respuestas = Respuesta()
End Function
- Las subrutinas PasarPtos() y BorrarRespuestas() asumen del desarrollo de los pasos finales de la tercera fase: la escritura del "informe" en la hoja y el borrado de los datos para eliminar la selección de los botones.
(2) En [este enlace] se analiza un buen número de pruebas actuales de comprensión lectora. No todas emplean el ítem de opción múltiple, pero sí es el modelo de ítem usado en ellas con más frecuencia. Sirvan como ejemplos los siguientes test: [EDICOLE], [TECOLEIN] y [ECOMPLEC]














