Vous êtes sur la page 1sur 27

RECOLECCIÓN DE DATOS Y TRATAMIENTO PRIMARIO DE LA INFORMACIÓN

LICENCIATURA EN ESTADÍSTICA

INTRODUCCIÓN A SAS

Dr. José Alberto Pagura

Mg. Javier Bussi

Facultad de Ciencias Económicas y Estadística

Universidad Nacional de Rosario

1
INTRODUCCION A SAS

El presente documento contiene un conjunto de notas elaboradas como material de


apoyo para la materia Recolección de Datos y Tratamiento Primario de la Información
de primer año de la Licenciatura en Estadística. Se trata de una breve reseña del uso
básico del programa SAS para la lectura y depuración de conjuntos de datos y todo el
tratamiento previo necesario para la posterior aplicación de análisis más complejos. Se
presenta también la forma de obtener resultados elementales como tablas y gráficos.

I. ¿Qué es SAS?

SAS es un programa de computación que provee las herramientas necesarias para el


análisis de datos, permitiendo las siguientes acciones:

- lectura de datos
- transformaciones
- manipulación de datos
- edición y almacenamiento de la información
- elaboración de informes
- construcción de gráficos
- descripción estadística
- análisis estadístico

II. INGRESO A SAS

Se ingresa a SAS haciendo doble clic en el ícono de SAS que se encuentra en el


escritorio, si ha sido instalado de esa manera. Tras eso, se observará lo siguiente:

2
En esta vista, puede encontrarse una primera línea presentando opciones de menú:

un cuadro de diálogo que permite introducir comandos para la ejecución inmediata:

una barra con íconos que permiten la ejecución de tareas:

Pueden verse también, las siguientes tres ventanas:

- Explorer (a la izquierda) permitirá ver ficheros y carpetas

- LOG (superior) presenta información sobre la ejecución de un programa (errores,


etc.)

- EDITOR (inferior) que se empleará para escribir instrucciones de un programa SAS.

SAS utiliza además otras ventanas:

- OUTPUT: en ella se presentan los resultados numéricos o de texto producto del


tratamiento de un conjunto de datos

- GRAPH: presenta los gráficos que se han realizado.

- RESULTS: presenta de manera similar a Explorer los resultados obtenidos de la


ejecución de programas permitiendo navegar por las diferentes componentes de las
salidas obtenidas

3
El cambio de ventanas puede hacerse mediante el menú Windows ( )

En SAS se puede trabajar a través del menú o con un lenguaje de comandos que
permite elaborar programas para la ejecución de las tareas. Si bien el trabajo por
medio del menú no requiere conocimientos de programación de SAS, lo que resulta
una simplificación importante para los usuarios, las posibilidades son limitadas, por lo
que consideramos adecuado para los objetivos de la materia, desarrollar los elementos
esenciales de la programación por medio del lenguaje de comandos. Entonces, solo
excepcionalmente se hará referencia a las tareas posibles de realizar con el uso del
menú. En los próximos párrafos se expondrá el uso básico de SAS por medio de
lenguaje de comandos para la realización de tareas de lectura y depuración de datos y
tratamiento de los mismos para la obtención de los resultados deseados.

III. USO DE COMANDOS SAS

Un programa SAS estará compuesto por “líneas de programa” o “sentencias” que


seguirán diferentes reglas de sintaxis de acuerdo a la clase de tarea que se requiera a
SAS que ejecute. En general, una tarea requerirá de más de una “línea de programa”.
Las instrucciones SAS pueden clasificarse en párrafos o procedimientos y la diferencia
entre ellos se podrá apreciar más adelante. Si debe quedar claro que, una línea de
programa debe finalizar con el carácter “;” y un párrafo o procedimiento finaliza con el
comando RUN o con el inicio de otro párrafo u otro procedimiento.

III.1. CREACIÓN DE UN CONJUNTO DE DATOS SAS

Para que los datos puedan ser tratados por SAS deben estar almacenados en lo que se
conoce como un “sas data set” (conjunto de datos SAS). Un conjunto de datos SAS
contendrá los datos organizados en una tabla rectangular donde las observaciones
corresponden a las filas y las variables a las columnas. Además, contendrá información
sobre las variables que se han registrado.

Mencionaremos aquí, tres clases de variables posibles de tratar en SAS:

- Numéricas.

- Caracter (al indicar su nombre se agregará el signo $ dejando un espacio


intermedio), las cuales representan variables cualitativas.

- Fecha.

La creación de un data set (etapa posterior a la recolección de datos y previa al


procesamiento) se puede realizar:

4
- ingresando los datos en forma interactiva

- tomándolos desde un fichero de tipo texto

- tomándolos desde un fichero generado por algún programa, en un formato que


SAS puede entender.

Se presentan aquí, los comandos necesarios para la “carga” de los datos en las dos
primeras formas, ya que la tercera se llevará a cabo empleando opciones de menú.

a) CONSTRUCCIÓN DE UN SAS DATA SET A PARTIR DEL INGRESO DE LOS


DATOS MANUALMENTE

Ejemplo 1:

