Generación de ficheros PC-Axis desde Oracle mediante SAS

10

Click here to load reader

description

Ponencia presentada en las JECAS 2010

Transcript of Generación de ficheros PC-Axis desde Oracle mediante SAS

Page 1: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediant e SAS

Sierra Fumero, Carlos Gregorio

[email protected]

Ojeda Chirino, Fátima [email protected] Espino Báez, María del Carmen [email protected]

Instituto Canario de Estadística

Resumen: El Instituto Canario de Estadística hace uso de la herramienta SAS en su labor diaria, desde la que se accede a los microdatos estadísticos almacenados en una Base de Datos Oracle. Además, en el Instituto la estrategia de difusión adoptada se basa en el uso de la familia Pc-Axis. Con el fin de integrar las funciones de producción y de difusión basadas en ficheros en formato .px, hemos desarrollado una macro SAS que, partiendo de tablas de sumarización, genera ficheros en formato Pc-Axis. La macro contempla distintos niveles de agrupación y anidación de las variables de estudio y sus totales, generando uno o varios ficheros en formato .px, según corresponda. Se ha programado también la carga automática de un conjunto determinado de metadatos a partir de la información obtenida de las tablas y de unos valores prefijados que se incluyen automáticamente en los ficheros formato .px de resultados. A estos ficheros se les pasa un control de calidad y directamente se incluyen en el sistema de difusión. Palabras clave: SAS, Pc-Axis, macro, metadatos

Page 2: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

2 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

1. Introducción En el ISTAC se utiliza un sistema de gestión de bases de datos Oracle para almacenar toda aquella información necesaria para el desarrollo de la actividad estadística. Para la explotación de la base de datos, el personal estadístico tiene a su disposición la herramienta SAS Enterprise Guide, actualizada recientemente a su versión 4.2. En cuanto a la difusión de información estadística, actualmente se está trabajando en un nuevo sistema basado en el formato PC-Axis. Este nuevo formato tiene como una de sus principales características la posibilidad de incluir metadatos de forma conjunta a los datos. Se ha considerado un valor añadido muy importante, ya que con la inclusión de un conjunto de metadatos junto a la información en sí, también se incluye otro tipo de información sobre los datos, por ejemplo, cuándo se actualizó el fichero, cuándo se volverá a actualizar, la frecuencia de actualización, todo tipo de notas sobre variables, categorías, etc.; la fuente de la información y un largo etcétera. Desde hace un tiempo, se está llevando a cabo dentro del ISTAC un esfuerzo por concretar un núcleo de metadatos normalizado y un conjunto de directrices sobre el uso de los mismos.

Para facilitar la labor de la elaboración de ficheros PC-Axis, el ISTAC ha contratado el desarrollo de una aplicación que convierte directamente informes SAS en ficheros PC-Axis. La aplicación de conversión se ha desarrollado en la herramienta SAS Enterprise Guide 4.1 propia de SAS. Consiste en un macroprograma formado a su vez por un conjunto secuencial de más macroprogramas que se nutren de los ficheros planos ‘log’ generados por las tareas ‘Tablas de sumarización’ de Guide y del conjunto de datos de salida de la misma. Esta macro se almacena compilada dentro de un catálogo SAS en una ruta específica del servidor del ISTAC. De esta forma, el personal estadístico sólo tendrá que ejecutar la llamada a esta macro dentro de un archivo de código.

2. Funcionalidades de la aplicación Tal y como ya se ha comentado, la funcionalidad principal de la aplicación es convertir en ficheros PC-Axis informes generados en SAS mediante la tarea de Guide ‘Tablas de sumarización’.

- La aplicación implementada puede convertir estos tres tipos de informes básicos, atendiendo a la estructura de los mismos:

1) Informe con variables apiladas.

2) Informe con variables anidadas.

3) Informe con variables apiladas y anidadas a la vez, teniendo en cuenta si las variables

de anidamiento son iguales o no.

En el siguiente punto, se detallan los tres tipos de informes y el resultado de la conversión, en cada caso.

- Se considera también la opción de introducir variables de tipo jerárquico, dando origen

a un otro tipo de informes.

- Se pueden introducir todas las variables de clasificación que se desee, sin hacer distinción sobre si son numéricas o alfanuméricas.

