jueves, 26 de febrero de 2026

Evaluación. Memoria

ENFEN. Fluidez verbal (IV)

Si queremos que nuestro análisis (y en consecuencia, la propia evaluación) sirva para algo más que para decir que el sujeto se sitúa en una puntuación normativa X, es necesario plantear a priori el procedimiento de análisis y de interpretación de los resultados.

Empezaremos por plantear qué referencia vamos a emplear, no tanto por ser importante como por plantear la diferencia en el modo de entender la naturaleza y el objetivo de la evaluación.

En la evaluación clinica de la fluidez verbal interesa conocer el decatipo, pero para la evaluación educativa puede ser suficiente conocer la puntuación z (dado que es la que nos permiten calcular los estadísticos que aporta la prueba: promedio y dedesviación estándar), que situa al alumno en relación al intervalo central del grupo etario. En base a esta referencia se desarrollarán los análisis que siguen.

Esto es así porque desde la perspectiva de la intervención educativa lo que nos interesa en primer lugar es si los resultados indican que el niño presenta o no cierto grado alteración en sus capacidades de recuerdo de palabras (memoria verbal). En un contexto de evaluación clínica, esta información es relevante en si misma, pero desde el punto de vista de la intervención educativa lo es cuando existen indicios de que puede ser un factor relevante para entender la problemática que presenta el alumno. Evidentemente, en ese caso no lo será como prueba única. Por ejemplo, se puede considerar conveniente aplicar también el test Dígitos de las escalas Wechsler a fin de obtener un mejor conocimiento del rendimiento del alumno en tareas de memoria.

Volviendo al rendimiento observado en las pruebas de Fluidez, el rendimiento observado en el grupo normativo de la prueba evidencian una diferencia en términos de puntucación directa entre F1 y F2, sistemáticamente favorable a F2. Esta diferencia se debe considerar normal siempre que se mantenga dentro de lo observado, y se debe a razones de funcionamiento del sistema cognitivo humano que explican coherentemente las ciencias neurocognitivas. Así que hasta aquí nada que decir que no quede dicho por la observación del rendimiento en relación al esperado para la edad.

No obstante este feonómeno permite un segundo nivel de análisis, no tan potente y sólido teóricamente como el primero, pero sí con un potencial interés en términos de comprensión de las dificultades que se puedan observar en el proceso de aprendizaje: cada una de las dos pruebas implican procesos diferentes de acceso al léxico aprendido. Si en términos de puntuación normalizada (punt. z) se observa diferencia entre ambas (F1 y F2), es que esa diferencia es evidentemente superior a la explicada por la naturaleza del sistema. En este caso esa diferencia debe tener (potencialmente) una explicación, que puede resultar relevante para comprender la naturaleza de las dificultades observadas (y esta observación es el punto de partida necesario) en el proceso de aprendizaje.

Una posible interpretación de esa diferencia con implicaciones útiles para la evaluación educativa es que F1 está revelando el grado de desarrollo de las habilidades metafonológicas, asociadas al proceso de aprendizaje de la lectura por la ruta fonológica. Frente a ella, F2 involucra procesos generales de aprendizaje/desarrollo léxico-semántico, asociados a la escolarización , pero también a la estimuación del medio socio-familiar (aprendizaje incidental).

