Sunteți pe pagina 1din 56

Operando con SAS.

Uso del SAS System 9 en Estadstica.

ndice
1 - Introduccin .............................................................................................3 2 - Instalacin ................................................................................................3 3 - Iniciando SAS ........................................................................................10 4 - Creacin de archivos..............................................................................12 5 - Introducir datos ......................................................................................15 6 - Algunos procedimientos ........................................................................20 7 - Muestreo estadstico ..............................................................................24 8 - Grficos ..................................................................................................30 9 - Importar y modificar datos.....................................................................34 10 - Nmeros aleatorios ..............................................................................43 11 - Bases de datos ......................................................................................46 12 Grficos de mapas ...............................................................................51 APNDICE .................................................................................................54

-2-

1 - Introduccin. El SAS es un software estadstico con muchas funciones tiles, de las que la mayora se obtienen por cdigo, como si fuese un lenguaje de programacin. Pero, sin embargo, hay muchas cosas que pueden usarse desde los mens. En contra de lo que puedan creer algunos, funciones como crear datos en forma de tabla se pueden crear con un par de clics del ratn. Adems, tampoco todo es en ingls. Esta versin est en muchos idiomas, entre ellos el castellano. En este manual, veremos como crear archivos, usarlos y sacarles el mejor partido. Veremos desde la instalacin del SAS 9 hasta la creacin de algunos grficos, pasando desde la presentacin de resultados o la utilizacin de alguno de los muestreos ms usados en estadstica.

2 - Instalacin. Primero deberemos comprobar los requisitos mnimos de nuestro PC como el Sistema Operativo (Windows 98 o superior) o el espacio en disco duro (hasta 745 MB). Deberemos meter el CD etiquetado como Setup Disk.

Tericamente tiene autoarranque, pero si no se abre, puede ejecutar el programa Setup.exe usando su explorador de Windows.

-3-

Nada ms empezar el programa, aparecer esta ventana en la que deberemos elegir el idioma en el que deseamos que salga el asistente:

Elijamos lo que elijamos, la siguiente pantalla siempre saldr en ingls:

Aqu nos manejaremos con las 3 opciones de la columna derecha (End user) ya que somos usuarios finales. Realmente podemos elegir

-4-

directamente el paso 3, ya que suele ejecutar el 2. Pero podemos pulsar la 2 si queremos dejarnos la comprobacin ya hecha. Para empezar, mirar si tenemos otras versiones del SAS ya instaladas (recomendamos haberlas borrado antes) o si tenemos los programas necesarios (como una maquina virtual JAVA1). Si falta algo que puede aadir, el programa solito lo aade.

A continuacin nos saldr esta ventana. Nos pide especificar donde tenemos la informacin de la licencia correspondiente. Este programa no funciona con claves, como la mayora del software; sino que tenemos que tener la licencia correspondiente en un archivo aparte (Normalmente ser setinit.sas). Tambin puede darse el caso de que venga en un archivo txt. Si tenamos alguna versin anterior y decidimos no borrarla antes del

-5-

proceso de instalacin de esta nueva versin, nos ofrecer la posibilidad de seguir usando esa licencia. En definitiva, nos aparecer esa ventana dndonos dos opciones: 1. Existente: Slo para aquellos que tengan alguna versin anterior de SAS. 2. Archivo: En caso de que la licencia la tengamos en un archivo aparte. En este segundo caso nos aparecer la siguiente ventana pidindonos que le indiquemos donde tenemos el archivo. Para localizarlo ms fcilmente, podemos usar el botn Examinar...:

Ahora, el asistente tardar unos segundos mientras comprueba nuestra licencia y comprueba los idiomas en los que est disponible. Una
1

http://java.sun.com/j2ee/1.4/download.html#sdk

-6-

vez finalizada esa comprobacin, la siguiente ventana ser la del idioma. Desgraciadamente, la ayuda y los comandos seguirn siendo en ingls, independientemente de lo que elijamos aqu:

La verdad, es que nos ofrece la posibilidad de instalarlo en ms de un idioma, pero ms bien esta opcin es algo absurda, no? Quizs slo sea til si en el mismo ordenador trabajan personas que hablen distintos idiomas, pero, por lo general, no es ms que un desperdicio de memoria del disco duro. El siguiente paso importante ser decidir en que carpeta queremos instalar el SAS. Por defecto, nos sugerir instalarlo en la carpeta de Archivos de programa. Pero claro, es nuestro PC y podemos elegir donde queremos tener este programa. La podemos cambiar en esta ventana:

-7-

Por ltimo, slo nos quedar seleccionar que componentes del SAS queremos instalar. Esto lo deberamos decidir atendiendo a tres criterios: 1. El software que tenemos licenciado. Cada licencia es un mundo, y puede ocurrir que slo nos permita usar parte del SAS. Podemos averiguar las permisiones de nuestra licencia usando el botn de Seleccionar software licenciado. Nos seleccionar todo el software del SAS que nos dejar usar sin problemas. 2. Necesidades del usuario. Obviamente, podemos desmarcar aquella parte del SAS que no creamos que vayamos a utilizar. En el caso de que no tengamos mucha idea, lo mejor ser limitarse a lo que marque la condicin anterior. 3. Espacio en Disco Duro. Obviamente, no podremos instalar ms de lo que nos permita el espacio que tengamos disponible.
-8-

Una vez finalizado este paso comenzar la copia de archivos. Este proceso puede ser realmente lento. Durante el proceso ir pidiendo cualquiera de los 6 CDs del SAS 9, segn los vaya necesitando. Este proceso puede alargarse. En el proceso final (sobre el 97%) ejecutar un proceso llamado Batch SAS que puede alargarse bastante. Una vez procesado todo esto, habremos acabado y tendremos el SAS listo para usarse. Nos saldr una pantalla dndonos la opcin de consultar un manual en PDF y de ejecutar ya el SAS. Esto ser la seal de que ya hemos finalizado el largo proceso de instalacin.

-9-

3 - Iniciando SAS.

Bueno, ahora que ya tenemos el software del SAS cargado en nuestro PC, ya estamos listos para usarlo. Si lo ejecutamos podremos ver que tiene varias ventanas con las que iremos trabajando, cada cual con su propia funcin. Est es la pantalla de inicio:

Ahora bien, qu ventanas vemos? Para que sirve cada una? Con cuales trabajaremos ms? Son preguntas que iremos respondiendo poco a poco en este manual. La primera ventana es la del Explorador podemos usarla para abrir tablas de datos, normalmente contenidas en Libreras. Como novedad de esta versin, es la posibilidad de acceder a Mi PC desde aqu.
- 10 -

La segunda ventana es la de Log, muy til para localizar posibles errores de nuestros archivos o fallos del SAS. La traduccin al castellano es algo incompleta, pero no nos har falta saber tanto ingls como antes. La ltima ventana es la de Editor. Aqu escribiremos el cdigo del SAS. S, por desgracia la mayora de las cosas que se hacen con SAS son por cdigo. Y este, s que est 100% en ingls. En este manual veremos bastante cdigo con el que operaremos en esta parte del SAS. Pero tambin veremos ciertas cosas que se pueden realizar a travs de los mens. Qu cosas veremos? Veremos cmo crear un archivo, como guardarlo en un disco, como hacerlo temporal, como presentar medias, como sacar frecuencias, como mostrar grficos... Las posibilidades del SAS son realmente inmensas, tanto que seguramente este manual se quede demasiado corto como para sacarle todo el jugo. Pero, por lo menos, podremos iniciarnos en el manejo del SAS. Y sabremos lo suficiente como para sacarle un gran partido a este inmenso paquete estadstico.

- 11 -

4 - Creacin de archivos.

Lo primero que deberemos aprender es a crear un archivo que contenga nuestros datos de origen. Antes de nada, debemos aclarar que existen dos clases de archivos: temporales y permanentes. Los archivos temporales se crean y se usan mientras el SAS est en funcionamiento, pero dejan de existir una vez que se cierra el SAS. La otra opcin es guardarlo como permanente, ya sea en disco duro o disquete. Otra cosa que debemos tener en cuenta es que el SAS maneja muchas clases distintas de archivos: de cdigo, de datos, de imgenes, de informes... Trabajaremos bsicamente con los dos primeros, pero tambin introduciremos el resto de tipos. En la ventana de Cdigo, podemos crear mediante el lenguaje del SAS un archivo de datos. Ahora bien, si queremos guardarlo como un archivo fijo, deberemos decirle dnde lo queremos guardar. Para esto se usa la palabra reservada libname. Deberemos decidir un nombre interno en el SAS. Por ejemplo, si la carpeta a la que nos queremos referir es C:\Mis Documentos, podemos llamarlo Docs. Esto se hara as: libname Docs 'C:\Mis Documentos'; El orden es fundamental. Primero va la palabra libname. Despus va el nombre o seudnimo con el que nos referirnos a la carpeta en SAS. Y,

- 12 -

por ltimo, el nombre del directorio real. Este va entre comillas simples. Y mucho ojo al punto y coma, casi todas las frases del cdigo terminaran as. La siguiente lnea es la de creacin del archivo. Para crear un archivo se usa la palabra DATA. Y, a continuacin va el nombre del archivo. Por ejemplo, si queremos crear un archivo llamado Prueba escribiramos lo siguiente: DATA Prueba; Esta frase creara el archivo DATA en una carpeta temporal del SAS. Es decir, dejara de existir en cuanto cerrsemos el SAS. Pero podemos guardarla en la carpeta Docs creada anteriormente. Esto se hara escribiendo lo siguiente: DATA Docs.Prueba; En conclusin, para crear un archivo de datos nuevo en SAS mediante cdigo, escribiramos todo esto: libname Docs 'C:\Mis Documentos'; DATA Docs.Prueba; Claro, que tambin podemos crear un archivo nuevo de SAS por ventanas. Para el primer paso de asignar un nombre de SAS a una carpeta real de nuestro PC haramos lo siguiente:

En esa barra, pulsaramos el botn ventana:

y nos aparecera la siguiente

- 13 -

En Nombre ira el nombre interno en SAS y en Camino la carpeta real de nuestro PC. Podemos evitarnos escribirla usando el botn de Examinar... Adems, podemos hacer que esta especie de acceso directo a nuestra carpeta aparezca desde que se arranca el SAS, seleccionando la opcin de Asignar al inicio. Una vez que pulsemos aceptar, estar disponible. Ahora bien, cmo creamos el archivo? Podemos usar el men Herramientas, Editor de tablas. Nos aparecer una tabla en blanco como si con el Excel2 o el SPSS3 trabajsemos. La nica diferencia es que no podremos elegir o asignar un nombre de archivo a nuestra tabla hasta que tenga datos dentro de ella. Pero esto lo veremos en el siguiente captulo.
2 3

http://www.microsoft.com/spain/office/products/excel/default.mspx http://www.spss.com/es/

- 14 -

5 - Introducir datos.

Bueno, un archivo sin datos no nos servir de nada. Es absurdo crear un archivo para dejarlo vaco. Podemos meter datos nuevos o importarlos de un archivo. Esta segunda opcin la veremos ms adelante. Primero veremos que clases de datos tendremos que manejar. En principio manejaremos dos esenciales: texto (hasta 8 caracteres) y numricos. No son los nicos datos que se pueden usar en SAS, pero s los ms usados. Ms adelante veremos otras clases de datos posibles. Para crear variables nuevas por cdigo usaremos la palabra INPUT. Por ejemplo, si quisiramos crear las variables nombre, edad, DNI y peso escribiramos lo siguiente: INPUT Nombre $ Edad DNI Peso Sexo; Qu significa el smbolo $? Este smbolo indica que la variable que acabamos de nombrar es un texto, lo que nos permitir escribir letras. Segn este ejemplo Nombre sera un texto y Edad, DNI, peso y sexo seran nmeros. Ojo: Cualquier variable ser un nmero mientras no se indique lo contrario. A continuacin, podremos meter datos. Usaremos para ello la palabra CARDS. Esta palabra indica que cada lnea siguiente incluye un dato nuevo en el que los valores de cada variable anteriormente definida van separados por un espacio. Introduciremos datos as:
- 15 -