Los siguientes datos corresponden a puntajes asignados por jueces a diferentes vinos,
los que correspondes a tres regiones:

1.0 3.3 2.8 3.1 9.8 A


1.0 4.4 4.9 3.5 12.6 A Primera columna: claridad
1.0 3.9 5.3 4.8 11.9 A Segunda columna: aroma
1.0 3.9 2.6 3.1 11.1 A Tercera columna: cuerpo
1.0 5.6 5.1 5.5 13.3 A Cuarta columna: sabor
1.0 4.6 4.7 5.0 12.8 A Quinta columna: calidad
1.0 4.8 4.8 4.8 12.8 A Sexta columna: región
1.0 5.3 4.5 4.3 12.0 A
1.0 4.3 4.3 3.9 13.6 C
1.0 4.3 3.9 4.7 13.9 A
1.0 5.1 4.3 4.5 14.4 C
0.5 3.3 5.4 4.3 12.3 B
0.8 5.9 5.7 7.0 16.1 C
0.7 7.7 6.6 6.7 16.1 C
1.0 7.1 4.4 5.8 15.5 C
0.9 5.5 5.6 5.6 15.5 C
1.0 6.3 5.4 4.8 13.8 C
1.0 5.0 5.5 5.5 13.8 C
1.0 4.6 4.1 4.3 11.3 A
0.9 3.4 5.0 3.4 7.9 B
0.9 6.4 5.4 6.6 15.1 C
1.0 5.5 5.3 5.3 13.5 C
0.7 4.7 4.1 5.0 10.8 B
0.7 4.1 4.0 4.1 9.5 B
1.0 6.0 5.4 5.7 12.7 C
1.0 4.3 4.6 4.7 11.6 B
1.0 3.9 4.0 5.1 11.7 A
1.0 5.1 4.9 5.0 11.9 B
1.0 3.9 4.4 5.0 10.8 B
1.0 4.5 3.7 2.9 8.5 B
1.0 5.2 4.3 5.0 10.7 B
0.8 4.2 3.8 3.0 9.1 A
1.0 3.3 3.5 4.3 12.1 A

5
1.0 6.8 5.0 6.0 14.9 C
0.8 5.0 5.7 5.5 13.5 A
0.8 3.5 4.7 4.2 12.2 A

La secuencia de comandos para la creación de un SAS Data Set, en caso de ingresar


los datos en forma interactiva es:

DATA VINOS;
INPUT claridad aroma cuerpo sabor calidad region $;
CARDS;
“lista de valores”
;
RUN;

Para que los comandos sean ejecutados, se deberá escribir en el cuadro de diálogo de
la parte superior izquierda, SUBMIT, como se ilustra a continuación:

para luego hacer “clic” en el .

Esta tarea puede realizarse en forma automática haciendo “clic” en de la barra de


íconos de la parte superior.

b) CONSTRUCCION DE UN SAS DATA SET A PARTIR DE UN ARCHIVO DE TEXTO


(Archivo ASCII)

Si los datos se encuentran grabados en un archivo ASCII llamado VINOS.DAT, en la


carpeta rdtpi del disco c:\, el proceso de creación del data set será:

DATA VINOS;
INFILE “c:\rdtpi\vinos.dat”;
INPUT claridad aroma cuerpo sabor calidad region $;
RUN;

Cabe mencionar aquí, que en la lectura de los datos en la ventana Editor, o desde un
archivo ASCII con la sentencia INPUT, basta con que los diferentes valores de la
variable se encuentren separados por espacios en blanco. Ocurre a veces, que los
datos no están dispuestos de esa manera, por ejemplo categorías de una variable
cualitativa que se codifican con cadenas de caracteres que contienen espacios en
blanco intermedios, dando así lugar a confusión. También, podrían los datos de un
mismo registro, estar dispuestos sin separaciones. En esos casos, puede, en la

6
sentencia INPUT, especificarse las posiciones que en cada registro del archivo, ocupan
las variables. Para el caso de los datos que se están considerando, estás
especificaciones se escribirían como sigue:

INPUT claridad 1-3 aroma 4-10 cuerpo 11-17 sabor 18-24 calidad 25-32 region 33-37
$;

7
Ejemplos de programas en SAS:

* Este programa muestra como crear un conjunto


de datos en SAS (SAS dataset);

* Lectura de datos ingresandolos manualmente


o copiando de un archivo (.doc /.txt /.dat/ etc.);

data vinos;
input claridad aroma cuerpo sabor calidad region $;
cards;

1.0 3.3 2.8 3.1 9.8 A


1.0 4.4 4.9 3.5 12.6 A
1.0 3.9 5.3 4.8 11.9 A
;
run;

* Lectura de datos leyendo los datos de un archivo de datos .dat;

data vinos2;
infile "\\Mathserver\RecDat\SAS datos\vinos.dat";

* el comentario entre comillas en la sentencia infile describe la


ubicación del archivo del cual vamos a leer los datos. En este caso
se muestra un archivo que está en el servidor. Si tuvieramos el
archivo .dat en la carpeta SAS en Mis Documentos en nuestra PC,
entonces la dirección apropiada sería:
"C:\Documents and Settings\alumnos\Mis documentos\SAS\vinos.dat" ;