Cuando F1-F2 no presentan diferencias 'z' podemos valorar el nivel de rendimiento en memoria verbal del sujeto como rendimiento inferior a promedio, rendimiento dentro de promedio o rendimiento superior a promedio. Pero cuando sí se constatan diferencias 'z' (superiores a las "normales) no podemos deducir necesariamente uno u otro tipo de déficit; tan sólo servirán para que nos planteemos la posibilidad de que exista tal relación; debiendo ser esta posibilidad objeto de investigación con los recursos y los procedimientos apropiados, aquellos que sí permiten valorar directamente los problemas que F1 vs. F2 sugieren.

La primera consecuencia de lo anteriormente dicho es que deberemos diferenciar en el análisis dos fases: la primera se refiere al nivel de rendimiento general en términos de Fluidez verbal; la segunda sólo será viable (y en los términos antes expuestos) cuando se cumpla la condición de base: F1 y F2 son z-discrepantes, esa discrepancia sugiere x vs. y, y los datos disponibles confirman/no confirman (x|y). Si no confirman por constatación de ausencia de la posible causa, la z-discrepancia carece de relevancia; pero si la no-confirmación es debida a ausencia de información, z-discrepancia deberá servir de base para plantear la recogida de información directa mediante prodecimientos válidos.

La primera fase del análisis se base en la aplicación del procesamiento hacia adelante (SI x ENTONCES y), pero para la segunda fase (para z-descrepancia F1-F2) deberemos aplicar el procesamiento hacia atrás. Mantener el primero procedimiento implicaría ahora asumir una causalidad difícil de constatar y muy compleja de desarrollar, mientras que el procesamiento hacia atrás se ajusta mejor a la dinámica del análisis que se plantea y resulta mucho más sencillo de implementar: se trata de confirmar una única hipótesis (la derivada de F débil) en dos fases: contatar que existen evidencias vs. que no existen, e indican (que no implican necesariamente) el procedimiento a seguir ante la ausencia de datos. En cualquier caso ambas fases del análisis son relativamente factibles de plantear y de desarrollar mediante un algoritmo.

Una posible plasmación en la práctica de lo anteriormente expuesto es este script:


import csv
import os

# Bases de datos cronológicas (6 a 12 años)
f1_md = [5.25, 6.65, 8.66, 9.25, 11.16, 11.73, 12.04]
f1_dt = [2.65, 2.68, 2.85, 3.02, 3.09, 3.35, 3.19]
f2_md = [10.26, 11.18, 13.57, 14.08, 16.79, 17.88, 17.81]
f2_dt = [3.81, 3.34, 3.95, 3.87, 4.49, 4.72, 4.11]

FILE_NAME = "registro_clinico_expert.csv"

def obtener_siguiente_id():
    """Genera un ID incremental tipo Al01, Al02 basándose en las líneas del CSV."""
    if not os.path.exists(FILE_NAME):
        return "Al01"
    with open(FILE_NAME, "r", encoding="utf-8") as f:
        lineas = f.readlines()
        if len(lineas) <= 1: return "Al01"
        ultimo_id = lineas[-1].split(",")[0]
        numero = int(ultimo_id.replace("Al", "")) + 1
        return f"Al{numero:02d}"

def inicializar_csv():
    """Crea el archivo con encabezados si no existe."""
    if not os.path.exists(FILE_NAME):
        with open(FILE_NAME, "w", newline="", encoding="utf-8") as f:
            writer = csv.writer(f)
            writer.writerow(["ID", "Edad", "PD_F1", "PD_F2", "Z1", "Z2", "Discrepancia", "Confirmado", "Diagnostico_Final"])

def guardar_datos_csv(datos):
    """Escribe una fila de datos en el archivo CSV."""
    with open(FILE_NAME, "a", newline="", encoding="utf-8") as f:
        writer = csv.writer(f)
        writer.writerow(datos)

def ejecutar_sistema_experto_final():
    inicializar_csv()
    
    while True:
        print("\n" + "=".center(75, "="))
        print(f" SISTEMA EXPERTO: PROTOCOLO {obtener_siguiente_id()} ".center(75))
        print("=".center(75, "="))
        
        try:
            edad = int(input("Edad (6-12) [0 para salir]: "))
            if edad == 0: break
            
            pd_f1 = float(input("Puntuación Directa F1: "))
            pd_f2 = float(input("Puntuación Directa F2: "))
            
            # --- FASE 1: PROCESAMIENTO ADELANTE ---
            idx = edad - 6
            z1 = (pd_f1 - f1_md[idx]) / f1_dt[idx]
            z2 = (pd_f2 - f2_md[idx]) / f2_dt[idx]
            n1, n2 = (z1 >= -1.0) + (z1 > 1.0), (z2 >= -1.0) + (z2 > 1.0)
            
            etiquetas = ["BAJO", "PROMEDIO", "ALTO"]
            diff_unidades = abs(n1 - n2)
            severidad = ["NULA", "MODERADA", "SEVERA"][diff_unidades]

            print(f"\n[DATO] F1: {etiquetas[n1]} (Z:{z1:.2f}) | F2: {etiquetas[n2]} (Z:{z2:.2f})")

            # --- FASE 2: PROCESAMIENTO ATRÁS (CONFIRMATORIO) ---
            id_sujeto = obtener_siguiente_id()
            status_confirmado = "N/A"
            msg_final = ""
            
            if n1 == n2:
                msg_final = f"Rendimiento Armónico Memoria {etiquetas[n1]}"
                status_confirmado = "Sincrónico"
            else:
                if n1 < n2:
                    print(f"\n[META]: Validar Hipótesis de retraso metafonológico (F1).")
                    check = input("¿Evidencia directa de déficit en segmentación/lectura? (s/n): ").lower()
                else:
                    print(f"\n[META]: Validar Hipótesis de incidencia socio-familiar (F2).")
                    check = input("¿Evidencia directa de vulnerabilidad social/migración? (s/n): ").lower()
                
                if check == 's':
                    status_confirmado = "SÍ"
                    msg_final = f"Confirmado: Indicio de factor {'Fonológico' if n1 < n2 else 'Ambiental'}"
                else:
                    status_confirmado = "NO"
                    msg_final = "Específico" if diff_unidades >= 2 else "No Relevante"

            print("-" * 75)
            print(f"VALORACIÓN PARA {id_sujeto}: {msg_final}")

            # --- GUARDADO DE DATOS ---
            guardar_datos_csv([id_sujeto, edad, pd_f1, pd_f2, round(z1, 2), round(z2, 2), severidad, status_confirmado, msg_final])
            print(f"[REGISTRO] Datos guardados correctamente en {FILE_NAME}")

        except (ValueError, IndexError):
            print(">> Error: Entrada no válida.")

        if input("\n¿Siguiente caso? (s/n): ").lower() != 's': break

if __name__ == "__main__":
    ejecutar_sistema_experto_final()


Resumiendo, se piden los datos de edad, F1-Pd y F2-Pd; con esos datos y los que contienen las listas definidas en el script se calculan las puntuaciones z de cada prueba. Si ambas puntuaciones se sitúan dentro del mismo rango el análisis se limita a valorar el rendimiento en Fluidez-Memoria verbal. Si (y sólo si) se observan z-discrepancia se aplica la segunda fase del análisis: confirmar la existencia de indicios de problemáticas específicas para F-débil; si es F1, problemas específicos en las habilidades segmentales y de lectura (ruta fonológica); si es F2, factores (contextuales) con incidencia negativa en el desarrollo (del lenguaje).

Este script permite la recogida de múltiples datos y su archivo en un documento .csv. En otro momento se retomará este documento para el análisis de datos.

No hay comentarios:

Publicar un comentario

Comenta esta entrada