- Se puede utilizar la variable ‘ALL’ de la tarea ‘Tablas de sumarización’, que dará lugar a

la visualización de totales y subtotales en el archivo final.

- Se visualizan en el archivo final todas las variables de análisis que el usuario refleje en la tarea Guide asociadas a el/los estadísticos que éste escoja. Todos estos contenidos

Page 3: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

3 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

de análisis se incluirán en el archivo PC-Axis dentro de una variable llamada ‘Indicadores’, salvo cuando sólo exista un estadístico, caso en el que esta variable ‘Indicadores’ no aparecerá.

- Los datos del informe final podrán ser poblacionales aunque los de entrada sean muestrales, sin más que introducir la variable que actuará como factor de elevación en el papel ‘Peso relativo’ de la tarea ‘Tablas de sumarización’.

- El usuario puede introducir metadatos a través de la tarea ‘Tablas de sumarización’ de

Guide, que se reflejarán en el archivo final. Esto se lleva a cabo aprovechando las diez líneas de títulos y notas al pie de dicha tarea. La cumplimentación de metadatos se verá con más detalle más adelante.

- Se posibilita la opción de hacer aparecer asteriscos en las celdas del archivo final que

hayan sido calculadas con un tamaño muestral inferior a uno escogido por el usuario. Los datos necesarios para llevar a cabo esta funcionalidad han de estar incluidos en la tabla de entrada de la tarea en una variable que se debe llamar ‘recuento’.

- El usuario puede escoger el símbolo que desee para representar los valores ‘missing’

del informe final.

- Se puede ejecutar la aplicación en modo batch de manera que se genere de manera automática un fichero en formato px para cada una de las tareas de ‘Tablas de sumarización’ que se hayan creado en un proyecto SAS.

- La ejecución de los procesos respetan el entorno multiusuario con que trabaja el

ISTAC, ubicando las salidas de las ejecuciones en los paths correspondientes de cada usuario.

3. Tipos de informe 1) Informe con variables apiladas La tabla de sumarización tendrá este aspecto:

VARIABLE 2

Valor 1 … Valor n2

VARIABLE 3 Valor 1 … Valor n3

VARIABLE 1

Valor 1 . . .

Valor n1

Los correspondientes selectores del archivo px tendrán esta estructura:

VARIABLE 1 (Lista de valores)

VARIABLE 2

(Lista de valores)

VARIABLE 3 (Lista de valores)

Page 4: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

4 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

Por ejemplo, este tipo de tabla se utilizaría para crear un archivo px titulado ‘Pasajeros entrados en Canarias según isla de destino y sexo o grupos de edad’. 2) Informe con variables anidadas En este caso, la tabla de sumarización tendrá este otro aspecto:

VARIABLE 2

Valor 1 … Valor n2

VARIABLE 3

Valor 1 … Valor n3

VARIABLE 1 Valor 1

.

.

. Valor n1

Los correspondientes selectores del archivo px quedarían así:

VARIABLE 1

(Lista de valores)

VARIABLE 2

(Lista de valores)

VARIABLE 3

(Lista de valores)

Éste es el tipo de informe más habitual y se utilizaría, por ejemplo, para crear un archivo px titulado ‘Pasajeros entrados en Canarias según isla de destino, sexo y grupos de edad’ 3) Informe con variables apiladas y anidadas a la v ez.

CASO A: Igual variable de anidamiento:

La tabla de sumarización referente a la estructura básica de un informe con variables apiladas y anidadas (con igual variable de anidamiento) tendrá este aspecto en Guide:

Page 5: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

5 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

VARIABLE 2

Valor 1 … Valor n2

VARIABLE 3 Valor 1 … Valor n3

VARIABLE 4

Valor 1 … Valor n4

VARIABLE 4 Valor 1 … Valor n4

VARIABLE 1

Valor 1 . . .

Valor n1

Y sus correspondientes selectores en el archivo ‘px’ quedarán del siguiente modo:

VARIABLE 1

(Lista de valores)

VARIABLE 2

(Lista de valores)

VARIABLE 3 (Lista de valores)

VARIABLE 4

(Lista de valores)

CASO B: Diferente variable de anidamiento:

La tabla de sumarización referente a la estructura básica de un informe con variables apiladas y anidadas (con diferente variable de anidamiento) tendrá este aspecto en Guide:

VARIABLE 2

Valor 1 … Valor n2

VARIABLE 3 Valor 1 … Valor n3

VARIABLE 4

Valor 1 … Valor n4

VARIABLE 5 Valor 1 … Valor n5

VARIABLE 1

Valor 1 . . .

Valor n1

En este caso, se crearán dos ficheros px, con el siguiente aspecto en sus selectores:

Page 6: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

6 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

Primer fichero px:

VARIABLE 1

(Lista de valores)

VARIABLE 2

(Lista de valores)

VARIABLE 4

(Lista de valores)

Segundo fichero px:

VARIABLE 1

(Lista de valores)

VARIABLE 3

(Lista de valores)

VARIABLE 5

(Lista de valores)

4) Informe con una variable jerárquica Cuando existe un conjunto de variables que representan una jerarquía, se puede lograr que en el fichero final esta jerarquía esté reflejada en una sola variable. Por ejemplo, si se tienen tres variables denominadas ‘Islas’, ‘Comarcas’ y ‘Municipios’, las cuales representan una jerarquía geográfica, se puede obtener una única variable conteniendo todos estos valores ordenados adecuadamente. Para que la conversión se lleve a cabo de forma correcta, es necesario que la jerarquía esté bien definida, esto es, cada valor hijo sólo puede tener un único padre. La forma de indicar a la aplicación la presencia de una jerarquía se verá más adelante. Una tabla de sumarización correspondiente a este tipo de informe podría tener la siguiente estructura:

VARIABLE 2

VARIABLE 3

JERÁRQUICA 1

JERÁRQUICA 2

JERÁRQUICA 3

VARIABLE 4

VARIABLE 5

VARIABLE 1

Los selectores del fichero final quedarían así:

VARIAB1 VARIAB2 VARIAB3 JERÁRQUICA VARIAB4 VARIAB5

Page 7: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

7 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

4. Cumplimentación de metadatos 1) Metadatos cumplimentados automáticamente Existe un conjunto de metadatos que son de obligada cumplimentación y tienen un valor relativamente fijo. La aplicación se encarga de asignar automáticamente el valor a estos metadatos. Como ejemplos se pueden citar los siguientes metadatos: · COPYRIGHT toma siempre el valor ‘YES’ y con ello en la difusión web quedaría la tabla protegida bajo las condiciones del copyright del Gobierno de Canarias. · CONTACT siempre toma el valor: Instituto Canario de Estadística (ISTAC) www.gobiernodecanarias.org/istac [email protected] 2) Metadatos STUB, HEADING, CODES y VALUES Los metadatos STUB y HEADING contienen los nombres de las variables que se van a colocar en principio como filas y columnas, respectivamente, del archivo px generado. Sus valores se determinan partiendo de la asignación de las variables clasificatorias a filas o columnas en la tarea ‘Tablas de sumarización’. Para cada una de las variables situadas en STUB y HEADING es necesario definir los metadatos CODES y VALUES. Estos metadatos contienen las descripciones de los códigos y etiquetas, respectivamente, de las categorías de las variables. Esta información se introduce de la siguiente forma: Los valores de CODES van a ser los que contenga la variable en la tabla SAS que se toma como origen de la tarea ‘Tablas de sumarización’. Los de VALUES se introducen por medio de un formato SAS definido por el usuario. El formato se define asignando una etiqueta a cada código. Estas etiquetas van a ser los valores incluidos en VALUES. 3) Metadatos introducidos a través de los títulos y notas al pie de la tabla de

sumarización La tarea ‘Tablas de sumarización’ permite la introducción de texto libre en hasta diez líneas de tíulos y otras diez de notas al pie. Los cinco primeros títulos se reservan para cuestiones varias. En lo que respecta a cumplimentación de metadatos, el segundo título sirve para introducir el título del archivo px que se guarda tanto en el metadato TITLE como en DESCRIPTION. Y el tercer título puede contener una nota a toda la tabla, que se va a guardar en el metadato NOTE. La función del contenido de los otros títulos se comentará más adelante. En los otros cinco títulos y las diez notas al pie se pueden introducir valores de metadatos, por medio de expresiones del tipo <NombreMetadato> = <ValorMetadato>, separados por el caracter ‘?’. Hay que destacar que, a pesar de que SAS limita la longitud de títulos y notas al pie a 254 caracteres, es capaz de admitir líneas de texto mucho mayores. Cuando la línea sobrepasa esta longitud, aparece en varias líneas en el archivo .log. La aplicación fue adaptada para leer estas múltiples líneas. De esta manera se consigue que se puedan incluir mayor número de metadatos y metadatos de longitud elevada. 4) Metadatos DATANOTECELL El metadato DATANOTECELL correspondiente a una celda determinada contiene un texto que se va a mostrar junto al dato contenido en dicha celda. Es cumplimentado por la aplicación cuando se utiliza la funcionalidad de añadir asteriscos a las celdas que se han calculado con un