Paco 21 35049876 80.1 Luca 28 12547732 65.4 ; Slo tras meter TODOS los datos ira el punto y coma. Un par de aclaraciones: no se admiten ms de 8 caracteres en los textos ni smbolos extraos. La coma decimal es un punto. Hay trucos para saltarse algunos de estos inconvenientes. Por ejemplo, para introducir nombres largos se puede usar el introducir datos por columnas. Podemos especificar el ancho de una o varias variables. Este sera el cambio: INPUT Nombre $ 1-15 Edad DNI Peso Sexo; CARDS; Paco Soria 21 35049876 80.1 1

Luca Martnez 28 12547732 65.4 2 ; Run; Aqu no slo vemos el cambio en el INPUT. Tambin hemos incluido la palabra Run al final del cdigo. Esto sirve para que el SAS procese todo lo anterior cuando lea esta ltima lnea. Ahora bien, cmo podemos hacer que todo lo que hemos escrito en estos dos captulos sirva para algo? Cmo hacer que funcione? Nada ms fcil que ir al men Ejecutar y seleccionar Procesar. O bien, pulsar el botn .

- 16 -

Podemos ver a continuacin todo el cdigo que deberemos tener escrito para crear un archivo con esos datos en SAS: libname Docs 'C:\ Mis documentos'; Data Docs.Ej1; INPUT Nombre $ 1-15 Edad DNI Peso Sexo; CARDS; Paco Soria 21 35049876 80.1 1

Luca Martnez 28 12547732 65.4 2 ; Run; Pero claro, siempre podemos elegir entre esta opcin y la de rellenar una tabla que vimos en el captulo anterior como crear. Seguramente esta opcin es ms visual y sencilla. Sin embargo, tambin es menos comn. Para elegir que tipos de datos queremos introducir en cada columna slo tenemos que picar con el botn derecho del ratn sobre la cabecera de la columna y elegir Atributos de la columna. Nos saldr la siguiente ventana en ingls (creo que avisamos que la traduccin al castellano era incompleta):

- 17 -

Lo primero es elegir en Type si queremos una variable de texto (Character) o numrica (Numeric). Despus le podemos asignar un nombre en Name y decidir el ancho de la variable en la casilla Length. Las opciones de Format e Informat son para esos formatos ms avanzados que dijimos. Una vez que hagamos clic en Apply, estaremos listos para empezar a meter datos en esa columna. Para terminar, una vez que ya tengamos algunos datos podremos guardar la tabla. Dando en el icono de Guardar, deberemos seleccionar una librera (como la de Docs que creamos anteriormente) y seleccionar un nombre de archivo. Una vez hecho esto, slo hay que pulsar en Guardar y la tabla estar en el mismo formato SAS que si hubisemos escrito su cdigo correspondiente.

- 18 -

Ahora bien, una vez guardado, cuando volvamos a abrir este archivo, no podremos aadir nuevas columnas ni tendremos tantas libertades como ahora para editar sus propiedades. Es una proteccin del SAS que otros programas (como SPSS o Microsoft Excel) no tienen. Adems, muy pocos programas aparte del SAS podrn reconocer esta clase de archivos de datos. El SPSS 11 lee bien los archivos de la versin 8. Esperamos que la versin 12 del SPSS sea capaz de entender los archivos de esta nueva versin. En los siguientes captulos veremos que cosas se pueden hacer con estos datos. Desde sencillos grficos en blanco y negro o presentacin de los datos hasta informacin sobre las frecuencias o de las medias. Eso s, a partir de ahora, nos centraremos casi exclusivamente en lo que se puede hacer por cdigo a travs de la ventana del Editor.

- 19 -

6 - Algunos procedimientos.

Bien, una vez que ya hemos dejado claro cmo crear un archivo de datos, lo mejor que podemos hacer es ver que trabajos nos permite hacer con l nuestro programa de SAS. a. Presentar resultados en pantalla. Bueno, esto quizs no sea muy interesante. Porque todo lo que hace es escribir el contenido de un archivo de datos en la pantalla, como si el contenido de la tabla lo escribisemos en formato texto para leerlo con el bloc de notas. Slo habra que escribir: Proc Print data=Docs.Prueba; Run; Y nada ms. El data= nos indica que archivo sacaremos por pantalla. Si omitimos esta parte y escribimos solo Proc Print;, nos mostrar el ltimo archivo con el que hayamos trabajado. Una vez ms, la palabra Run; le dice al comando Procesar que ya puede ejecutar lo que tiene escrito. Sin estas 4 letras ese cdigo no hara nada til. Claro que tambin podramos haber escrito data=Ejemplo, con lo que nos abrira el archivo temporal Ejemplo si es que existe. Adems, podemos aadir alguna que otra opcin. Por ejemplo, podemos aadirle un texto en la cabecera del programa. Quedara algo as:
- 20 -

Proc Print data=Docs.Prueba; title Texto; Run; Bueno, solo hemos aadido una lnea nueva. La palabra title hace que el texto que escribimos a continuacin entre comillas simples aparezca al comienzo de cada nueva pgina. Todos los resultados aparecern en una nueva ventana llamada Salida. b. Ordenar un archivo. Ordenar. Parece algo absurdo, pero no lo es. Para ciertas cosas puede ser incluso hasta imprescindible. Deberemos decidir por que variable queremos ordenar. Por ejemplo, para ordenar el ejemplo anterior por la variable Edad escribiramos lo siguiente: Proc Sort data=Docs.Prueba; By Edad; Run; El data= sigue funcionando igual que en el ejemplo anterior. Ahora bien, este ejemplo ordenara ese archivo por la variable Edad de forma ascendente. Qu no lo queremos as? Qu preferimos un orden descendente? Nada ms fcil que aadir la palabra descending de la siguiente forma: Proc Sort data=Docs.Prueba; By descending Edad;
- 21 -

Run; Claro, que este procedimiento se puede hacer sin cdigo. Abriendo la tabla correspondiente a travs de la ventana del Explorador en Libreras, slo tendramos que picar en la columna correspondiente (segn queramos la ordenacin) con el botn derecho del ratn. Elegimos Ordenar y luego solo decidimos si queremos un orden ascending (ascendente) o descending (descendente). En ninguno de los dos casos lograremos librarnos de ver la lengua inglesa. c. Estadsticos. Ahora veremos un procedimiento para mostrar cuatro valores estadsticos de todas las variables numricas incluidas en nuestro archivo: media, desviacin tpica, valor mximo y valor mnimo. Es muy simple. Tan simple como escribir lo siguiente: Proc Means data=Docs.Prueba; Run; Como todo sigue funcionando como antes, no hacen falta muchas explicaciones respecto de este pequeo cdigo. Y sin haber ledo mucho en este manual, ya empezamos a ver cosas realmente prcticas que podemos hacer en el SAS.

