Este sitio utiliza cookies de Google para prestar sus servicios y analizar su tráfico. Tu dirección IP y user-agent se comparten con Google, junto con las métricas de rendimiento y de seguridad, para garantizar la calidad del servicio, generar estadísticas de uso y detectar y solucionar abusos.Más información

View site in english Ir a la página de inicio Contacta conmigo
sábado, 30 de enero de 2016

Base de datos de PISA, breve introducción

PISA (Programme for International Student Assessment) es un programa de la OCDE (Organización para la Cooperación y el Desarrollo Económico) destinado a la evaluación de políticas educativas. Consiste en una serie de exámenes y encuestas realizados a estudiantes de 15 años, escuelas y padres a nivel nacional en una serie de países adheridos al programa (en el año 2012 hubo 65 países participantes, y en el 2015 ya son más de 70). Estos exámenes tratan de evaluar el nivel de conocimientos en tres áreas principales: comprensión lectora, ciencias y matemáticas.

Además de los exámenes, se recogen datos socioeconómicos y de actitud y contexto de los estudiantes y sus padres, así como datos sobre las escuelas, mediante una serie de test adicionales y se añaden distintos índices socioeconómicos. Estos exámenes se realizan cada tres años y comenzaron en el año 2000, por lo que en la actualidad se dispone de datos de cinco años, que se pueden utilizar para estudiar la evolución y el impacto de las políticas educativas en los diferentes países participantes.

Constantemente se publican trabajos de investigación basados en esta base de datos, que contiene datos de millones de alumnos y escuelas (solo en el año 2012 se recogieron datos de 510.000 alumnos). Todo esto la hace muy apropiada para realizar prácticas de análisis de datos, no solo disponemos de una inmensa cantidad de datos, sino que se trata de datos reales con los que se publican muchos estudios que podemos tratar de reproducir.

Este es un enlace a la web oficial de PISA de la OCDE, donde se pueden encontrar, además de multitud de documentación y análisis publicados en varios idiomas, dichos datos en formato SAS y SPSS. Lo que yo he hecho es crear una serie de bases de datos SQL Server y volcar dichos datos en ella, de manera que podemos extraerlos con una aplicación de consulta, que también he desarrollado, en formato csv para poder utilizarlos con el programa estadístico R, que es gratuito. Tengo que decir que, por el hecho de haber manipulado los datos, estos no pueden considerarse oficialmente válidos, ya que, debido a su gran volumen, no puedo garantizar que haya conservado la integridad de los originales, solo los publico aquí con fines educativos, de cara a realizar prácticas de administración de bases de datos y análisis estadísticos.

En este artículo vamos a ver cómo están organizados estos datos y os hablaré de las principales tablas y la estructura de bases de datos que he creado, en sucesivos artículos entraremos más a fondo en las técnicas de análisis básicas que deben emplearse con estos datos, utilizando el programa R.

La entidad principal es el año en el que se realiza cada estudio. A nivel territorial, tenemos los diferentes países, o economías, que participan en el estudio. Para estos tenemos dos tipos de subdivisiones, una territorial, que divide el país en diferentes regiones, y la otra socioeconómica, que lo divide en estratos (rural, urbano, público, privado, etc.). Para cada país se indica el año o años en los que participa.

Los individuos de la muestra se dividen en tres grupos, alumnos, padres y escuelas.

Disponemos de una serie de cuestionarios, que recogen datos sobre el alumno, la escuela, los padres (solo en algunos países) o las preguntas de los exámenes de lectura, ciencias y matemáticas. Cada cuestionario consta de un buen número de preguntas, la gran mayoría de tipo Likert, junto con una serie de índices numéricos calculados a partir de las respuestas a grupos de preguntas y variables socioeconómicas referentes al alumno, padre o escuela. Podéis encontrar documentación con las preguntas y posibles respuestas de cada uno de los estudios en el enlace a la web oficial de PISA.

Por último, existen una serie de estadísticos con los cuales se deben realizar los cálculos sobre los datos, estos son las notas de los alumnos, los pesos de los alumnos y escuelas y una serie de pesos replicados para calcular los errores típicos.

Como están estructuradas las bases de datos de PISA

Debido a la gran cantidad de datos que contienen, además del hecho de que cada tres años se deben añadir nuevos datos, con un volumen cada vez mayor, resulta inviable mantenerlos todos dentro de la misma base de datos, por lo que he decidido crear una base de datos con las entidades de propósito general, como los años, países, cuestionarios y preguntas y, a nivel nacional, una base de datos por país que contiene todos los alumnos, escuelas, padres y sus respuestas a los diferentes cuestionarios, así como sus estadísticos correspondientes. De esta manera, se pueden instalar solo los datos de los países que nos interesan (el conjunto completo de datos ocupa actualmente unos 150 GB).

He incluido estas bases de datos en el proyecto POD, del que he hablado en otros artículos, y esta es la primera base de datos que debe instalarse. Aquí podéis descargar una copia de la base de datos de configuración de POD.

A continuación, debéis descargar e instalar la base de datos de PISA. Por último, en este otro enlace podéis descargar e instalar las bases de datos nacionales de PISA.