Page 8: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

8 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

tamaño muestral insuficiente. En el punto siguiente se describen más detalles acerca de esto. En este caso, se asignaría al metadato el valor ‘(*)’. 5. Inclusión de asteriscos y símbolo para valores perdidos Introduciendo los valores adecuados en el título 5 de la tarea ‘Tablas de sumarización’ se pueden activar dos de las funcionalidades de la aplicación: la inclusión de asteriscos en celdas que han sido calculadas con tamaño muestral insuficiente y la asignación del símbolo deseado para representar valores ‘missing’. La forma de hacerlo es incluir en dicho título 5 el tamaño muestral hasta el cual se mostrarán los asteriscos y el símbolo para valores ‘missing’, separados por el caracter ‘?’. En el caso de que haya sido activada la inclusión de asteriscos en la tabla de entrada es necesaria la presencia de una variable denominada ‘recuento’, que representará el tamaño de la muestra con el que se ha calculado cada dato. Este valor es el que se comparará con el tamaño muestral mínimo para determinar qué celdas deben ser marcadas con el asterisco. El hecho de poder cambiar el símbolo que representa los valores ‘missing’ es útil, porque se ha establecido un conjunto de códigos de puntos predefinidos para dar más información acerca de la razón por la que el dato no está presente. Así un punto ‘.’ representa ‘No procede / Categoría no aplicable’, dos puntos ‘..’ representa ‘Dato no disponible’, tres puntos ‘…’ representa ‘Dato oculto por impreciso o baja calidad’, etc. 6. Diseño de la tabla de sumarización En este punto, se detalla la manera en que hay que configurar la tarea ‘Tablas de sumarización’ para obtener un fichero px a través de la correcta ejecución de la aplicación. Paso 1: Papeles de tarea En primer lugar, hay que elegir cuáles de las variables van a ser variables de clasificación y cuáles de análisis. La variable de análisis siempre debe ser numérica, mientras que como variables de clasificación se admiten tanto numéricas como alfanuméricas, si bien suelen ser del segundo tipo. Se puede seleccionar más de una variable de análisis. Tal y como se comentó anteriormente, en caso de que haya más de una variable, o bien, se especifique el cálculo de más de un estadístico para una sola, se creará en el archivo px final una variable ‘Indicadores’ conteniendo todos los estadísticos calculados. Es posible asignar un formato a cada variable de clasificación. Para ello, en primer lugar, es obligatorio para el buen funcionamiento de la aplicación la asignación del valor ‘Permitido’ a la opción ‘Formatos multietiqueta’. Luego, en la opción ‘Formato de cabecera’ se seleccionará el formato deseado. Normalmente, este formato se debe crear en un momento anterior del proyecto. También es conveniente, dejar en la opción ‘Ordenar por’ el valor por defecto, que es ‘Orden del conjunto de datos’. Esto implica, también, que en un momento previo los datos contenidos en la tabla de entrada se encuentren ordenados tal y como se desea que lo estén en el archivo px final. Por último, cabe citar que en la variable ‘Peso relativo’ se puede incluir una variable con pesos, que puede permitir, por ejemplo, el cálculo de estadísticos ponderados o la elevación de datos muestrales a poblacionales si se introducen factores de elevación, aunque no sea una cuestión que influye en el comportamiento de la aplicación.

Page 9: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

9 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