- 22 -

d. Comentarios. Es muy comn aadir algn que otro comentario. No sirven para nada en realidad. Pero, cuando un archivo de cdigo es muy grande, nos pueden ayudar a recordar para que sirve cada cosa. Anotaciones del autor a gusto de cada uno. Un ejemplo de cdigo sera esto: /*Esto sirve para escribir.*/ Como vemos, todo comentario va entre /* y */. Pero increble! No hay ningn punto y coma al final. No es ninguna errata, es que no hace falta. Y puede ocupar todas las lneas que queramos. Si nos apetece, podemos escribir El Quijote en un comentario. Las nicas utilidades prcticas reales son dos: 1 - Ayudarnos a recordar para que sirve cada cosa. 2 - Para explicar a otros que hace cada cosa. Esto ltimo es muy comn en libros de texto y archivos de ejemplo. e. Frecuencias. Un procedimiento muy parecido al proc means es el de frecuencias. Claro que este s admite variables de tipo texto. En nuestra ventana de Salida aparecern las frecuencias de cada valor en cada variable. Para ejecutarlo escribiramos lo siguiente en el Editor: Proc Freq data=Docs.Prueba; Run;
- 23 -

7 - Muestreo estadstico.

Si en el anterior captulo hemos visto algunos de los procedimientos ms normales y facilotes del SAS, en este veremos aquellos que ms relacionados estn con el tema de muestreo estadstico. Si al leer este apartado no sabis distinguir un muestreo aleatorio simple de un muestreo estratificado, ms os vale que dejis este manual y vayis a la biblioteca que ms cerca os pille para buscar un buen libro sobre esos temas. Bueno, ahora que estamos seguros que los que leen ests lneas son expertos en distintos mtodos de muestreo, empezaremos explicando como el SAS puede tomar diferentes muestras de un archivo. Lo ms conveniente es usar un archivo con bastantes datos para probar esto, aunque no es obligatorio. Primero, debemos saber que el procedimiento del SAS para seleccionar una muestra es

surveyselect. Tambin es recomendable indicar que archivo vais a utilizar y tener en cuenta que tipo de muestreo se va a usar. Por ejemplo, para hacer un muestreo aleatorio simple en nuestro archivo seleccionando 50 personas, escribiramos lo siguiente: proc surveyselect data=Docs.Prueba method=srs sampsize=50;
- 24 -

Qu significa esta lnea? Igual que anteriormente, data= indica al SAS que archivo queremos usar. La palabra method especfica que mtodo de muestreo usaremos a continuacin. srs significa muestreo aleatorio simple (simple random select). Por ltimo, sampsize indica que tamao de muestra tomaremos. Como dijimos antes, seleccionaremos 50.

Obviamente, este nmero lo elegiremos a nuestra conveniencia, siempre que sea menor al nmero de registros o datos almacenados en el archivo data. En el caso de que quisiramos un muestreo sistemtico, en lugar de srs, pondramos sys (simple systematic select). Ahora bien, Qu ocurre cuando queremos realizar un muestreo estratificado? Bueno, es un poco ms complicado. Antes de nada, debemos ordenar el archivo por la variable que define nuestros estratos (ver apartado 6.b de este mismo manual). Por lo general se suele hacer una ordenacin ascendente, pero la verdad es que no importa cual se haga. Tambin deberemos saber cuantas categoras posibles tiene la variable del estrato. Y, adems, toda la informacin que requiera el tipo de afijacin que vayamos a utilizar. En este apartado, se suele elegir afijacin igual o, ms frecuentemente, proporcional. Y qu es eso de la afijacin? La verdad es que nadie que trabaje en muestreo puede permitirse el lujo de no saber lo que es. Antes de hacer cualquier trabajo hay que familiarizarse con las herramientas que hay que
- 25 -

usar. A grandes rasgos, podemos decir que la afijacin es el tamao que daremos a los estratos. Si es una afijacin igual, daremos el mismo tamao a todos. Pero, hay casos en los que hay estratos ms importantes que otros. En este caso, se suele recomendar una afijacin proporcional, que tiene en cuenta que grupos son los ms importantes. Adems de esas dos afijaciones hay otras (como la mnima), pero su estudio debera hacerse en otras asignaturas o manuales. Ahora vamos a pensar en un ejemplo. Elegimos una variable discreta sencilla, como puede ser la variable sexo (slo puede tomar dos valores: hombre o mujer). En el ejemplo que vamos desarrollando, esta variable toma el valor 1 para los hombres y 2 para las mujeres. Vamos a ver un ejemplo para tomar una muestra aleatoria sistemtica de 100 individuos aplicando una afijacin igual: Proc Sort data=Docs.Prueba; By Sexo; Run; /*Ordena por sexo*/ Proc surveyselect data=Docs.Prueba method=srs sampsize=(50 50); strata sexo; /*Indica la variable de estrato*/ Run; Bueno, como explicamos ya en el apartado 6.b, las 3 primeras lneas ordenan nuestro archivo (como bien indica el comentario) de forma
- 26 -

ascendente. El cambio en la lnea del surveyselect lo vemos al final, en los nmeros incluidos entre parntesis tras el sampsize. Son 2, ya que hay 2 estratos. Son iguales (50 y 50), ya que hemos elegido una afijacin igual. Y por ltimo, solo decir que esos nmeros suman el 100 que queramos en nuestra muestra. Y el parntesis no se nos ha colado, es obligatorio. A continuacin vemos una nueva palabra: strata. Para cualquier muestreo estratificado es obligatoria ponerla. Le indica al SAS que variable es la que vamos a usar para indicar los estratos o grupos de pertenencia de los datos. Adems, podemos hacer que guarde la muestra en un archivo, sea cual sea el tipo de muestreo que hayamos usado. Slo deberemos aadir al final de la lnea de surveyselect la palabra out= y poner al lado el archivo donde lo queremos guardar. Por ejemplo, si lo que queremos es guardarlo en la librera Docs como Muestra (vase apartado 4, creacin de archivos, libreras), modificaramos la primera lnea as: Proc surveyselect data=Docs.Prueba method=srs sampsize=(50 50) out=Docs.Muestra; Tambin pueden hacerse otros muestreos cambiando el comando method. A continuacin, mostramos una lista de los principales mtodos admitidos por el SAS:

- 27 -

PPS ...................... Muestreo proporcional al tamao. BREWER ............ Mtodo de Brewer. MURTHY............ Mtodo de Murthy. PPS_SYS ............. Muestreo sistemtico proporcional al tamao. PPS_WR .............. Muestreo proporcional al tamao con remplazam. SEQ...................... Muestreo secuencial. SYS...................... Muestreo sistemtico. SRS ...................... Muestreo aleatorio simple. Atencin: Si se usa un muestreo proporcional al tamao, habr que aadir una lnea antes de Run con la sentencia SIZE que indicara que variable es la que contiene la informacin de ese tamao. Quedara el cdigo ms o menos as: proc surveyselect data=Docs.Prueba method=pps sampsize=50; SIZE Peso; /*Peso es la variable de tamao.*/ Run; A estas alturas, el lector (o lectora) de esta gua ya debe de estar ms o menos preparado para el manejo con la forma de tomar muestras con el SAS. Pero qu se puede hacer con un archivo de muestra adems de todo lo que se ha visto en el captulo 6? Pues existe un comando especializado en realizar cuentas con un archivo de muestra: surveymeans. El funcionamiento es muy parecido al de otros procedimientos:
- 28 -

Proc surveymeans data=Docs.Prueba total=900; Run; Y nos sacara una pantalla en la ventana de Salida con los datos de media, desviacin tpica y nmero de elementos en el archivo. Y la palabra total= a que viene? Qu significa? Pues indica el tamao de la poblacin de la que se ha sacado la muestra. Ni ms, ni menos. Aparte de esto, podemos especificar que indicadores queremos mostrar sobre nuestros datos, como media (mean), varianza (var), suma (sum), mnimo (min), mximo (max) o desviacin tpica (std); con lo que en la pantalla de Salida slo escribira el nmero de elementos con los que contamos y aquellos indicadores que elijamos. Por ejemplo, si queremos que en el ejemplo anterior slo salgan la media y la varianza, escribiramos: Proc mean var; Run; Y ya estara listo para funcionar. Slo tendramos que ejecutar el comando de Procesar, y en seguida nos saldran los resultados. surveymeans data=Docs.Prueba total=900

- 29 -

8 - Grficos.

Tras mucho trabajo con los datos, vamos a cambiar de ambiente. Vamos a realizar una de las cosas que ms les gusta a la gente de la estadstica: los grficos. Dice un dicho que vale ms una imagen que mil palabras. Esta frase parece an ms cierta en el mundo de la estadstica. Cuantas veces nos hemos enterado mucho mejor de lo que realmente pasa con nuestros datos simplemente porque nos han enseado un bonito grfico explicativo! Y es que el SAS va ser una excepcin? Por supuesto que no. Y ahora nos toca ver algunos de los ms comunes. a. Histograma de frecuencias. Este es de los ms famosos. Es sencillo de crear. Para hacer uno en nuestro archivo sobre la variable edad, escribiramos: Proc gchart data=Docs.Prueba; Block Edad; Run; Aqu no se ven muchas cosas nuevas. Slo decir que la sentencia block indica de qu variable queremos sacar su histograma de frecuencias.

- 30 -

b. Diagrama de barras. Y si no queremos un simple histograma? Y si lo que queremos es un completo diagrama de barras con ms informacin sobre las frecuencias de cada valor? Simplemente deberemos cambiar la palabra block por HBAR (barras horizontales), HBAR3D (barras horizontales en 3 dimensiones), VBAR (barras verticales) o VBAR3D

(barras verticales en 3 dimensiones). No es exactamente un diagrama de

frecuencias ya que sigue usando los puntos medios, pero se aproxima bastante. c. Diagrama de sectores. Y los de sectores? Tambin se hacen con este procedimiento de gchart? Pues s, cambiando el block del ejemplo del apartado a por PIE (sector circular), PIE3D (sector circular en 3 dimensiones) o DONUT (anillo circular). Por ejemplo, un sector en 3 dimensiones sobre la variable edad se escribira as: Proc gchart data=Docs.Prueba; Pie3d Edad; Run;

- 31 -

d. Diagrama de dispersin. Bueno, hemos visto que el procedimiento gchart puede sacar distintos grficos para una sola variable. Pero que ocurre con aquellos grficos en los que son dos las variables que intervienen? Pues que necesitaremos un nuevo procedimiento: gplot. Por ejemplo, si quisiramos un diagrama de dispersin entre las Edad y Peso de nuestro usado archivo de ejemplo, lo haramos as: Proc gplot data=Docs.Prueba; plot Edad*Peso; Run; Y ya est. Con el asterisco separando a las dos variables, como si se tratara de una simple multiplicacin, este procedimiento nos sacara una imagen relacionando las dos variables. e. Exportar las imgenes. Adems de estos dos procedimientos, hay muchos ms para sacar grficos ms avanzados (G3D, GCONTOUR, G3GRID, GMAP). Demasiadas cosas tiene este SAS como para poder ser vistas en este manual de iniciacin. Seguramente podramos seguir escribiendo pginas y pginas y no acabar nunca. Pero no quera acabar este captulo nmero 8 sin explicar otra cosa que se puede hacer con cualquier grfico que saque el SAS: Exportarlo.

- 32 -

Claro que podramos guardar los grficos directamente, pero si ya es difcil encontrar otro programa que entienda sus archivos de datos, an ms complicado sera encontrar alguno para leer sus imgenes. En la ventana de Graph donde est el grfico que queris guardar, le pinchis con el botn derecho del ratn. Os saldr un men contextual en el que veris Archivo. Dentro de ese men Archivo, hay una opcin que pone Exportar como imagen. Nada ms hacer clic ah, os saldr una ventana como esta:

Increble! Podis guardar vuestro grfico donde queris, y en formatos tan usados y conocidos como el BMP, JPG o GIF. Ideal para usarlos con vuestro editor de textos o para hacer una presentacin con diapositivas.

- 33 -

9 - Importar y modificar datos.