Lo que viene a continuación es una somera explicación de las principales tablas de la base de datos de PISA. No es necesaria para poder instalarla y utilizarla, solo la añado para quien pueda estar interesado.

Configuración de la base de datos de PISA

Empecemos por las tablas de configuración que permiten integrar esta base de datos en POD. En este enlace tenéis una descripción de la base de datos de configuración de POD. Todas estas tablas se encuentran en el esquema cfg de la base de datos PISAComun y se utilizan como auxiliares para construir las consultas mediante las que se obtienen los datos a través del API de POD.

Tablas de configuración de la base de datos PISA
Tablas de configuración de la base de datos PISA

Si habéis leído el artículo donde realizo una introducción a la configuración de POD, sabréis que las entidades son aquellos elementos que utilizamos para estructurar la información, que consiste en las respuestas y estadísticos correspondientes a cada alumno, padre o escuela, así, son entidades los años, los países, los cuestionarios, las preguntas, etc. Con estas tablas ofrecemos información a la aplicación WinPODUtil para construir el interfaz de usuario para el filtrado y la selección de los datos que nos interesan.

La tabla Configuracion_Entidades contiene esta información. id_cfgentidad es simplemente una clave autoincremental, el campo tabla indica de que tabla o vista se extraen los datos de una determinada entidad, con el campo clave se indica que campo de dicha tabla o vista contiene la clave de los datos (lo que ve la aplicación), y con el campo valor se indica lo que mostramos al usuario en lugar de esta clave.

El campo identificador es el identificador de la entidad según está registrado en las tablas de la base de datos PODConfiguracion (la aplicación de consulta accede siempre a la base de datos PODConfiguracion, y, a través de ella, a PISA, por eso las entidades deben estar registradas allí). id_tipovalor indica el tipo de valor de la clave, que puede ser N (numérico) o A (alfanumérico), orden se utiliza para ordenar la consulta sobre los datos de la entidad, contiene los números de orden, separados por comas, de los campos por los que se ordenan los datos devueltos (básicamente son los argumentos de la cláusula order by de la sentencia SQL que se construye).

El campo valor_devuelto puede contener un campo alternativo al indicado en valor (que es el dato que se muestra al usuario) de cara al proceso de los resultados. Se utiliza solo para indicar de qué campo se extrae el valor de las respuestas y los diferentes tipos de valores faltantes. valor_columna vale 0 para las entidades cuyos resultados no se devuelven como una columna de la tabla de resultados, sino como un campo dentro de cada fila. Si vale 1 los datos devueltos constituyen una columna por cada clave de la entidad. Para entender esto con un ejemplo, el año es una sola columna, aunque existan diferentes años, pero cada pregunta constituye una columna diferente en los resultados devueltos. En el campo entidad_columna se indica el código de la entidad de la que se extraen los valores con los que se rellena la columna, en caso de que no sea de la propia entidad, por ejemplo, en cada columna pregunta se devuelve la respuesta, que es una entidad diferente.

Con el campo interna simplemente se indica si la entidad es para uso interno de los procedimientos de la base de datos, y codigo_resumen y valor_resumen son utilizados por la aplicación de consulta para mostrar un resumen de la selección del usuario antes de realizar la consulta de los datos.

Bueno, esta era la más complicada. Con la tabla Campos_Entidades se definen los campos de las entidades que se pueden devolver al usuario, así como cuál de ellos es el campo por defecto. Por ejemplo, la entidad país tiene como campo por defecto el nombre del país, pero tiene campos adicionales como el código ISO o si era un país OCDE en el momento de realizarse el examen.

La tabla Filtros_Entidades se utiliza para configurar que entidades sirven como filtro a otras entidades. Por ejemplo, los países se pueden filtrar por año, y las divisiones territoriales de los países por país y por año. Con esto se configura la aplicación de cara a permitir al usuario realizar la elección de los sucesivos filtros sobre los datos. Para quién siga leyendo a estas alturas y se pregunte el porqué de tantas complicaciones, pensad que el programa de consulta no sabe nada sobre la base de datos ni su estructura, es un programa de propósito general, que vale tanto para PISA como para cualquier otro conjunto de datos que incluyamos en POD.

El resto de tablas son auxiliares para facilitar el complejo sistema de construcción de consultas necesario para devolver los resultados.

Tablas de estructura de datos de la base de datos de PISA

Estas tablas se encuentran en el esquema pisa, los datos que contienen están extraídos directamente de los archivos originales proporcionados por la OCDE, tanto los datos en sí como los archivos de control para cargarlos en SPSS, y sus campos se mapean con la información procedente de los mismos, la única información añadida son las claves de las tablas y los enlaces entre ellas.

La primera tabla, que se puede considerar como la entidad raíz, es la de años, es una tabla muy simple, con un solo campo que indica el año del estudio, existen registros para los años 2000, 2003, 2006, 2009 y 2012.

Para la estructura territorial tenemos las siguientes tablas:

Tablas de división territorial en la base dee datos PISA
Tablas de diovisiones territoriales de la base de datos de PISA