Paso 2: Tablas de sumarización En este paso, se define en primer lugar la estructura de la tabla, colocando las variables clasificatorias de forma apilada o anidada en filas o columnas, tal y como se desee que se presenten en el archivo px final. Es importante que las variables de análisis se coloquen todas apiladas entre sí y anidadas con las demás, de forma que ese nivel de variables de análisis corresponda con el último nivel de anidamiento, bien por filas o por columnas. En caso contrario, la aplicación no funcionará correctamente. Luego, se puede asignar uno o varios estadísticos a calcular para cada una de las variables, justo en la celda que aparece debajo del correspondiente a dichas variables. Se pueden utilizar todos los estadísticos que SAS ofrece, entre ellos Sum (suma), Mean (promedio), Min (mínimo), Max (máximo), etc. Se puede hacer uso de la variable universal ALL, para calcular totales y subtotales. No obstante, hay que ser muy cuidadoso si existen variables anidadas, puesto que si se incluye la variable ALL en una determinada posición, hay que hacerlo para todos los cruces que se produzcan en el mismo nivel de anidamiento. Otro aspecto importante en este punto es el etiquetado. 1) Etiquetado de variables. Si el nombre de la variable en la tabla de entrada no es el que se desea que aparezca en el archivo px final, se puede cambiar el valor ‘Etiqueta’ dentro de las propiedades de cabecera para dicha variable. Por ejemplo, si se desea que una variable llamada ‘COD_ISLA’ se llame ‘Islas’ en el px, se puede usar esta opción de etiquetado. 2) Etiquetado de contenidos de análisis. Cuando sólo se tiene un estadístico, no hace falta, puesto que la variable ‘Indicadores’ no va a aparecer. Cuando existe más de uno, se puede definir cómo va a aparecer dentro del listado de valores correspondientes a ‘Indicadores’, cambiando la etiqueta dentro de las propiedades de cabecera para cada uno de los estadísticos calculados. 3) Etiquetado de totales y subtotales. Usando el valor de la etiqueta dentro de las propiedades de cabecera de cada una de las variables ALL incluidas, se puede definir cómo se va a denominar dentro del listado de valores de la variable correspondiente dentro del archivo px final. Paso 3: Resultados En este paso, lo único que hay que tener en cuenta es que la aplicación necesita que los resultados se guarden en un conjunto de datos, al cual se le puede dar un nombre cualquiera. Paso 4: Títulos y pies de página En este paso, se rellenan los títulos y los pies de página de la tabla de la forma más conveniente teniendo en cuenta el resultado final deseado. Se ha comentado con anterioridad que los cinco primeros títulos están reservados. La función que cumplen algunos de ellos ya se han comentado. � El título 1 se debe rellenar con el nombre del fichero px final. � El título 2 se debe rellenar con el título (incluido en los metadatos TITLE y DESCRIPTION)

del fichero px final. � El título 3 se puede rellenar con una nota a la tabla (incluida en el metadato NOTE). � El título 4 se debe rellenar si se quiere especificar que hay un conjunto de variables que

representan una jerarquía. La forma de hacerlo es incluir los nombres de dichas variables, convenientemente ordenados y separados por el caracter ‘?’.

Page 10: Generación de ficheros PC-Axis desde Oracle mediante SAS

Generación de ficheros PC-Axis desde Oracle mediante SAS

10 Sierra Fumero, Carlos Gregorio

Ojeda Chirino, Fátima Espino Báez, María del Carmen

� El título 5 se utiliza, como ya se ha comentado, para activar la inclusión de asteriscos en celdas que han sido calculadas con tamaño muestral insuficiente y la asignación del símbolo deseado para representar valores ‘missing’.

Por otra parte, y tal como se ha indicado en una sección anterior, en los otros cinco títulos y los diez pies de página se pueden introducir valores de metadatos, por medio de expresiones del tipo <NombreMetadato> = <ValorMetadato>, separadas por el caracter ‘?’. 7. Modo batch La aplicación implementa el modo batch de manera totalmente transparente para el usuario, de manera que éste sólo tiene que incluir en su proyecto de Guide tantas tareas ‘Tablas de sumarización’ como archivos px desee generar. Posteriormente, una única llamada a la macro será suficiente para obtener los archivos px. La manera en que está implementado es la siguiente: El código SAS insertado de forma que se ejecute siempre antes y después de cada tarea sirve para ir guardando los archivos .log generados tras la ejecución de una tarea ‘Tablas de sumarización’. Cuando se invoca la ejecución de la aplicación, ésta tiene en cuenta todos estos archivos .log para generar todos los archivos px solicitados.