Está en la página 1de 6

Ayudantía 1

Inferencia Estadística (SAS)


¿Qué es SAS?
SAS (Statistical Analysis System) es un software que permite la lectura, manipulación, análisis y
presentación de datos de una gran cantidad de fuentes. Se usa en compañías grandes ya que este es
bastante caro. Unas de las muchas cosas que diferencian a SAS de otros programas estadísticos, como R,
es el soporte técnico del que se goza, la gran flexibilidad para leer datos, su potencia y la practicidad del
lenguaje en el que se programa.

Antes de empezar a crear programas en SAS, vamos a ver algunas generalidades.Cuando


abrimos SAS por primera vez, nos encontramos con el siguiente escenario:

Vemos muchas ventanas, pero vamos a trabajar la mayoría del tiempo con cinco:

1. Editor: como su nombre lo indica, esta ventana es un editor de texto. En él se van a escribir
y ejecutar los programas que se necesiten.
2. Log: registra notas acerca de la sesión de SAS, con aspectos generales de la ejecución del
software. Cuando ejecutamos un programa en el editor, en el log aparecerán notas, errores
y advertencias asociadas al programa. Se recomienda mucho revisar esta ventana para
estar totalmente seguro de haber hecho bien un programa.
3. Output: almacena los resultados del programa si así se le especifica.
a. Results Viewer: si no se le especifica a SAS donde mostrar los resultados, los
mostrará en una ventana que en principio no está visible llamada Results Viewer.
Esta aparece automáticamente cuando se ejecuta un programa sin especificar
donde mostrar los resultados.
4. Results: se muestra un índice de los resultados del programa
5. Explorer: nos da acceso a archivos SAS y librerías.
Datasets y librerías
Antes de analizar los datos, estos tienen que estar en una forma especial llamada dataset; consta de filas
(que representan las observaciones) y columnas (que es donde están expresadas las variables). Hay que
aclarar que los datos pueden venir de muchas formas (llamados “datos brutos”) y lo que hace SAS al
crear un dataset es que los ordenar los datos brutos de una manera en que los pueda leer.

La librería es el lugar donde se van a guardar los datasets. Es una dirección dentro del disco duro de la
computadora y llevan hasta una carpeta donde se almacenarán los datasets creados por SAS.

Forma general de un programa de SAS


Los programas de SAS están conformados por bloques también llamados “steps”; un programa típico
puede ser el siguiente:
DATA distancia;
DATA step millas = 26.22;
kilometros = 1.61*millas;

proc print data = distancia;


PROC step run;

En el Data Step se lee la data, ya sea de manera interna (es decir, introduciendo los datos en el mismo
data step a manos) o externa (importando un archivo de datos brutos, que es la manera que más vamos
a usar).
En el Proc Step se ejecutan acciones concretas que van desde mostrar los resultados hasta generar
gráficos en 3D si la data nos lo permite.

Un Step termina cuando se encuentra con otro.

Sin embargo, este orden no es universal, no se puede aplicar a todos los escenarios en los que nos
encontremos. Puede ser que primero tengamos que crear uno o más Proc Steps y después uno o más
Data Steps.

Nota curiosa: el Data Step lee los datos a través de un bucle integrado. Este bucle aplica cada línea
dentro del Data Step a cada una de las observaciones, una por una:

Datos Brutos DATA step SAS dataset

Observación 1 Instrucción 1 Observación 1


Observación 2 Instrucción 2

Observación 3 Instrucción 3
Paso de datos en SAS
Generalmente, el proceso lógico en un programa de SAS es leer los datos primero para después
procesarlos. SAS es bastante flexible a la hora de leer los datos, el Data Step tiene un alto grado de
personalización. Como dijimos anteriormente, los datos pueden venir de una fuente interna o externa a
SAS. Se puede crear datasets de muchas maneras, entre ellas estas:

1. Desde una fuente interna (entrada manual de datos)


a. Desde la ventana viewtable: Seleccionamos Tools > Table Editor. Nos aparecerá una
ventana similar a la siguiente

De esta manera podemos meter datos a manos como si de una hoja de Excel se tratase.

b. Con el comando datalines: como ejemplo está este programa que da como resultado un
dataset.

Data ejemplo1;
input nombre $ edad peso;
datalines;
Juan 25 150
Sergio 21 200
Javier 18 165
Carlos 23 170
Cristian 30 180
;
proc print data=ejemplo1;
run;
Declaramos el inicio del Data Step escribiendo en comando Data. Seguido de este
comando escribimos el nombre que le queremos dar al dataset, que en este caso se
llamará “ejemplo1”, este es el nombre que tomará el archivo y con ese mismo nombre
lo vamos a poder buscar en nuestras computadoras. Acá le dijimos a SAS que nos creara
un dataset llamado “ejemplo1”.

La siguiente declaración es input, donde le especificamos a SAS como


queremos que nos lea los datos; en este caso le especificamos que primero va la
variable Nombre, luego edad y luego peso; eso lo tenemos que determinar una vez
nosotros hayamos analizado bien de donde vienen los datos. El signo de dólar ($) lo
pondremos a la derecha de una variable para especificarle a SAS que esta es de tipo
character (que solo tienen letras). Las variables numéricas no llevan este distintivo.

La declaración datalines indica que a continuación vamos a introducir datos.


Seguido de esto procedemos a escribir manualmente los datos, pensando en cómo le
dijimos a SAS que los leyera en la declaración input.