En el pasado captulo 5 vimos como crear un archivo de datos y guardarlo. Seguramente ms de uno se preguntara lo siguiente: Cmo puedo hacer para seguir metiendo datos en un archivo que ya existe? Si alguno se ha planteado esto, se llevar una buena decepcin. Al contrario que el Excel, el Open Office4 o el SPSS; el SAS no deja editar ni modificar un archivo de datos. Slo permite operaciones de lectura. Puede que los hackers informticos conozcan algn modo de engaar al PC, pero el resto de los mortales tendremos que buscar otro medio. Si bien es verdad que no nos deja modificar un archivo, lo que podemos hacer es trasladar los datos a un archivo nuevo. Y quin recuerda cmo se creaba un archivo nuevo? Para el que no se enter, usamos la sentencia DATA. Ahora bien, una vez que creamos un archivo nuevo, le podemos decir que lea el archivo de origen de datos. Para eso suelen usarse las sentencias set o merge. Entonces, nos quedara un cdigo as: DATA Docs.Nuevo; set Docs.Prueba;
4

http://www.openoffice.org

- 34 -

Run; Claro que, con esto, slo tendremos un duplicado exacto del archivo Prueba. Y la verdad, eso sirve de poco. Pero no queramos modificarlo? Pues modifiquemos. Pero, no olvidemos, que todas las modificaciones han de hacerse entre el DATA y el Run, despus no valdrn. Una de las modificaciones que se nos pueden ocurrir es agregar nuevas variables. Puede ser un clculo basado en las anteriores: Var = Edad * Peso; En este caso no tiene mucho sentido, pero puede tenerlo en otras. Tambin podemos usar la variable _N_ del SAS en estos clculos. _N_ indica el nmero de registro actual. Incluso puede darse el caso de que en la nueva variable quisiramos ir arrastrando su valor de un registro a otro. Esto se puede hacer con la sentencia retain, justo despus de la sentencia DATA: Retain x; /*Retiene el valor de x */ /*lo inicializa a 1*/

Retain x 1;

Para qu puede servirnos? Para muchas cosas, puede salir en cualquier momento, aunque no es muy frecuente, la verdad. Pero ms vale ponerlo, por si las moscas Slo aadir que el 1 lo hemos puesto a modo de ejemplo, puede ir en su lugar el nmero que nos de la gana. Adems, no tiene porque ser un valor fijo para todos los registros. Podemos, si queremos, ensearle a decidir que valores tomar segn el caso.
- 35 -

Por ejemplo, si quisisemos crear una variable Mayor que nos dijese si una persona es mayor de edad o no. Para ello podramos basarnos en la variable Edad usando la sentencia if then para que diga cuando va a valer una cosa y cuando otra. If Edad < 18 then Mayor = 0; If Edad >= 18 then Mayor = 1; Perfecto. Igual que hemos inventado un ejemplo para un caso especfico, se podra crear cualquier otra regla que necesitsemos. Otra cosa que podemos decidir es si quitamos alguna variable del archivo original. Realmente podemos hacer 2 cosas cuando no queremos mantener todas las variables del archivo original: 1 - Decidir con que variables nos quedamos (sentencia Keep) o 2 - Decidir que variables eliminamos (sentencia Drop). Y tras estas cosas aprendidas, veamos un ejemplo de todo esto: DATA Docs.Nuevo; set Docs.Prueba; drop DNI; /*Quita la variable DNI.*/ If Edad < 18 then Mayor = 0; If Edad >= 18 then Mayor = 1; Run;

- 36 -

Bueno, esto nos sirve para obtener datos de otro archivo SAS. No es tan sencillo como abrir un documento: el SAS protege los datos creados. Pero, qu ocurre si los datos que queremos meter estn en otro formato? Podemos meter datos de Excel o SPSS? Existe una herramienta para introducir datos de otros archivos. Est en el men Archivo, Importar datos, aunque slo trabaja los siguientes tipos de archivo: Microsoft Excel 4, 5, 95, 97, 2000, 2002. (*.xls) Microsoft Access 97, 2000, 2002. (*.mdb) Archivo dBase. (*.dbf) Hoja de Lotus 1-2-3. (*.wk1; *.wk3; *.wk4) Archivo limitado por comas. (*.csv) Archivo limitado por tabulaciones. (*.tab; *.txt; *.dat) Como podemos ver, los que mejor lo tienen son los usuarios de Excel. Pero los usuarios de SPSS no tendrn que preocuparse, ya que el SPSS permite exportar a la mayora de estos archivos, incluido el formato de Excel. Y los que tengan Open Office o Star Office5, ms de lo mismo. En el ejemplo de importar datos que vamos a realizar a continuar utilizaremos el formato csv, muy utilizado a la hora de trabajar datos sencillos, y reconocible por casi cualquier programa. Lo primero que deberemos hacer es irnos al men Archivo, Importar datos. Nos saldr esta ventana:
5

http://www.sun.com/software/star/staroffice/index.jsp - 37 -

Y aqu, elegiremos el tipo de datos que queremos meter. Otra vez volvemos a encontrar que la traduccin al castellano es incompleta. Una vez que elijamos el tipo de archivo (en nuestro caso Comma Separated Values (*.csv)), pulsamos el botn de Siguiente. El siguiente paso ser indicarle al SAS dnde tenemos los datos. En qu carpeta est el fichero que queremos importar? Eso se har en la siguiente ventana. Aqu hay que aclarar que sea el tipo de archivo que sea, nuestro software de SAS slo har una copia de los datos. En ningn momento modificar el archivo que deseamos importar. Dicho de otro modo, se limitar a realizar una copia del archivo original a un archivo tipo SAS. Para buscar el archivo, podemos usar el botn Browse.

- 38 -

Y claro, despus de decir dnde est el original, hemos de decir dnde haremos la copia. Tras pulsar Siguiente nos saldr esta otra ventana:

- 39 -

Tendremos que elegir la librera (recordar que en el apartado 4, pgina 12; hablamos de que para guardar archivos, tenamos que crear una librera, que era como un acceso directo a nuestra carpeta real). Adems de las que hayamos creado nosotros, estarn la carpeta Sashelp (dnde estn los archivos de ejemplo), Sasuser (dnde guarda copia de archivos usados por nosotros) y Work (directorio temporal del SAS). Una vez elegida la librera correspondiente, nos toca asignarle un nombre al archivo. Eso se hace en el recuadro de Member. Si pulsamos Siguiente nos aparecer esta nueva ventana:

Esto slo es til si nos interesa cmo se hara esta importacin de archivos escribindolo en cdigo del SAS. Si no nos interesa, podemos dejar el cuadro en blanco. Y ya decir Finalizar.
- 40 -

Pero si lo guardamos, nos creara un archivo de datos as: PROC IMPORT OUT=WORK.Sanidad DATAFILE= "C:\Sanidad.csv" DBMS=CSV REPLACE; GETNAMES=YES; DATAROW=2; RUN; Este es un nuevo procedimiento: Proc Import. Out= (como ya indicamos en el captulo 7, pgina 19) indica al SAS donde se guardar el archivo. DataFile= indica dnde se encuentra el fichero original de los datos. DataRow le indica al SAS cual es la primera fila con datos. Y GetNames indica si se tomarn la primera fila del archivo original como los nombres de las variables correspondientes. Ests 2 cosas las podramos haber configurado manualmente en la segunda ventana, usando el botn de Options. Pero se suele dejar al SAS que lo configure l solito. Y no hay que dejar de comentar el comando DBMS, que le dice al SAS que tipo de datos tiene el archivo. Seguramente este sea el nico inconveniente a la hora de hacerlo por cdigo: tener que saber cmo se llama el tipo de fichero que vamos a manejar. Y listo, ya sabemos meter datos de otro fichero de SAS o de un archivo de otra clase. Si el fichero viene delimitado por algn carcter especial que no coincida con los predefinidos por SAS. Podemos indicarle manualmente a
- 41 -

SAS que carcter se usa para delimitar el fichero de texto plano con el comando Delimiter de la siguiente forma: PROC IMPORT OUT=Alturas DATAFILE= "C:\Alturas.txt" REPLACE; Delimiter="|"; GETNAMES=YES; DATAROW=2; RUN; Adems, tenemos otra opcin de traer archivos de fuera en el caso de que sean archivos de texto. Si dicho archivo de texto tiene los datos bien organizados, ms o menos como los escribimos cuando vimos la sentencia CARDS, podemos usar la sentencia infile dentro del paso DATA as: Data Docs.Bolsa; infile 'C:\Mis Documentos\Bolsa1.txt'; input Quimicos DuPont Union Exxon Texaco; Run; Este trozo de cdigo creara en el archivo permanente Bolsa metiendo los datos del archivo Bolsa1.txt en las 5 variables creadas en la sentencia Input. No hace falta decir que este ha sido un ejemplo como otro cualquiera.

- 42 -

10 - Nmeros Aleatorios. En este captulo aprenderemos a simular distintas distribuciones de forma aleatoria. Realmente la expresin de nmero aleatorio es incorrecta, ya que viendo un nmero, no hay forma de saber si es aleatorio o, por el contrario, se saba que valor iba a tomar. Siendo un poco ms estrictos, este captulo debera titularse Generacin de series aleatorias de nmeros, ya que est expresin es ms correcta. Por decirlo de otro modo, slo podemos hablar de aleatoriedad si hay un proceso repetido a lo largo del tiempo. Entonces, una serie o una lista de nmeros ser aleatoria si, conociendo los que han salido ya, no hay forma de adivinar el siguiente, a excepcin de que acertemos por casualidad. La mayora de los programas slo incluyen una funcin para la generacin de nmeros aleatorios, que crea nmeros siguiendo una distribucin Uniforme (0,1). Por aclarar esto un poco, significa que podr salir cualquier nmero que est entre 0 y 1, siendo todos los posibles nmeros igualmente probables.

Quizs la nica diferencia entre los distintos programas que ofrecen esta posibilidad, sea cuantos decimales dan de precisin.

- 43 -

En el caso del SAS, no slo ofrece la distribucin uniforme, sino que tambin existen la normal, la exponencial, la gamma Podemos crear nmeros aleatorios para meterlos en nuestros archivos de datos con la sentencia DATA: Data Aleat; Do I=1 to 50; Normal = RanNor (11111111); Output; End; Put 'Generada Normal (0,1).'; Run; Esto creara un conjunto de datos con 50 valores de una Normal (0,1). RanNor es la sentencia que crea el nmero aleatorio. El nmero entre parntesis es lo que se llama semilla, y la podemos elegir segn nos guste ms. Adems, vemos por primera vez un Do. Esto crea un bucle, es decir, algo que se repite. Y el End indica cuando acaba este bucle. El to indica que el este bucle se repetir 50 veces (de 1 a 50) y I es una variable. La sentencia Output permite que guardemos en nuestro archivo Aleat sin tener que esperar a que acabe el bucle. Si no, slo creara un valor. Por ltimo, mencionar la sentencia put que nicamente nos sirve para escribir en el Log.

- 44 -

Podemos distribuciones:

generar

nmeros

aleatorios

de

las

siguientes

Normal (0, 1).............................................. RANNOR (Semilla) Uniforme (0, 1) ........................................... RANUNI (Semilla) Gamma (b, c)......................................... RANGAM (Semilla, a) Exponencial (1)...........................................RANEXP (Semilla) Poisson () ...............................................RANPOI (Semilla, ) Binomial (n, p) .................................... RANBIN (Semilla, n, p) Cauchy (0, 1).............................................. RANCAU (Semilla) nicamente recalcar que la Semilla puede ser cualquier nmero entero entre 0 y 230.

- 45 -

11 - Bases de Datos. Adems de la posibilidad de introducir los datos manualmente, de leerlos de otro fichero SAS o la sencilla importacin de archivos planos (txt, csv, tab... Captulo 9), el SAS da la posibilidad de leer de bases de datos de Access, MySQL6, Oracle7, tanto en disco duro como en servidores remotos (introducidos por IP). Para lecturas de bases de datos, podemos usar el Proc SQL (est opcin puede no funcionar, dependiendo de las limitaciones de la licencia SAS que vimos en el captulo 2). Este procedimiento es de los pocos que no termina con la sentencia Run. En su lugar, se usa la opcin Quit. Dentro de este procedimiento, ms que cdigo SAS que ya hemos visto, se usa un cdigo que se parece ms al lenguaje SQL que trataremos de explicar en captulos posteriores. Por ejemplo, se podra usar para leer una BBDD de Access: PROC SQL; CONNECT TO ODBC (NOPROMPT="DRIVER=Microsoft Access Driver (*.mdb);DBQ=C:\MyBase.mdb"); CREATE TABLE TablaSAS AS SELECT * FROM CONNECTION TO ODBC
6 7

