ENFEN. Fluidez verbal (III)
En esta entrada vamos a tratar con cierto detalle la configuración del procedimiento de análisis de los resultados y la propuestas de automatización del informe tal y como se plantean (inicialmente, vamos a decir ahora) en el DocAp que presenté en la entrada anterior. Pretendo desarrollar este análisis tomando como referencia, además de lo evidente (el soporte Calc el código OOo Basic disponibles), la documentación expuesta en las entradas sobre el paradigma experto-IA (ver entradas en Orient-IA).
Con este análisis pretendo reflexionar sobre hasta qué punto los sistemas de corrección y lo que en este blog se ha planteado en múltiples ocasiones al proponer recursos de evaluación comparten, en gran medida, ese enfoque de trabajo, aunque con limitaciones, deficiencias e insuficiencias añadidas.
Sobre cómo abordan las plataformas la automatización de sus análisis algo hemos dicho en entradas anteriores y algo diremos también aquí, pero el objetivo es centrarme más bien en lo que he planeado con cierta frecuencia como soluciones de automatización tipo DocAp. Cierto es, además, que esta propuesta de solución también ha bebido de esas fuentes, como no puede ser de otro modo, ya que las plataformas de corrección son referentes obligados en términos de forma y de contenido.
En cuanto a estas cuestiones, la fuente o base de conocimiento se explicita en los informes resultantes como análisis descriptivo de la prueba, siempre al inicio del documento y de forma variablemente extensa y detallada. Replicar este contenido en un procedimiento DocAp no ha ofrecido especial dificultad, aunque lo que me genera dudas es su utilidad y, por tanto, su pertinencia. A veces tengo la impresión de que este tipo de contenido sirven de poco y da la impresión de estar ahí para ocultar el escaso contenido de algunos informes. En todo caso, de tener utilidad real la tiene para el profesional (generalmente al profano poco le aporta), siendo que es precisamente éste quien (se supone) menos la necesita.
La segunda cuestión ya presenta mayor complejidad y requiere, por ello, mayor atención: me refiero a las reglas que determinan la relevancia de los datos y el modo en que éstos se analizan. Todavía no estamos aplicando procedimientos del tipo de los explicitados en esta entrada como estrategias de razonamiento, pero son la base para ese paso. Aquí, y en referencia a este DocAp (ENFEN-Fluidez) me tengo que detener ahora.
Diré, en primer lugar, que los datos relevantes son, obviamente, el número de palabras correctamente expresadas por el sujeto, datos estos que se enmarcan dentro de la edad del sujeto, puesto que el análisis está mediatizado por esa única variable. La consecuancia es que el DocAp debe recopilar esa información cuantitativa como base para realizar el posterior análisis de datos. Para ello se desarrolla el siguiente procedimiento:
Sub PuntuarPrueba
Dim oHoja As Object, oCelda As Object
Dim iEdad As Integer, iF1Pd As Integer, iF2Pd As Integer, iDif As Integer
Dim mDif(6) As Double
Dim dDifEsperada As Double
Dim iDifValora As Integer
MF1_Decatipo
MF2_Decatipo
mDif() = Array(4.98,4.53,4.91,5.63,6.15,5.77)
oHoja = ThisComponent.getSheets().getByName("Datos")
oCelda = oHoja.getCellRangeByName("B9")
iEdad = oCelda.getValue()
Select case iEdad
Case 6
dDifEsperada = mDif(0)
Case 7
dDifEsperada = mDif(1)
Case 8
dDifEsperada = mDif(2)
Case 9
dDifEsperada = mDif(3)
Case 10
dDifEsperada = mDif(4)
Case 11
dDifEsperada = mDif(5)
Case 12
dDifEsperada = mDif(6)
End Select
oCelda = oHoja.getCellRangeByName("B10")
iF1Pd = oCelda.getValue()
oCelda = oHoja.getCellRangeByName("B13")
iF2Pd = oCelda.getValue()
iDif = iF2Pd - iF1Pd
If iDif - dDifEsperada > 0 Then
iDifValora = 1
Else
iDifValora = 0
End If
oCelda = oHoja.getCellRangeByName("B17")
oCelda.setValue(iDifValora)
vHoja(0,True)
PasoHoja (1)
vHoja(1,False)
End Sub
Mediante este script accedemos a tres celdas ubicadas en la hoja Datos, las cuales contienen el dato edad (B9) y las puntuaciones directas de F1 (B10) y F2 (B13). Lo que sigue se desarrollar mediante llamadas a sendas funciones que calculan los valores de las PD como decatipos según los datos de baremos de la prueba. Me refiero, por ejemplo, a este script para el cálculo del valor decatipo de F1.
Sub MF1_Decatipo
Dim oHoja As Object, oCelda As Object
Dim mF16a(13) As Integer, mF17a(14) As Integer, mF18a(16) As Integer, mF19a(17) As Integer, mF110a(18) As Integer, mF111a(21) As Integer
Dim mF1() As Integer
Dim iEdad As Integer, iF1pd As Integer, iF1Decatipo As Integer, i As Integer, iF1Categoria As Integer
oHoja = ThisComponent.getSheets().getByName("Datos")
mF16a() = Array(1,2,3,4,4,5,6,7,8,8,9,9,9,10)
mF17a() = Array(1,1,1,2,3,3,4,5,5,6,7,8,8,9,10)
mF18a() = Array(1,1,1,1,2,3,4,4,5,6,7,7,8,9,9,9,10)
mF19a() = Array(1,1,1,1,2,3,3,4,5,6,6,7,7,8,8,9,9,10)
mF110a = Array(1,1,1,1,1,1,2,3,3,4,5,6,6,7,7,8,8,9,10)
mF111a() = Array(1,1,1,1,1,1,1,2,2,3,3,4,5,5,6,6,7,8,8,9,9,10)
oCelda = oHoja.getCellRangeByName("B9")
iEdad = oCelda.getValue()
Select Case iEdad
Case 6
mF1() = mF16a()
Case 7
mF1() = mF17a()
Case 8
mF1() = mF18a()
Case 9
mF1() = mF19a()
Case 10
mF1() = mF110a()
Case >= 11
mF1() = mF111a()
End Select
oCelda = oHoja.getCellRangeByName("B10")
iF1pd = oCelda.getValue()
For i = 0 To UBound(mF1())
mF1(i)
If i = iF1pd Then
iF1Decatipo = mF1(i)
Exit For
End If
Next
oCelda = oHoja.getCellRangeByName("B11")
oCelda.setValue(iF1Decatipo)
Select Case iF1Decatipo
Case <= 2
iF1Categoria = 0
Case 3
iF1Categoria = 1
Case 4
iF1Categoria = 2
Case 5
iF1Categoria = 3
Case 6
iF1Categoria = 3
Case 7
iF1Categoria = 4
Case 8
iF1Categoria = 5
Case >= 9
iF1Categoria = 6
End Select
oCelda = oHoja.getCellRangeByName("B12")
oCelda.setValue(iF1Categoria)
End Sub
Aunque este procedimiento no sólo es válido, sino que se puede considerar el único ajustado al procedimiento normativo de análisis del test, implica también aceptar como únicamente válido el modelo clínico subyacente, lo que no es compartido por quienes consideran que la evaluación eductiva, que está orientada a la detección de necesidades específicas de apoyo educativo, se debe diferenciar de la evaluación clínica.
Además, desde una perspectiva de carácter procedimental se puede plantear que en realidad poca información y/o información poco relevente podemos sacar de un análisis como el que se deriva de la aplicación de este tipo de script.
Para finalizar con esta línea de análisis falta analizar cual es la propuesta interpretativa que se planea en estos momentos y en función de ese enfoque, la cual está contenida en el script InfoIndiv(mResultados() del módulo ModExternos, que reproduzco a continuación.
Sub InfoIndiv(mResultados() As Variant)
Dim sRuta As String
Dim mArg()
Dim oNuevoDoc As Object, oTexto As Object
Dim sDatosAlumno As String, sPresenta As String, sPrueba As String
Dim sF1presenta As String, sF1Resulta As String, sF1PDz As String, sF1DecatCat As String, sF1DeCatAnalisis
Dim sF2presenta As String, sF2Resulta As String, sF2PDz As String, sF2DecatCat As String
Dim sF1F2Compara As String
Dim sValora As String, sImplica As String
Dim sTextoInforme As String
'Crear nuevo documento
sRuta = "private:factory/swriter"
oNuevoDoc = StarDesktop.loadComponentFromURL( sRuta, "_default", 0, mArg())
'Construcción del contenido
'Datos de identificación
sDatosAlumno = "Alumno/a: " & mResultados(0) & " " & mResultados(1) & " Curso: " & mResultados(5)
sPresenta = "ENFE. Funciones ejecutivas. Fluidez"
'Análisis de la prueba ENFEN
sPrueba = "ENFEN (Portellano, Martínez y Zumárraga (2009)) es una batería de pruebas que tienen como objetivo evaluar el nivel de madurez y el rendimiento cognitivo en actividades relacionadas con las funciones ejecutivas. " &_
"A nivel psicométrico, la bataría ENFEN está formada por un conjunto de test normativos, cuyas puntuaciones tipificadas se expresan como decatipos (media 5,5; Dt 2). Cada test de la prueba cuenta con un baremos por edades (de 6 años a 11/12 años), lo que nos permite transformar las PD en el decatipo correspondiente en función de la edad. " &_
"ENFEN también nos proporciona los estadísticos básicos de cada grupo de edad (Md y Dt), lo que permite analizar la PD del individuo en relación a los resultados medios de su grupo de edad." & Chr(13) & Chr(13) &_
"La Fluidez verbal se incluyen en ENFEN como proceso en el que están implicadas funciónes ejecutivas básicas, dada la incidencia de procesos atencionales y de memoria de trabajo. También es posible entender la fluidez verbal como indicador de la capacidad de acceder a la memoria verbal a largo plazo para recuperar la información verbal almacenada en ella. " &_
" Además también nos aporta datos relativos al nivel de desarrollo del lenguaje del sujeto." & Chr(13) & Chr(13) &_
"En ENFEN se hace uso de dos pruebas de Fluidez verbal, una por clave fonológica (F1) y otra por clave semántica (F2); esto permite realizar comparaciones del rendimiento en ambas en términos normativos y a nivel ipsativo. " &_
"A nivel normativo, los datos observados en ambos test son coherentes con los estudios realizados al respecto, mostrando la existencia de una diferencia invariablemente positiva a favor de F2, la cual se mantiene estable en el proceso evolutivo. " &_
"Esto se puede entender como consecuencia de la mayor dificultad de la clave fonológica en la recuperación de la información en comparación con el uso de la clave semántica; pero también en el procesamiento del contenido de la memoria a corto plazo."
'Análisis de los resultados en F1
sF1presenta = "Analizamos a continuación los resultados de " & mResultados(0) & " en la prueba de Fluidez Fonológica (F1)" & Chr(13) & Chr(13) &_
"La Fluidez fonológica se evalúa en ENFEN solicitando al sujeto la producción de palabras que empiecen por la letra/el sonido 'M'. " &_
"En ENFEN se incluye esta prueba para evaluar las funciones ejecutivas por resultar inusual la generación de palabras en base a un criterio fonológico, siendo la habitual el uso de estrategias de base léxico-semántica. Por ello esta exigencia obliga a la persona " &_
"a generar estrategias no habituales, requiriendo una organización eficiente de la recuperación verbal, autocontrol e inhibición de las respuestas inapropiadas. " &_
"Dado que se exige recuperación de información verbal, también se pone a prueba tanto el mecanismo de acceso al léxico como la propia memoria verbal a largo plazo. Además, el uso de claves fonológicas implica procesos de decodificación y codificación, fundamentales en la lecto-escritura. " &_
"Por todo ello la evaluación de la fluidez verbal es de interés para la evaluación de las dificultades de aprendizaje."
'Valoración de la PD en F1
sF1PDz = CalculoZ("F1",mResultados(0),mResultados(8),mResultados(9))
'Valoración del decatipo del sujeto
sF1DecatCat = CatDecatipo(mResultados(11))
sF1DeCatAnalisis = "El decatipo correspondiente a la PD antes analizada es, según el baremo de su grupo etario, " & mResultados(10) & " el cual permite calificar su rendimiento como de nivel " & sF1DecatCat & "."
'Creación del texto de análisis de F1
sF1Resulta = sF1presenta & Chr(13) & Chr(13) & sF1PDz & Chr(13) & Chr(13) & sF1DeCatAnalisis
'Escritura del contenido
oTexto = oNuevoDoc.Text
oTexto.insertString(oTexto.getEnd(),sDatosAlumno & Chr(13) & Chr(13), False)
oTexto.insertString(oTexto.getEnd(),sPresenta & Chr(13) & Chr(13), False)
oTexto.insertString(oTexto.getEnd(),sPrueba & Chr(13) & Chr(13), False)
oTexto.insertString(oTexto.getEnd(),sF1Resulta & Chr(13) & Chr(13), False)
'oTexto.insertString(oTexto.getEnd(),sTextoInforme, False)
End Sub
Como puedes ver, se trata de una subrutina que genera un documento en base a Writer. Como subrutina es activada desde el script DocumentosExternos mediante la llamada InfoIndiv(mDatos()) que pasa a la subrutina el contenido de la matriz mDatos().
Esta subrutina no está completamente desarrollada (o lo está parcialmente) ya que se limita al análisis de F1, pero contiene suficiente información como para servirnos de base para este análisis.
Empezaré diciendo que aparentemente resulta más compleja de lo que sería deseable, ya que contiene un número muy elevado de variables, lo que indica que posiblemente no se haya realizado un buen análisis previo de estrategias de automatización de los datos. Sobre esta cuestión trataremos en una próxima entrada, ya que ahora interesa que nos centremos en lo que tenemos delante y la alternativa que emerga de este análisis sea suficientemente compleja como para merecer ser expuesta en una entrada diferente.
Volviendo sobre lo observable, la estructura de contenido es la siguiente: datos de identificación del sujeto + descripción de la prueba (2 niveles: general + específico) + análisis de resultados.
Los dos primeros componentes no son de mayor interés ni ofrecen dificultades de implementació, al margen de las dudas ya expuestas sobre su utilidad; pero contienen un volumen total de información nada desdeñable, especialmente en casos como el actual en el que primero se decribe la prueba en su conjunto (ENFEN-Fluidez) y después cada una de las subpruebas que la conforman (en este caso sólo F1. Fluidez fonológica). Sin entrar en el interés que estas descripciones puedan tener, lo cierto es que es muy posible que existan otras formas más adecuadas y útil de manejar toda esta información sin que resulte abrumadora (y hasta distractora) al inicio del informe.
No obstante, se presentan dudas en la tercera fase, en la que se debería concretar la implementación de las reglas de interpretación de los resultados. Es aquí donde este modelo revela sus limitaciones precisamente por la manifiesta ausencia de esas reglas, limitándose a presentar datos (sF1Resulta=sF1presenta&Chr(13)&Chr(13)&sF1PDz&Chr(13)&Chr(13)&sF1DeCatAnalisis) que resultan de la aplicación de determinads funciones como CatDecatipo() a la que llama en sF1DecatCat = CatDecatipo(mResultados(11)).
Esta, y no la ausencia de análisis de F2, es la principal carencia de este script.
Esta estrategia, evidentemente muy básica, se puede denominar como "expositiva", pero ponerle un nombre no es suficiente para encubrir lo que no deja de ser la evidencia de una carencia: la falta de criterios de análisis revela la ausencia de teorización sobre la prueba y el significado de los resultados que obtenemos con ella. Implica, en definitiva, carecer de una estrategia de interpretación condicionada.
Al carecer de dicha condicionalidad no es posible identificar en el DocAp ninguna estrategia de análisis, lo que parece (y es) contraproducente con el objetivo que animó la creación del instrumento. Pero "curiosamente" se trata de una "estrategias" de uso mucho más frecuente de lo esperable: al carecer de una teorización sobre el significado de las puntuaciones o al no querer comprometerla, con demasiada frecuencia se opta por la mera exposición de los datos, especialmente en los sistemas de corrección automatizada. En ellos se puede añadir el adorno de alguna categorización, lo cual tampoco compromete gran cosa, dado que corre a cuenta del aparato estadístico de la prueba. El resto queda a la libre y profesional interpretación del especialista, expediente éste perfectamente válido en otros contextos, pero aquí simplemente útil por admitido.
Esta socorrida "solución expositiva" puede ser válida para herramientas de automatización como los sistemas de corrección on-line, lo que dice mucho sobre la utilidad real de los informes que emiten, pero no lo es cuando somos nosotros mismos los que, como profesionales y especialistas, diseñamos nuestras propias herramientas de automatización, bajo nuestros criterios y en función de nuestros objetivos. En estos casos o somos capaces de implementar procedimientos y reglas de análisis o la herramienta que creemos servirá de bien poco.
Cierto es, no obstante, que también podemos limitar conscientemente nuestro proyecto de "automatización" a explicar cuestiones generales sobre el instrumento y sus características, y a formalizar la exposición de resultados. Hacer esto puede ser un objetivo válido y suficiente para algunos y/o en determinadas circunstancias, pero evidentemente deja pendiente el pleno desarrollo de lo que el modelo experto IA promete.
La concreción de esta promesa en el caso concreto de ENFEN-Fluidez queda pendiente para la próxima entrada.