2. Leer datos desde una fuente externa: en este método le indicamos a SAS un archivo del cual va a
sacar los datos; SAS puede obtener datos prácticamente de cualquier tipo de archivo. Con un
archivo externo llamado cars.txt, tenemos el siguiente programa:

data carros;
infile "E:\cars.txt" dlm="," DSD MISSOVER;
input modelo $
MillasxGalon Peso Precio;
proc print data =carros;
run;

La diferencia de esta forma de leer datos con la anterior es que agregamos la declaración infile donde
le especificamos a SAS donde ir a leer datos. Consiste en la dirección del archive dentro de nuestra
computadora; esta dirección tiene que ir encerrada en comillas o también en ‘ ‘. Seguido de la
declaración infile, tenemos la declaración ‘dlm=’ acá le especificamos a SAS el delimitador que tienen los
datos y cada vez que encuentre ese delimitador va a separar los datos en las variables que especificamos
en la declaración input. En el caso del archivo cars.txt el delimitador es una coma, por eso ponemos
dlm=”,". Cabe mencionar que si el archivo tuviera como delimitador un tab, se usa dlm=’09’X .

IMPORTANTE: La declaración infile tiene muchas opciones que se le pueden habilitar, entre ellas la
opción DSD (Delimiter-Sensitive Data) que hace tres cosas:
1. Ignora delimitadores en valores encerrados en comillas
2. No lee las comillas como un dato
3. Trata dos delimitadores juntos como un valor inexistente
Lo anterior es de vital importancia porque no siempre nos vamos a encontrar con datos brutos que
vengan tal y como los queremos. Además de lo anterior, también se agregó la declaración MISSOVER
que le dice a SAS si se queda sin más datos de la observación 1 pero aún le quedan variables para llenar,
que las llené con un punto (.). Si no se hace esto SAS no asignará ningún valor a los datos vacíos, los que
puede generar que se asignen valores a variables que nada tienen que ver.

Guardando los datasets


Anteriormente se mencionaron las librerías, que son los lugares donde los datasets son almacenados en
la computadora. Si nosotros no le especificamos a SAS en que librería guardar el dataset resultante del
Data Step, este lo va a guardar en la librería WORK de manera predeterminada; hay que tener CUIDADO
con esto, porque todos los datasets que se guarden en la librería WORK son temporales. Los datasets
temporales se borran automáticamente cuando se cierra SAS.

Para evitar esto, podemos crear una librería y guardar ahí los datasets. En esta nueva librería los
datasets serán permanentes, es decir, no se borrarán una vez se cierre SAS. Supongamos que queremos
guardar el dataset “carros” del ejemplo anterior en una librería que llamaremos “saslib” (el nombre
puede ser el que gusten), esto se hace de la siguiente manera:
libname libsas "E:\SAS_libraries\libsas";
data libsas.carros;
infile "E:\cars.txt" dlm="," DSD;
input modelo $
MillasxGalon Peso Precio;
proc print data =carros;
run;

Se agrega la declaración libname, que le dice a SAS que cree una librería nueva. A continuación de
libname, escribimos el nombre que queremos darle a la librería y luego de esto la dirección, entre
comillas, de la carpeta que nos va a servir como librería.
Aparte de esto hay un cambio en la declaración data. Al momento de ponerle nombre a nuestro
dataset, hay que especificarle a que librería pertenece. En este caso, estamos creando el dataset
“carros” y lo guardaremos en la librería “libsas”; lo hacemos escribiendo [el nombre de la
librería].[Nombre del dataset]

Creando Variables
Podemos crear variables dentro del Data Step que se agregan al dataset. Por ejemplo, supongamos que
queremos saber cuantos kilómetros por galón rinde el automóvil:

Data carros;
infile " E:\cars.txt" dlm="," DSD;
input modelo $
MillasxGalon Peso Precio;
KmxGalon = MillasxGalon*1.60934;
proc print data=libsas.carros;
run;
Retomando Datasets existentes
Se puede dar el caso en el que queramos seguir trabajando con un datasets que ya hemos creado en
sesiones anteriores. Supongamos que queremos volver a usar el Dataset “carros.sas7bdat”:

libname libsas "E:\SAS_libraries\libsas";


data libsas.RetomandoDatasets;
set libsas.carros;
keep modelo KmxGalon Precio;
run;

Primero declaramos la librería con la declaración libname, como hemos hecho en casos anteriores.
Escribimos la declaración Data para empezar el proceso de crear un nuevo Dataset; seguido de esto le
decimos a SAS como se llamará nuestro nuevo Dataset y en qué librería guardarlo, como ya vimos en
casos anteriores.
La novedad ahora son las declaraciones set y keep.
Con la declaración set mandamos a llamar al dataset del cual queremos generar uno nuevo.
Con la declaración keep le decimos a SAS cuales variables del dataset original (carros) queremos en
nuestro nuevo dataset (RetomandoDatasets).

Además, existe la declaración drop, donde le indicamos a SAS cuales variables del viejo Dataset
queremos omitir en nuestro nuevo dataset. Para obtener el resultado anterior usando esta declaración
en vez de keep hacemos un programa como el siguiente:

libname libsas "E:\SAS_libraries\libsas";


data libsas.RetomandoDatasets2;
set libsas.carros;
Drop MillasxGalon Peso;
run;

También podría gustarte