Los campos inicio y final indican en que columna de los archivos originales empieza y termina el campo (los datos originales consisten en texto plano con posiciones y tamaños fijos de columna). El campo nombre_pisa es el nombre dado a la columna correspondiente en la documentación de PISA.

En cuanto a la estructura de tablas para almacenar los diferentes cuestionarios y sus preguntas es la siguiente:

Tablas de preguntas de la base de datos de PISA
Tablas de preguntas de la base de datos PISA

Los cuestionarios se clasifican mediante la tabla tipos_cuestionario. Las preguntas se almacenan en las tablas preguntas_cuestionario y preguntas. Actualmente hay una relación 1:1 entre estas dos tablas, por lo que se pueden considerar como una sola entidad. La idea original era poder tener una misma pregunta asociada con varios cuestionarios. El campo codigo_pisa contiene el código original de la pregunta tal como viene en la documentación de PISA, columna_inicio y columna_final hacen referencia a la columna de inicio y final de la respuesta a la pregunta correspondiente en los datos originales de la OCDE, el texto de la pregunta se ha copiado literalmente de los datos originales de PISA, por lo que están todas en inglés.

Las preguntas pueden tener respuestas numéricas (como por ejemplo la edad), o pueden ser factores (Si o No, de acuerdo, en desacuerdo, etc.), con la tabla tipos_respuesta se identifica la clase de respuesta que corresponde a cada pregunta.

Para las respuestas de tipo factor, la tabla factores contiene todas las respuestas posibles, nuevamente copiadas literalmente de las proporcionadas en los datos originales de la OCDE, y a cada pregunta se le asocian las posibles respuestas mediante la tabla factores_preguntas.

Por último, la tabla grupos_preguntas se utiliza para agrupar las mismas preguntas realizadas en años diferentes, que en ocasiones se codifican con códigos diferentes dependiendo del año. Por ejemplo, la edad, el sexo, etc. son preguntas que se repiten todos los años. Existe una opción al consultar los datos que permite seleccionar si las respuestas a estas preguntas se devuelven en columnas diferentes, una para cada año, o bien todas en la misma columna, bajo la denominación del grupo.

Tablas de datos de la base de datos de PISA

Estas tablas están contenidas en cada una de las bases de datos nacionales, y contienen los alumnos, escuelas y padres, así como las respuestas a los diferentes cuestionarios y los estadísticos correspondientes a cada alumno, como las notas, los pesos y los pesos replicados.

Las tablas donde se almacenan los diferentes individuos de la muestra son las de alumnos, escuelas y padres:

Tablas de individuos en la base de datos PISA
Tablas de individuos de la base de datos PISA

Aunque, dado un alumno, la escuela a la que corresponde y sus padres pertenecen al mismo estrato y división territorial, estos datos están duplicados en las tres tablas, ya que las consultas se pueden hacer solamente por escuela o por padres, y existen demasiados registros en la tabla de alumnos como para cruzarla en una consulta solo para obtener esta información, así que sacrificamos la normalización de las tablas en favor de la optimización de las consultas. En el campo codigo de la tabla de escuelas y de alumnos se encuentra el código asignado en la base de datos original al alumno o a la escuela.

Los estadísticos referentes a los individuos (pesos, pesos replicados y notas), se encuentran en las siguientes tablas:

Tablas de estadísticos de PISA
Tablas de estadísticos de la base de datos PISA

En todas ellas, el campo valor_txt es el valor literal que viene en los datos oficiales de la OCDE.

Por último, como existe una gran cantidad de respuestas a los diferentes cuestionarios, las he dividido en cinco tablas diferentes, para optimizar el acceso:

Tablas de respuestas de la base de atos PISA
Tablas de respuestas de la base de datos PISA

Las respuestas del cuestionario del alumno se han dividido en dos tablas, respuestas_alumnos y respuestas_otros, en respuestas_rms están las respuestas de los exámenes de lectura, matemáticas y ciencias. Las respuestas a los cuestionarios de las escuelas están en respuestas_escuelas y las del cuestionario de los padres en respuestas_padres. En el campo valor_alfa viene el valor literal de la respuesta en la base de datos de la OCDE, mientras que valor_num tiene el valor convertido a número, en caso de ser posible.

Las respuestas pueden ser válidas o alguno de los diferentes valores nulos (NA, Invalid, Missing, Not Reached, Ungraded o Ambiguous, según codificación literal de la OCDE). La clase de respuesta se indica en el campo id_clase. Las clases de respuestas se encuentran en la tabla clase_respuesta, en el esquema PISAComun:

Tabla de clasificación de respuestas de la base de datos PISA
Tabla de clasificación de respuestas en la base de datos PISA

El campo validez es 1 para las respuestas válidas y 0 para los valores nulos, valor_devuelto es el código por defecto que se devuelve al usuario como valor de la respuesta. Si vale NULL se devuelve el valor contenido en la tabla de respuestas correspondiente.

Comparte este artículo: Compartir en Twitter Compártelo en Facebook Compartir en Google Plus Compartir en LinkedIn
Comentarios (0):
* (Su comentario será publicado después de la revisión)

E-Mail


Nombre


Web


Mensaje


CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code