input claridad aroma cuerpo sabor calidad region $;


run;

data vinos3;
infile "C:\Documents and Settings\alumnos\Mis documentos\SAS\vinos.dat";
input claridad aroma cuerpo sabor calidad region $;
run;

8
c) CONSTRUCCION DE UN SAS DATA SET A PARTIR DE OTRA CLASE DE
FICHEROS

El archivo mundo.xls, presentado en Pérez(2001), contiene los siguientes datos de 109


países: nombre del país, población, densidad, porcentaje de población urbana, religión
predominante, porcentaje de alfabetización y tasa de mortalidad infantil.

Si se quiere construir un conjunto de datos SAS con estos datos, puede procederse del

siguiente modo empleando la opción de menú “file” ( )

File->import data presenta el siguiente cuadro de diálogo

Allí se puede seleccionar el formato del archivo de origen desplegando el menú


correspondiente. Una vista parcial del mismo es la siguiente:

en la que puede apreciarse una interesante variedad de formatos.

9
Eligiendo el formato adecuado se debe pulsar el botón accediendo a un
nuevo cuadro de diálogo que permitirá seleccionar la ubicación del archivo y su
nombre.

Volviendo a pulsar se accede a un cuadro de diálogo en el que se indicarán


las dos componentes del nombre del conjunto de datos SAS.

permitirá acceder al siguiente cuadro de diálogo:

10
Presionando se habrá concluido la tarea de importación. Pero, como se
observa en el cuadro de diálogo, este proceso se realizó empleando el PROC IMPORT,
solo que facilitado aquí por el uso de opciones de menús. Las instrucciones utilizadas
podrán almacenarse en un archivo de texto para, por ejemplo, utilizarse en forma
rápida, en otra ocasión. Eso se consigue completando el cuadro vacío con el sendero y
nombre de archivo con el que se desea grabar el conjunto de instrucciones. En este
caso, el procedimiento completo es:

PROC IMPORT OUT= WORK.mundo DATAFILE= "C:\Rec. de Datos y Trat. Primario de


la Inf\MUNDO .XLS" DBMS=EXCEL2000 REPLACE; GETNAMES=YES;
RUN;

Librerías

Los archivos de SAS creados de la forma en la que hasta aquí se ha visto, se eliminan
al finalizar la sesión. De ser necesaria su utilización en otra sesión de SAS, deberán
crearse nuevamente. La forma de crear archivos SAS que queden almacenados de
manera permanente en algún dispositivo de memoria es por medio del uso de librerías,
lo cual se expone en los párrafos siguientes.

Los conjuntos de datos de SAS llevan un nombre compuesto por dos partes separadas
por el carácter “.”; esas partes son el nombre de la librería y el nombre del archivo. El
nombre de la librería referencia una carpeta de Windows en la que almacenará el
archivo SAS creado. Si se observa la lista de comandos que fue necesario ejecutar

11
para crear el conjunto de datos SAS que se llamó “mundo”, se puede ver en la primera
línea del programa el texto “WORK.mundo” haciendo referencia al conjunto de datos
que se crea y allí se encuentra el nombre compuesto que se mencionó. WORK indica
que el conjunto de datos se almacena en la carpeta WORK, cuya existencia puede
verificarse con el explorador de Windows, y el conjunto de datos llevará el nombre
“mundo”.

En la presentación anterior de la sintaxis del párrafo DATA, solo se escribió, al crear un


conjunto de datos SAS, solo el nombre de él. Si se procede de esa manera, el archivo
se almacenará en la carpeta WORK; en otras palabras es indistinto escribir como
primer nombre del archivo SAS, la palabra WORK, o no escribir nada. Pero, de operar
así, el archivo generado solo quedará almacenado mientras no se finalice la sesión de
trabajo; al finalizar la sesión de SAS, el archivo se borrará automáticamente.

Para que un conjunto de datos SAS quede almacenado de manera permanente en un


soporte, se deberá proceder según el siguiente esquema.

- se asignará a una carpeta de Windows un nombre ficticio que tendrá vigencia en la


sesión actual, por medio del siguiente comando

libname “nombre de la librería” “carpeta de Windows”;

Por ejemplo:

libname datos “C:\Documents and Settings\alumnos\Mis documentos\SAS";

asignará el nombre datos a la carpeta: C:\Documents and Settings\alumnos\Mis


documentos\SAS

luego, se creará el conjunto de datos por medio, por ejemplo, del párrafo DATA,
indicando el nombre del archivo por su nombre compuesto:

DATA datos.vinos;

Para luego continuar con las instrucciones ya presentadas.

Se menciona por último, que podrá definirse más de una librería, en una misma sesión
de SAS. Esto será necesario si las operaciones de lectura y grabación se realizarán
sobre diferentes carpetas y/o dispositivos.

De manera similar podríamos crear una librería en SAS antes de la construcción de un


sas data set a partir de otra clase de ficheros. Para el caso ya visto del archivo
mundo.xls, antes de importarlo se puede crear una librería por ejemplo:

12
libname datos “C:\Documents and Settings\alumnos\Mis documentos\SAS";