www.mysql.com www.oracle.com

- 46 -

(SELECT * FROM Tabla); DISCONNECT FROM ODBC; QUIT; En este cdigo, MyBase sera el nombre del archivo Access. TablaSAS sera el nombre con el que guardaramos en SAS la informacin y Tabla sera el nombre de la tabla de Access de la que leera la informacin correspondiente. El nombre del Driver es el normal de Windows, pero puede que, dependiendo de la versin de Windows que tengis instalada, puede variar. Esto se puede ver en el men inicio de Windows, ejecutar, y escribiendo odbcad32. O bien, podis abrir el Panel de control, Herramientas Administrativas, Data Sources.

- 47 -

El SAS dispone tambin de la posibilidad de crear libreras remotas a servidores externos. Dentro de este programa de Windows de odbcad32 deberemos crear primero la fuente de datos. Por ejemplo, si la base de datos est en SQL Server y se accede a travs de una direccin IP, podemos Agregar una nueva fuente de datos:

- 48 -

Una vez creado en Windows la nueva fuente de datos, podemos llamar a ella desde SAS usando el comando libname. Slo necesitaremos saber el nombre que dimos en la ventana anterior. libname NombreSAS odbc dsn=NombreWin schema=dbo;
- 49 -

NombreSAS es el nombre con el que Sas se referir a esta fuente de datos nueva (sin espacios y un mximo de 8 caracteres). NombreWin es el nombre real de dicha fuente de datos (el que hemos puesto en la aplicacin odbcad32). A partir de aqu para leer o escribir en est librera se funciona exactamente igual que el resto de libreras SAS, siempre y cuando tengamos permiso en la fuente de datos. Por ejemplo, podemos tener derechos de lectura, pero no de escritura, por lo cual no podremos modificar los archivos de dicha fuente de datos.

- 50 -

12 - Grficos de Mapas Uno de los grficos ms trabajados de SAS es el de mapas, que permite sacar el mapa de un pas por provincias o estados. Para poder usarlo, deberis tener definida en SAS la librera de Maps (normalmente har referencia a C:\Program Files\SAS\SAS 9.1\maps). Primero crearamos nuestro fichero de datos con un paso data (o usaramos uno existente): Data Provincias; Input Provincia $ 1-20 Clientes; Cards; MADRID ALAVA BADAJOZ BARCELONA GRANADA LAS PALMAS VALENCIA ; Run; 35 8 12 48 24 3 41

- 51 -

Luego, uniramos con la tabla que tiene los cdigos de pas. En este ejemplo, usaremos las tablas referentes a Espaa. El SAS necesita dichos cdigos para dibujar los mapas: Data MapInfo (keep=Provincia id); Set Maps.Spain2; Provincia=Idname; Run;

Proc sort data=Provincias; by Provincia; Run; Proc sort data=MapInfo; by Provincia; Run;

Data Provincias; merge Provincias MapInfo; by Provincia; if clientes=. then clientes=0; if id=999 then delete; Run; El paso ltimo hace que cualquier registro con el cdigo 999 (que deberan ser las que no tienen provincia) se borren del fichero SAS. Tambin recodificamos los valores perdidos a 0 para que no deje ninguna provincia sin pintar. Proc Gmap map=maps.spain data=Provincias;
- 52 -

id id; prism clientes / coutline=gray; Run; La opcin id (marcada en azul) indica a SAS en que campo tenemos el cdigo de provincia que mencionamos al principio (contenido en la tabla Spain2). Map= indica que mapa vamos a usar, en este caso, el de Espaa. Podemos ver que mapas hay disponibles, abriendo la librera Maps. Cada mapa tiene 2 ficheros, el que usa para dibujar y el que explica que cdigo es cada provincia (este es el que termina en 2). Al ejecutar el cdigo que hemos visto, nos sale el siguiente grfico:

Podemos variar un poco este grfico, por ejemplo cambiando la opcin de prism por otras equivalentes como block o surface. O tocando los colores. O cualquiera de las muchas cosas que el SAS tiene y que no cabrn en esta pequea guia.
- 53 -

APNDICE
_N_ .............................................35 Block...........................................29 BREWER....................................28 By................................................21 CARDS .......................................15 CoutLine .....................................51 DATA .........................................13 DataFile ......................................41 DataRow .....................................41 DBMS .........................................41 Delete..........................................51 Delimiter.....................................42 Descending .................................21 Doto ........................................44 DONUT ......................................31 Drop ............................................36 End..............................................44 GetNames ...................................41 HBAR .........................................30 HBAR3D ....................................30 Id.................................................52 If then ....................................36 Infile ...........................................42 INPUT ........................................15 Keep............................................36 Libname......................................12 Map.............................................52 Max.............................................29 Mean ...........................................29 Merge..........................................34 Method........................................24 Min .............................................29 MURTHY...................................28 Out ..............................................27 Output.........................................44 PIE ..............................................30 PIE3D .........................................30 Plot..............................................31

- 54 -

PPS..............................................28 PPS_SYS ....................................28 PPS_WR .....................................28 Prism...........................................52 Proc Freq.....................................23 Proc Gchart .................................29 Proc Gmap ..................................51 Proc Gplot...................................31 Proc Import .................................41 Proc Means .................................22 Proc Print ....................................20 Proc Sort .....................................21 Proc SQL ....................................46 Proc Surveymeans ......................28 Proc Surveyselect .......................24 Put ...............................................44 Quit .............................................46 RanBin ........................................45 RanCau .......................................45 RanExp .......................................45 RanGam ......................................45 RanNor........................................44

RanPoi ........................................45 RanUni........................................45 Retain..........................................35 Run .............................................16 Sampsize.....................................24 Sashelp........................................40 Sasuser........................................40 SEQ.............................................28 Set ...............................................34 Size .............................................28 SRS .............................................25 Std...............................................29 Strata...........................................26 Sum.............................................29 Surface........................................52 SYS.............................................25 Title.............................................21 Total............................................28 Var ..............................................29 VBAR .........................................30 VBAR3D ....................................30 Work ...........................................40
- 55 -

LL

S-ar putea să vă placă și