GUIA DE NUTRICION Y ENTRENAMIENTO para principiantes
Generación de ficheros PC-Axis desde Oracle mediante SAS
1. Generación de ficheros PC-Axis desde Oracle mediante SAS
Sierra Fumero, Carlos Gregorio
csiefum@gobiernodecanarias.org
Ojeda Chirino, Fátima
fojechi@gobiernodecanarias.org
Espino Báez, María del Carmen
mespbae@gobiernodecanarias.org
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
2. Generación de ficheros PC-Axis desde Oracle mediante SAS
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
2
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
3. Generación de ficheros PC-Axis desde Oracle mediante SAS
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 VARIABLE 3
Valor 1 … Valor n2 Valor 1 … Valor n3
VARIABLE 1
Valor 1
.
.
.
Valor n1
Los correspondientes selectores del archivo px tendrán esta estructura:
VARIABLE 2
(Lista de valores)
VARIABLE 1
(Lista de valores)
VARIABLE 3
(Lista de valores)
3
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
4. Generación de ficheros PC-Axis desde Oracle mediante SAS
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 VARIABLE 2 VARIABLE 3
(Lista de valores) (Lista de valores) (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 vez.
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:
4
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
5. Generación de ficheros PC-Axis desde Oracle mediante SAS
VARIABLE 2 VARIABLE 3
Valor 1 … Valor n2 Valor 1 … Valor n3
VARIABLE 4 VARIABLE 4
Valor 1 … Valor n4 Valor 1 … Valor n4
VARIABLE 1
Valor 1
.
.
.
Valor n1
Y sus correspondientes selectores en el archivo ‘px’ quedarán del siguiente modo:
VARIABLE 2
(Lista de valores)
VARIABLE 1 VARIABLE 4
(Lista de valores) (Lista de valores)
VARIABLE 3
(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 VARIABLE 3
Valor 1 … Valor n2 Valor 1 … Valor n3
VARIABLE 4 VARIABLE 5
Valor 1 … Valor n4 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:
5
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
6. Generación de ficheros PC-Axis desde Oracle mediante SAS
Primer fichero px:
VARIABLE 1 VARIABLE 2 VARIABLE 4
(Lista de valores) (Lista de valores) (Lista de valores)
Segundo fichero px:
VARIABLE 1 VARIABLE 3 VARIABLE 5
(Lista de valores) (Lista de valores) (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
6
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
7. Generación de ficheros PC-Axis desde Oracle mediante SAS
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
consultas.istac@gobiernodecanarias.org
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
7
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
8. Generación de ficheros PC-Axis desde Oracle mediante SAS
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.
8
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
9. Generación de ficheros PC-Axis desde Oracle mediante SAS
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 ‘?’.
9
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen
10. Generación de ficheros PC-Axis desde Oracle mediante SAS
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.
10
Sierra Fumero, Carlos Gregorio
Ojeda Chirino, Fátima
Espino Báez, María del Carmen