Luego, al momento de importar el archivo, debemos elegir la librería creada, cuyo


nombre aparecerá en el menú desplegable como una opción debajo de la palabra
Library. La operación se completa como fue explicado anteriormente para el archivo
mundo.xls. Por lo tanto ahora en la carpeta datos aparecerá el data set permanente
mundo, con los datos importados del archivo correspondiente mundo.xls de Excel.

Sentencia FILENAME

De forma similar a LIBNAME, FILENAME asigna a un archivo externo a SAS un nombre


temporal.

Por ejemplo, si se desea crear el DATA VINOS, pero por algún motivo se desea asignar
un nombre al archivo externo del cual se leerán los datos, se podrían escribir los
siguientes comandos:

FILENAME vin “C:\Documents and Settings\alumnos\Mis documentos\SAS\vinos.dat";


DATA VINOS;
INFILE vin;
INPUT claridad aroma cuerpo sabor calidad region $;
RUN;

Grabación de un programa SAS

En muchas oportunidades, se necesita almacenar un programa SAS que se ha


desarrollado en una determinada sesión. La grabación del programa se pude hacer
recurriendo a opciones de menú: file->Save as, habilitarán en siguiente cuadro de
diálogo que deberá ser completado con el nombre que se quiera dar al programa.
Además, se podrá elegir el tipo de archivo en el menú desplegable que se puede ver en
la figura siguiente:

13
Para finalizar lo tratado en este apartado se reitera que las sentencias posibles de
utilizar cuando se define un conjunto de datos SAS son: DATA, INPUT, CARDS, RUN,
LIBNAME, INFILE, y FILENAME. La elección de las sentencias que se utilizarán
dependerá del origen de los datos a guardar y de la forma en la que se desee su
almacenamiento.

III.2 CREACION DE DATA SETS A PARTIR DE OTROS EXISTENTES

La creación de nuevas variables, la depuración de un archivo, la recodificación, la


selección de un subconjunto de casos o de variables, etc. hacen necesaria la creación
de nuevos data sets. Esta tarea se realizará utilizando la siguiente secuencia de
sentencias:

DATA: dará comienzo a la tarea y en ella se dará un nombre al data set que será
creado.
SET: se indicará el nombre de un SAS data set existente del cual se leerán los datos.

Ejemplo:

En el ejemplo de los vinos, se desea crear un data set que contenga las mismas
variables con una nueva que se obtiene multiplicando “calidad” por 2.

data vinosnu;
set datos.vinos;
ncal=calidad*2;
run;

14
Creación y transformación de variables

La forma de asignar valores a una variable será:

Nueva variable = expresión;

Ejemplo: ncal=calidad*2;

Las expresiones pueden contener constantes, variables y funciones combinadas por


operadores.

Operadores aritméticos:

+: suma
-: resta
*: multiplicación
/:división
**: exponenciación

Operadores de comparación

= igual
^= distinto
> mayor
>= mayor o igual
<= menor o igual
< menor

Operadores lógicos

& and (y)


| or (o)
^ not (no)

Otros operadores

>< máximo
<> mínimo
|| concatenación

Funciones

Una función se define de la siguiente forma:

variable=nombre de función(argumentos)

Ejemplos:

raizd=sqrt(diam);

Algunas funciones:

SQRT(“escalar”) raíz cuadrada

15
ABS(“escalar”) valor absoluto

MAX(“lista de valores o variables”) Máximo de la lista

MIN(“lista de valores o variables”) Mínimo de la lista

Seleccionando un subconjunto de observaciones

Para la selección de un subconjunto de observaciones se utilizará la sentencia IF.


Quedarán en el data set creado, las observaciones que cumplan con la condición
incluída en la sentencia IF.
La forma de la sentencia es:

IF expresión lógica;

Los operadores disponibles son: GT LT GE LE EQ NE.


Puede enunciarse una condición como combinación de dos expresiones lógicas
vinculadas con OR o AND.

Ejemplo

data bvinosra;
set datos.vinos;
if (calidad gt 12) and (region="A");
run;

Quedará un nuevo data set que contendrá los vinos de la región A con puntajes de
calidad mayores de 12. La sentencia if selecciona los registros del data set original que
cumplen con la condición especificada.

IF expresión lógica THEN DELETE;

Ejemplo:

data mvinosrc;
set datos.vinos;
if calidad gt 14 or region ne "C" then delete;
run;

En este caso, el nuevo conjunto de datos incluirá a los vinos de la región C con
puntajes de calidad menores o iguales a 14. La sentencia if combinada con la
expresión then delete, elimina los registros del data set original que cumplen con la
expresión lógica especificada.

Data sets que contienen un subconjunto de variables

Las opciones DROP y KEEP, de la sentencia DATA, permitirán eliminar o incluir las
variables que no se desean o si, incluir en un nuevo conjunto de datos SAS.

16
Ejemplo:

data vinos_algunas (keep= claridad aroma cuerpo);


set datos.vinos;
run;

Con estas sentencias se obtendrá un data set que contiene las variables claridad,
aroma y cuerpo’. El mismo resultado se puede obtener con:

data vinos_algunas (drop= claridad aroma cuerpo);


set datos.vinos;
run;

Combinación y ampliación de data sets

Puede ser necesario en muchos casos combinar dos conjuntos de datos similares, por
ejemplo datos de una misma encuesta para distintas regiones, datos clínicos
correspondientes a dos centros médicos diferentes, datos de productos
manufacturados correspondientes a dos máquinas distintas, etc.. La sentencia SET
ayuda a combinar los dos conjuntos de variables.

SET dataset1 dataset2;

Es importante notar que se necesita que los dos conjuntos cuenten con las mismas
variables, en caso contrario se podrán generar datos faltantes.
Ejemplo:

data vinos_extendido;
set datos.vinos vinosd;
run;

En este caso datos.vinos es el archivo (fichero) permanente creado en la biblioteca


datos correspondiente a los datos originales del ejemplo de los vinos. El conjunto de
datos SAS (SAS data set) vinosd corresponde a nuevas observaciones
correspondientes a vinos de la región D. Esta operación también se llama
concatenación de data sets, y se pueden combinar más de dos conjuntos.
El orden de los datos respeta el orden ingresado en la sentencia. En este caso las
observaciones del data set datos.vinos aparecerán primeras en el data set
vinos_extendido.

En otros casos es necesario otro tipo de combinación de 2 o más conjuntos de datos,


por ejemplo, incluir nuevas variables al data set existente, es decir una ampliación, o
combinar dos conjuntos de variables medidas sobre las mismas observaciones.

La sentencia MERGE permite combinar los datos.

17
MERGE dataset1 dataset2;
BY variable_en_común;

Es necesario una sentencia BY donde se especifique una variable que esté presente en
ambos conjuntos de datos, en este caso llamada variable_en_común. Esta variable es
necesaria para que los registros de los dos data sets se combinen para cada valor
distinto de la mencionada variable en común.

Ejemplo:

data vinos_completo;
merge vinos vinos_color;
by nro;
run;

El data set vinos_color cuenta con una nueva variable color para cada vino evaluado.
La variable nro corresponde al número de observación.

Para que la sentencia MERGE sea exitosa, es necesario que los data sets estén
ordenados de acuerdo a la variable en la sentencia BY.

Para esto es necesario utilizar un procedimiento SORT.

PROC SORT DATA=dataset1;


BY variable1;
RUN;

Ejemplo:

proc sort data=vinos;


by nro;
run;

En este caso las observaciones son ordenadas a través de los valores de la variable nro
en forma ascendente. En la sección siguiente veremos en más detalle este
procedimiento.

IV. ALGUNOS PROCEDIMIENTOS Y SENTENCIAS SAS

Todo trabajo SAS será una secuencia de dos clases de pasos:

- preparación de los datos


- aplicación de algún procedimiento SAS

Recordar que un programa SAS estará compuesto por “líneas de programa”. En


general, un procedimiento requerirá de más de una “línea de programa” y estas
sentencias deberán seguir diferentes reglas de sintaxis de acuerdo a la clase de tarea
que se requiera que SAS ejecute. Una línea de programa debe finalizar con el carácter
“;” y un procedimiento finaliza con el comando RUN o con el inicio de otro párrafo u
otro procedimiento.

Algunos de los primeros procedimientos que son necesarios manejar para tareas
básicas se presentan a continuación.

18
IV.1. SORT

Este procedimiento ordena las observaciones de un data set, de acuerdo a los valores
de las variables que se indiquen. El conjunto de datos ordenados se puede archivar en
el mismo data set (si no se indica otra cosa) o en uno nuevo que se especifique.

PROC SORT DATA=dataset1 opciones;


BY opciones variables;
RUN;

Entre las opciones de la primera sentencia se encuentra:

OUT= nombre_del_nuevo_dataset

Ejemplo:

proc sort data=vinos out=vinos_ordenados_calidad;


by descending calidad;
run;

En este caso se crea un nuevo data set temporal llamado vinos_ordenados_calidad a


partir del data set original vinos, con observaciones ordenadas según los valores de
calidad en forma descendente. Existen más ejemplos en los programas vistos en la
materia, los cuales representan un complemento muy importante de este apunte.

IV.2. CONTENTS

Muestra la descripción de la información contenida en el conjunto de datos. La forma


básica del procedimiento es:

PROC CONTENTS DATA=dataset2 opciones;


RUN;

Ejemplo:

proc contents data=vinos varnum;


run;

En el ejemplo anterior se muestra el contenido: nombre y tipo de variables que


conforman el dataset, en el orden en que fueron ingresadas (Número de variable, que
es una variable creada por SAS ), a través de la opción varnum. Si no se especifica
opción, se listan las variables en orden alfabético.

IV.3. LABEL
Es una sentencia que se utilizará en diferentes procedimientos y servirá para
establecer rótulos para cada variable. Esto rótulos no deben superar los 40 caracteres.
La forma de esta sentencia es:

LABEL variable1=”rótulo”
variable2=”rótulo”
.....
Variable10=”rótulo”;
run;

19
Ejemplo:

data vinos_etiquetas;
set datos.vinos;
label claridad="Puntaje de la variable Claridad"
aroma="Puntaje de la variable Aroma"
cuerpo="Puntaje de la variable Cuerpo"
sabor="Puntaje de la variable Sabor"
calidad="Puntaje de la variable Calidad"
region="Región de procedencia del vino"
;
run;

IV.3. PRINT
Proporciona un listado de las observaciones con algunas variables.

PROC PRINT DATA=’nombre del data set’ opciones;

Se puede utilizar la sentencia VAR para indicar la composición del listado en cuanto a
las variables. Esta sentencia se utilizará también en otros procedimientos en los que
sea necesario indicar con que variables se desea trabajar.

Ejemplo:

proc print data=vinos;


var claridad aroma region;
run;

Si se desea un listado que solo contenga las variables numéricas, se escribirá:

VAR _numeric_;

Para obtener un listado con las variables de tipo caracter, se escribirá:

VAR _character_;

Opciones

DOUBLE: produce la salida a doble espacio

LABEL: utiliza los rótulos de las variables como encabezado de las columnas. En caso
de no utilizar esta opción, los encabezados serán los nombres de las variables.

N: muestra el número total de observaciones

NOOBS: omite en cada línea el número de observación

Ejemplo:
proc print data=vinos n double;
var _numeric_;
run;

20
IV.4. CHART

Permite obtener gráficos de los siguientes tipos:


barras horizontales, barras verticales, de sectores y de bloques.
Las cantidades que se pueden representar son: frecuencias, frecuencias acumuladas,
porcentajes o frecuencias relativas, porcentajes acumulados o frecuencias relativas
acumuladas, totales y medias.

Los tipos de gráficos se especificarán con: VBAR, HBAR, PIE, BLOCK.

Ejemplo:

proc chart data=vinos ;


vbar region;
title3 "Región de procedencia de los vinos";
run;

En la ventana del output se visualizará un gráfico de barras verticales que muestra la


frecuencia absoluta para cada nivel de la variable region. Los gráficos de barras se
hacen para cada nivel de una variable cualitativa (categórica).

Si se quisiesen graficar las frecuencias relativas (en porcentaje), el código


correspondiente es:

proc chart data=vinos ;


vbar region / type=pct;
title3 "Región de procedencia de los vinos";
run;

Si se desean graficar barras horizontales, donde cada una represente la calidad


promedio por región:

proc chart data=vinos ;


hbar region / type=mean sumvar=calidad;
title3 "Promedios de los puntajes de calidad del vino según región
de procedencia";
run;

La utilización de opción TYPE permite indicar el tipo de cantidad que se desea


representar a través del largo de los bastones. Las alternativas para TYPE son:
FREQ (para mostrar frecuencias absolutas), CFREQ (frecuencias acumuladas), PCT
(porcentajes), CPCT (porcentajes acumulados), SUM (totales) y MEAN (promedios o
medias).
La opción SUMVAR indica, cuando sea necesario, que variable se debe utilizar.

La sentencia BLOCK permite graficar barras tridimensionales para las frecuencias


absolutas de una variable cualitativa:

proc chart data=vinos ;


block region / noheading;
title3 "Gráfico de frecuencias según región de procedencia de los
vinos";
run;

21
La opción TYPE permite indicar el tipo de cantidad que se desea representar, como en
el caso anterior. La opción noheading permite suprimir el encabezado en inglés que es
impreso por defecto en el gráfico.

proc chart data=vinos ;


block region/ type=pct noheading;
title3 "Gráfico de frecuencias relativas según región de
procedencia de los vinos";
run;

La opción PIE permite realizar gráficos de sectores, por ejemplo:

proc chart data=vinos ;


pie region / noheading;
title3 "Región de procedencia de los vinos";
run;

IV.5. GCHART

Permite generar gráficos simples con mejor definición, más dirigidos a la presentación
de un análisis descriptivo. Para una visión más amplia y extensa de la construcción de
gráficos, consultar el material de la materia Métodos Estadísticos I de la licenciatura en
estadística.

Se pueden obtener gráficos similares a los de la opción CHART, que incluyen los
siguientes tipos: barras horizontales, barras verticales, de sectores y de bloques.
Las cantidades que se pueden representar son: frecuencias, frecuencias acumuladas,
porcentajes o frecuencias relativas, porcentajes acumulados o frecuencias relativas
acumuladas, totales y medias.

Ejemplo:

proc gchart data=vinos ;


vbar region;
title3 "Región de procedencia de los vinos";
run;
quit;

En una nueva ventana GRAPH (distinta de las 3 ventanas mencionadas: editor, log y
output) se visualizará un gráfico de barras verticales que muestra la frecuencia
absoluta para cada nivel de la variable región. Los gráficos de barras se hacen para
cada nivel de una variable cualitativa (categórica).

La sintaxis es similar a la del procedimiento CHART, se recomienda consultar los


programas en SAS provistos por la cátedra. Se debe además agregar la sentencia quit
que permite dar por finalizada la ejecución del procedimiento.

IV.6. PLOT

Produce un diagrama (o gráfico) de dispersión entre dos variables cuantitativas.


Genera gráficos simples para un análisis primario de la información dirigido al propio
analista estadístico: el objetivo no es la creación de gráficos para la presentación de
resultados de un análisis descriptivo en un informe, sino para orientar al estadístico

22
hacia el análisis más apropiado de la información ya que los gráficos resultan muy
rudimentarios.
La forma de la sentencia PROC es:

PROC PLOT DATA=’nombre del data set’;

Para indicar las variables a incluir en el gráfico se utilizará la sentencia PLOT.

PLOT variable del eje vertical*variable del eje horizontal

Ejemplo:

proc plot data=vinos;


plot cuerpo*sabor;
title3 "Diagrama de dispersión: Cuerpo vs. Sabor";
run;
quit;

En el ejemplo siguiente se muestra como identificar observaciones del diagrama de


dispersión según su pertenencia a un determinado nivel (o categoría) de una tercer
variable cualitativa. Para indicar las variables a incluir en el gráfico se utilizará la
sentencia PLOT de la siguiente forma:

PLOT variable del eje vertical*variable del eje horizontal=variable que contiene los
identificadores de observaciones / opciones;

Ejemplo:

proc plot data=vinos;


plot cuerpo*sabor=region;
plot cuerpo*aroma cuerpo*calidad;
title3 "Diagramas de dispersión de Cuerpo vs. Sabor, Aroma y
Calidad";
run;
quit;

Se pueden hacer varios gráficos con la misma sentencia y las opciones que se
especifiquen serán aplicadas a todos ellos. Se podrán también utilizar varias sentencias
PLOT dentro de un mismo PROC PLOT.

También es posible generar diagramas de dispersión para cada nivel de una tercera
variable cualitativa, consultar los programas provistos por la cátedra. En este
procedimiento es también necesario agregar la sentencia quit para que el
procedimiento termine de ejecutarse.

IV.7. GPLOT

Permite generar gráficos simples con mejor definición, más dirigidos a la presentación
de un análisis descriptivo. Se pueden obtener gráficos similares a los de la opción
PLOT. Este procedimiento utiliza una ventana GRAPH que se abre cuando se generan
los gráficos. Para más detalles sobre este procedimiento se debe consultar los
programas provistos por la cátedra.

23
IV.8. Algunas sentencias útiles para la programación

a) OPTIONS

Permite controlar características de las salidas en la ventana Output. La forma general


de la sentencia es:

OPTIONS opciones;

Entre las opciones figuran por ejemplo nodate y pageno. La forma en que operan
algunas de estas opciones se muestra en el siguiente ejemplo:

options nodate pageno=1;

En este caso, con nodate se suprime la fecha cada vez que se genere una salida y con
pageno=1 (page number: número de página) se enumera cada página de la salida a
partir del número 1. SAS por defecto continua enumerando las páginas
consecutivamente para cada nueva ejecución del programa.

b) dm

Permite controlar las impresiones en las ventanas Log y Output. La forma utilizada en
los programas vistos en la materia es:

dm "log;clear;out;clear";

Permite borrar los contenidos de las ventanas Log y Output dejando solo las salidas
correspondientes al último programa ejecutado. SAS por defecto acumula todas las
salidas en ambas ventanas de cada una de las veces que se ejecuta un programa.

IV.9. UNIVARIATE

El procedimiento UNIVARIATE permite obtener estadísticas descriptivas de las


variables especificadas. La forma general es:

PROC UNIVARIATE opciones;

Entre las opciones se puede especificar el conjunto de datos a leer, seleccionar las
estadísticas a calcular, etc.. Por ejemplo:

proc univariate data=vinos ;


var aroma;
run;

Permite el cómputo de varias estadísticas descriptivas de la variable aroma del


conjunto de datos (o dataset) llamado vinos, por ejemplo la media aritmética, el modo,
la mediana, etc.; notar que las variables especificadas en la sentencia VAR deben ser
cuantitativas.

También es posible generar el histograma correspondiente a una variable cuantitativa


continua. Será necesario para ello especificar el valor máximo, el mínimo y la cantidad
de intervalos a considerar para definir la amplitud cada intervalo.

24
Por ejemplo, el código:
proc univariate data=vinos ;
var aroma;
histogram aroma / midpoints= 3 to 8 by 1;
run;

genera un histograma con 6 intervalos de amplitud 1 cuyos puntos medios van de 3 a


8 en incrementos de valor 1 (es decir: 3,4,5,…,8).
La opción midpoints especifica el menor y el mayor de los valores de los puntos medios
y la sentencia by especifica la amplitud de los intervalos (y al mismo tiempo la
distancia existente entre los puntos medios de los mismos).

Existen distintos criterios para graficar histogramas, en el programa provisto por la


cátedra se detalla el criterio utilizado. Es conveniente consultar el material de la
materia Métodos Estadísticos I para repasar los criterios utilizados en la misma.

Una alternativa para la construcción de un histograma considera la utilización del


procedimiento GCHART, visto en el punto IV.5 más arriba. Se deben tener en cuenta
ciertas opciones para lograr un gráfico apropiado. A continuación se muestra un
ejemplo:

proc gchart data=vinos ;


vbar aroma / space=0 type=pct midpoints= 3.5 to 7.5 by 0.8;
title3 "Histograma del puntaje de la variable aroma";
run;
quit;

La opción space determina el espacio entre barras y debe ser igual a cero en el caso
del histograma. La opción type=pct indica que se graficarán las frecuencias relativas y
la opción midpoints especifica el menor y el mayor de los valores de los puntos medios
de los intervalos. La sentencia by especifica la amplitud de los intervalos (y al mismo
tiempo la distancia existente entre los puntos medios de los mismos).

La opción PLOT permite obtener gráficos de tallo y hoja y gráficos de caja (box-plot).
En el siguiente ejemplo se obtendrían los mencionados gráficos para la variable aroma.

proc univariate plot data=vinos;


var aroma;
run;

IV.10. FREQ

Este procedimiento permite entre otras cosas la creación de tablas de frecuencias. En


el caso univariado produce una distribución de frecuencias para la variable. En el caso
de contar con dos variables realiza tablas de contigencia que muestran las frecuencias
para cada celda de la tabla. Cada celda es el resultado de la combinación de los niveles
de las dos variables consideradas.

La forma general es:

PROC FREQ opciones;


tables requerimientos </opciones>;

Por ejemplo:

25
proc freq data=alumnos ;
title3 "Distribución de los alumnos según la vble. Sexo y
Distribución de la vble. Sexo por Grado";
tables sexo sexo*grado;
run;

En este caso se genera la tabla de distribución de la variable sexo y la tabla de


contingencia de sexo y grado. Se presentan las frecuencias, las frecuencias relativas
porcentuales, las frecuencias relativas porcentuales por filas y columnas. También se
presentan las frecuencias marginales absolutas y relativas porcentuales.
La sentencia title3 genera un título para las tablas en la tercera línea de la salida.

Las opciones nocum, nopercent, norow y nocol eliminan algunas de los valores que
imprime el procedimiento. La opción list muestra la tabla como una lista y agrega las
frecuencias absolutas y relativas porcentuales, conjuntamente con las acumuladas.

En el ejemplo siguiente se suprimen las frecuencias relativas por columna y las


frecuencias relativas para la tabla de contingencia de sexo y grado.

proc freq data=alumnos ;


tables sexo*grado / nocol nopercent;
run;

En el caso de que existieran datos faltantes, si no se aclara nada en el procedimiento,


estos valores son excluídos de la tabla. La opción missing incluye los valores faltantes
en la tabla y los cálculos, la opción missprint los incluye en la tabla pero no los
considera en los cálculos.

V. ALGUNAS OPCIONES PARA UTILIZAR LAS SALIDAS EN UN INFORME

Las salidas que se generan en la ventana Output de SAS pueden ser extraídas y
utilizadas por otros programas en el caso que fuesen requeridas, por ejemplo en la
realización de un informe que presente los resultados de un determinado análisis.

La primer alternativa es salvar los resultados de la ventana output en un archivo


extensión .rtf y luego abrirlo a través de un procesador de texto, por ejemplo Word.

Otra alternativa es utilizar la sentencia ods que permite controlar la salida de los
programas. La sentencia debe ser citada indicando el tipo de extensión del archivo
donde se almacenarán los resultados junto con la ubicación y el nombre del mismo. Es
necesario además presentar una sentencia de cierre del procedimiento. Todas las
salidas que se generen entre la sentencia ods y la sentenca de cierre serán
almacenados en el archivo indicado. Por ejemplo:

ods rtf body=”D:\SAS\alu3.rtf”;

proc freq data=alumnos ;


title3 "Distribución de los alumnos según la vble. Sexo y
Distribución de la vble. Sexo por Grado";
tables sexo sexo*grado;
run;

ods rtf close;

26
En el ejemplo anterior se genera un archivo de salida con extensión rtf llamado alu3.rtf
en la carpeta SAS del disco D. En ese archivo se almacenarán las tablas generadas por
el procedimiento freq y con la sentencia: ods rtf close; se delimita las salidas a incluir
en el archivo. El archivo generado puede ser abierto a través del procesador de texto
Word.

Para utilizar los gráficos generados en la ventana GRAPH1, estos se pueden exportar
con extensión .jpg o .bmp y luego ser importados en Word.

VI. ANEXO

Es posible en SAS hacer tareas similares a través de procedimientos diferentes.


En el punto IV.9. se presentó el procedimiento UNIVARIATE el cual permite obtener
estadísticas descriptivas de las variables especificadas. Esta tarea también se puede
hacer a través del procedimiento MEANS cuya forma general es:

PROC MEANS opciones;

Entre las opciones se puede especificar el conjunto de datos a leer y seleccionar las
estadísticas a calcular. Por ejemplo:

proc means data=vinos mean median;


var aroma;
run;

Permite el cómputo de varias estadísticas descriptivas de la variable aroma del


conjunto de datos (o dataset) llamado vinos, por ejemplo la media aritmética y la
mediana. Notar que las variables especificadas en la sentencia VAR deben ser
cuantitativas.

27

Vous aimerez peut-être aussi