Introduccion Sas

51
APLICACIÓN DEL PAQUETE ESTADÍSTICO SAS CLASES PRÁCTICAS Statistical Analysis System Dr. Gilberto de Jesús López Canteñs

Transcript of Introduccion Sas

APLICACIN DEL PAQUETE ESTADSTICO SAS

APLICACIN DEL PAQUETE ESTADSTICO SASCLASES PRCTICAS

Statistical Analysis System

Dr. Gilberto de Jess Lpez Cantes

1CMO LLAMAR AL SASHay dos opciones:A travs de los programas (Inicio/Programas/SAS/The SAS System for Windows)A travs de un icono identificador del SAS en el escritorio de Windows (The SAS System for Windows)Con estas instrucciones, el SAS empieza a cargarse en la memoria de la computadora, y transcurridos algunos segundos se desplegarn en la pantalla tres ventanas: Log, Editor de programas, salida (output)

El cursor aparece parpadeante en el inicio de la ventana editor de programas, lo que significa que la computadora est lista para recibir instrucciones en esa ventana.2VENTANA: Editor de programa (Program editor)En esta ventana se introducen los datos y las instrucciones. Es decir, se escriben los programas.Se le ordena a la mquina ejecutar las instrucciones o correr el programa.

3VENTANA: logSe muestra todo lo que el SAS hizo, una vez que se dio la orden de ejecutar un programa.Aqu aparecen los mensajes de los errores que pudieran haberse cometido y las razones por las cuales se pudo haber suspendido la ejecucin de algn trabajo.

Cuando se comete un error aparece al inicio del mensaje la palabra error.

Aparecen mensajes que se indican con la palabra note.

4VENTANA: log

5VENTANA: Salida (Output)Se muestran los resultados que se originaron de la ejecucin del programa, todo lo que se instruy a la computadora que hiciera con los datos.

En ocasiones se ordena la ejecucin de un programa, y despus de un instante, la ventana salida aparece en blanco, sin la salida con los resultados esperados; esto significa que cometi algn error al escribir el programa, falta algn punto y coma, hay alguna palabra mal escrita, etc., por eso el programa no funcion.

En ese caso hay que ir a la ventana log para descubrir el tipo de error cometido y despus ir a la ventana Editor de programa para hacer las correcciones y volver a correr el programa.6VENTANA: Salida (Output)

7CMO CAMBIAR DE VENTANA

8CMO BORRAR EL CONTENIDO DE LAS VENTANASPara correr un programa es necesario borrar el contenido de las ventanas para ahorrar memoria y para que las ventanas estn limpias y se pueda desplegar la informacin correspondiente a la ejecucin del nuevo programa.Debe de estar el cursor en la ventana que se desea borrar y se le da la opcin Edicin/Borrar todo.

9Teclas y sus combinaciones ms frecuentes

10CMO EJECUTAR UN PROGRAMAPara ejecutar correr un programa estando en la ventana program editor y con el programa desplegado en pantalla, puede usarse el cono que representa la figura de un pequeo personaje corriendo en el men principal Ejecutar/Procesar.

11ENUNCIADOS BSICOSPara utilizar el SAS con objeto de analizar un conjunto de datos, es necesario escribir algunas instrucciones simples, en las que se emplean palabras claves del SAS, lo que constituye bsicamente un programa.

Generalmente un programa SAS se inicia con un enunciado data que es la parte del programa donde se coloca el nombre asignado al conjunto de datos(DATA SET) con que se trabajar.

Despus se escribe el enunciado input el cual seala que a continuacin se escribirn en el programa los nombres que el usuario asignar a cada una de las variables con que va a trabajar.12ENUNCIADOS BSICOSDespus del enunciado input se coloca el enunciado cards; lo que indica al programa que a continuacin van a escribirse datos.Luego viene el enunciado proc, que corresponde a la etapa de procedimientos, aqu es donde se instruye acerca de qu cosa se necesita hacer con los datos (impresin, ordenarlos, graficarlos, anlisis estadstico, etc.)Finalmente se escribe el enunciado run, para sealar que el programa ha terminado y est listo para ejecutarlo.

CADA INSTRUCCIN DEL SAS TERMINA CON UN PUNTO Y COMA (;)13Las instrucciones se pueden escribir indistintamente con letras maysculas o minsculas.

Una vez que se tecle una instruccin y se quiere ir a la siguiente lnea o rengln, se debe presionar la tecla ENTER.

Cuando se han escrito varias instrucciones del programa y se necesita corregir algn error, es posible mover el cursor mediante las teclas con flechas o con el mouse, ubicarlo en el lugar deseado y hacer la correccin.

ENUNCIADOS BSICOS14ENUNCIADOS BSICOSLas instrucciones pueden ir juntas en un rengln o en renglones diferentes.

Antes de iniciar una nueva instruccin, despus del punto y coma pueden ir uno o ms espacios en blanco.

Las palabras usadas dentro de una instruccin deben ir separadas al menos por un espacio en blanco o varios espacios en blanco, lo cual no importa, lo que no puede olvidarse es que cada instruccin termina siempre en un punto y coma.15ESTRUCTURA GENERAL DE UN PROGRAMA DE SAS

16FORMA GENERAL DE UN PROGRAMA EN SASdata;input;cards;

proc;run;

Aqu se escriben los datos17INSTRUCCIN dataLa instruccin data ordena la creacin de un archivo de datos SAS (DATA SET) y le asigna un nombre.

El nombre del archivo no debe tener ms de ocho caracteres, debe comenzar con una letra, aunque despus pueda llevar nmeros, y no debe tener espacios en blanco.

SINTAXISDATA nombre del conjunto de datos;EJEMPLOS:data dos; nombre correctodata expto9; nombre correctodata 95ao; nombre incorrectodata b uno; nombre incorrectodata b-tres; nombre correctodata experimento; nombre incorrecto

18INSTRUCCIN inputIndica a la computadora el nombre de la o las variables que se van a utilizar en el programa.

Describe a SAS el arreglo de las lneas de datos

Los nombres que se le asignan a las variables pueden tener hasta ocho caracteres, sin espacio en blanco y no deben empezar con un nmero.

Existen variables numricas y alfanumricas.

Sintaxis:INPUT lista de variables;19INSTRUCCIN cards;Esta instruccin seala que a continuacin en el programa se colocarn los datos con los que se va a trabajar.

Despus de cada hilera de datos u observacin no se coloca ningn punto y coma (;).

Los datos de cada variable deben ir anotados en el mismo orden en que se definieron los nombres de las variables en el input.

Esta instruccin debe usarse cuando los datos estn contenidos en el programa, y se omite cuando se usa un archivo externo. 20INSTRUCCIN run;Permite ejecutar el programa y que los resultados originados por la ejecucin del programa puedan verse en la ventana de OUTPUT.

Siempre se debe colocar al final de cada programa.21VARIABLES ALFANUMRICASEJEMPLO:Data alumnos;Input nombre $ edad;Cards;Juan 20Maria 21Luis 32Alberto 33Run;

Proc print data=alumnos;Run;Como la variable variedad de alfalfa es alfanumrica, entonces para que el SAS la lea y la reconozca como tal, despus de colocar en el input el nombre que la identifica se pone el smbolo $, separado un espacio de dicho nombre (nombre $); a continuacin se coloca el nombre de la otra variable, pors (porcentaje de plantas sobrevivientes) que es una variable numrica.22CMO GRABAR EN UN DISCO LOS RESULTADOS DE UN PROGRAMAHay dos opciones:Mediante el icono correspondiente (tiene un disco)Mediante la secuencia Archivo/Guardar como

Tiene varias extensiones (.sas; .log; .lst; .htm; .dat), sta ltima es de gran utilidad cuando queremos ver los datos en un editor de texto.23DATASETS TEMPORALES Y DATASETS PERMANENTESLos datasets temporales se encuentran en una librera virtual llamada WORK que se vaca automticamente cuando se apaga el programa.

Para crear un dataset permanente, en primer lugar se crea una librera con la instruccin LIBNAME especificando el nombre y la ruta dnde ubicarla a continuacin. A partir de este momento, para crear un dataset permanente que pertenezca a esta librera se utiliza el nombre compuesto: nombre_libreria.nombre_dataset".

libname permanen "C:\";INSTRUCCIN procPara invocar los procedimientos SAS se emplea la instruccin PROC que es una abreviatura de la palabra PROCEDURE.Son programas de cmputo que leen el archivo y realizan diferentes operaciones con los datos, como anova (que ejecuta el anlisis de varianza), reg (que hace anlisis de regresin), plot (que realiza grficas) corr (que hace correlaciones), etc.Sintaxis:PROC nombre del procedimiento;

proc contents data=alumnos; run;

25LISTAR LOS CONTENIDOS DE UN DATASETCon el procedimiento CONTENTS, se obtiene un listado con informacin relativa al dataset que se menciona en la opcin DATA=nombre_dataset, as como de sus variables.

Especificando la opcin POSITION, el listado de las variables est ordenado segn la posicin de cada variable en el dataset. Por defecto, sin la opcin anterior, este orden es alfabtico.

PROC CONTENTS DATA=ALUMNOS POSITION;RUN;

CMO INTRODUCIR COMENTARIOS EN UN PROGRAMACuando los programas son extensos a veces es necesario introducir algunos comentarios explicativos en el programa.Los comentarios aparecen en el programa sin alterar su funcionamiento.Hay dos formas de introducir comentarios:Iniciar el comentario con un asterisco (*) y terminar con un punto y coma (;). Ej: *este es un comentario;Iniciar el comentario con los signos /* y terminar con */. Ej: /*este es un comentario*/

Ej: data soya; *lee archivo soya.prn en disco c: a partir de observacin 6; infile c:\soya.prn firstobs = 6;27DATASETS TEMPORALES Y DATASETS PERMANENTESLos datasets temporales se encuentran en una librera virtual llamada WORK que se vaca automticamente cuando se apaga el programa.

Para crear un dataset permanente, en primer lugar se crea una librera con la instruccin LIBNAME especificando el nombre y la ruta dnde ubicarla a continuacin. A partir de este momento, para crear un dataset permanente que pertenezca a esta librera se utiliza el nombre compuesto: nombre_libreria.nombre_dataset".

libname permanen "C:\";INSTRUCCIN Proc print;En este caso el procedimiento print, se utiliza para que en la ventana output se despliegue el nombre de las variables con sus valores.

Si se pone proc print; se despliegan en pantalla todas las variables utilizadas en el programa.

Para desplegar slo algunas variables definidas en el input para despus imprimir; para esto debe hacerse lo siguiente:Proc print; var nombre;

La instruccin var en la sentencia indica las variables que se van a desplegar en el mismo orden en que se indicaron en el ejemplo; primero n, despus p y as sucesivamente. Para que aparezcan en otro orden slo debe especificar cual en la instruccin var.

Tambin se puede mostrar en pantalla ciertos datos que me interesen y para ello utilizo la instruccin WHERE variable=condicin;

Ejemplo:proc print data=alumnos; where nombre=Juan';run;

proc print data=Alumnos_dima;var nombre;where substr(nombre,1,1)='L';run;29SAS dispone de un gran nmero de funciones para el tratamiento de variables carcter, de todas ellas destacan:

Funcin DescripcinCOMPRESS: Elimina un carcter especficoCOUNT Cuenta el nmero de veces que aparece un carcterINDEX Busca una cadena de caracteresLEFT Alinea a la izquierdaLENGTH Obtiene la longitud de una variable carcterLOWCASE Pone en minsculasMISSING Indica si la variable es missingQUOTE Pone comillasREVERSE Reversa de carcterRIGHT Alinea a la derechaSCAN Busca una cadena de caracteres dentro de otra cadenaSUBSTR Extrae partes de una cadenaTRANWRD Reemplaza o extrae dentro de una cadenaTRIMN Elimina espacios en blanco innecesariosUPCASE Pone en maysculasVARIABLES ALFANUMRICASCuando los nombres de la variable alfanumrica sean mayor de 8 caracteres y tengan espacios en blanco, el input (input por columnas) se pone de la siguiente forma:Input nombre $ 1-12 edad 13-17;

Al colocar los datos de cada variable enseguida de la instruccin cards; stos deben estar en las columnas sealadas para cada uno de ellos en el input (en este ejemplo desde la primera letra de las variedades hasta antes del inicio de la segunda variable deben haber 12 caracteres (inia-76 1.60)31DIFERENTES MANERAS DE HACER EL INPUTSi perdimos un dato, hay que colocar un punto en el lugar donde debera ir el dato perdido, separado al menos por un espacio en blanco de los datos anterior y posterior.

EJEMPLO:data ejemplo;input trat blo n p d ren;cards;1 1 90 20 . 2475Run;32Cuando se trabaja con variables alfanumricas con la forma de input por columnas se pondra por ejemplo:

Input nombre $ 1-10 edad 13-14;

Cuando se quiere utilizar un input con formato, en el cual se indica primero la columna en la que comienza una variable y despus se especifica el largo de la variable, se sigue el siguiente ejemplo:

Input @1 nombre $18. @21 edad 2.0 @24 fechanac $6. @31 prof $ 12.;

DIFERENTES MANERAS DE HACER EL INPUT33 input @1 nombre $14. @15 edad 3.0 @17 peso 3.1;

El smbolo @ seala el nmero del espacio o columna donde se inicia la lectura de la variable, as por ejemplo @21 indica que los valores de la variable (en este caso la edad) se inician en la columna 21.

El formato $ x. indica que se trata de una variable alfanumrica y que el valor ms largo de la variable consta de x caracteres. No te el punto (.) que sigue a x. El valor de x siempre debe terminar en un punto. Por ejemplo $ 18. indica que el nombre ms largo tiene 18 caracteres.

Qu significa 2.0? ste es un formato del tipo x.y, que indica que se trata de una variable numrica con x cifras y y decimales. En este caso la variable edad consta de dos cifras y cero decimales

DIFERENTES MANERAS DE HACER EL INPUT34EJEMPLO INPUT CON FORMATOdata alumnos_p; input @1 nombre $14. @15 edad 2.0 @18 peso 3.1; cards;jose perez 23 431maria lopez 33 440luis heredia 44 567run;35ALGUNOS FORMATOS QUE EL SAS RECONOCE PARA EL INGRESO DE INFORMACIN

36Puede ocurrir que se tengan muy pocas variables y muchas observaciones, por lo que al momento de escribir los datos, es conveniente colocar varias observaciones en un rengln para ahorrar lneas.Para lograr esto, el input se puede hacer como sigue:Input a b c @@;Al colocar los smbolos @@ al final indica que se tienen las variables a, b y c, y que posteriormente en el lugar donde irn los datos (despus de la instruccin cards;), los tres primeros (separados naturalmente al menos por un espacio entre cada uno) correspondern a los valores o datos de la primera observacin de las variables a, b y c, despus los segundos tres datos, en el mismo rengln, correspondern nuevamente a los valores de la segunda observacin de las variables a, b y , y as sucesivamente hasta colocar todas las observaciones que quedan en los 80 espacios de ese rengln.

DIFERENTES MANERAS DE HACER EL INPUT37EJEMPLO INPUT CON FORMATOData a;Input a b;Cards;1223 101121 91010 89290 79101 7.38920 8.59020 9.8Run;data alumnos_cal;input matricula calificacion@@;cards;1223 10 1121 9 1010 8 9290 7 9101 7.3 8920 8.5 9020 9.8run;

38Ejercicio 1Nombre ProfesorCategoraPRODUCTIVIDADLIZAOLA ROBERTOPIAS477SANCHEZ ANGELPIAS476VALVERDE GUSTAVOPIT474MARTINEZ MIGUELPIT471CHULIM NESTOR PIA470GARAY OSCARPIA464ESQUEDA MARIAPIT449MARTINEZ REYNAPIT446PEREZ ELISEOPIAS420Productividad Acadmica profesores del C.P.Mostrar la siguiente informacinNombre y productividad de los acadmicos con categora de Profesor Investigador Titular (PIT).

Nombre y categora de los acadmicos con una productividad mayor a 465 puntos.

Nombre de los acadmicos con categora Profesor Investigador Asociado (PIAS) con una productividad mayor a 470.

Programa en SASdata productividad;input @1 nombre $17. @18 categoria $5. @23 productividad 3.0;cards;LIZAOLA ROBERTO PIAS 477SANCHEZ ANGEL PIAS 476VALVERDE GUSTAVO PIT 474MARTINEZ MIGUEL PIT 471CHULIM NESTOR PIA 470GARAY OSCAR PIA 464ESQUEDA MARIA PIT 449MARTINEZ REYNA PIT 446PEREZ ELISEO PIAS 420run;

Programa en SASproc print data=productividad;var nombre productividad;where categoria='PIT';run;

proc print data=productividad;var nombre categoria productividad;where productividad>470;run;

proc print data=productividad;var nombre categoria productividad;where productividad>470 and categoria='PIAS';run;

PROC SORTSe utiliza para la ordenacin de conjuntos de datos.

PROC SORT DATA= OUT=; BY [DESCENDING] ;

data alumnos_dima;input matricula nombre $ edad altura;cards;1 juan 23 1.802 maria 22 1.503 luis 25 1.204 omar 32 1.65run;proc sort data=alumnos_dima;by altura;

proc print data=alumnos_dima;run;

PROC PRINTPROC PRINT DATA= ;TITLE ;VAR ;BY ;SUM ;WHERE ;RUN;data alumnos_zootecnia;input nombre $ sexo $ calificacion;cards;juan m10jose m 8luis m 9.5maria f 9.5lupe f 8run;

44Mostrar la siguiente informacinNombre y calificacin de los alumnos con calificacin mayor que 8.

Nombre y calificacin de los alumnos con calificacin mayor que 8 clasificados por sexo.

Suma de las calificacin de los alumno clasificados por sexo.

Suma de la productividad de los Profesor Investigador Titular con una productividad mayor a 446.

Suma de la productividad por categora de todos los acadmicos de nuestra muestra de datos.

Programa en SASproc print data=productividad;title 'PIAS CON PRODUCTIVIDAD MAYOR A 477';var nombre categoria productividad;by categoria;sum productividad;where productividad>470;run;proc print data=alumnos_zootecnia;title 'ALUMNOS DE ZOOTECNIA';var nombre calificacion;by sexo;sum calificacion;where calificacion>8;run;DATA _NULL_La sentencia DATA _NULL_ no genera conjunto de datos SAS, _NULL_ es un tipo especial de dataset que no genera un fichero fsico; con la instruccin PUT= nuestro paso data escribir en la ventana log el valor de las variables que deseamos ver.FUNCIONES QUE EL SAS PROVEE PARA LA EJECUCIN DE ALGUNAS TRANSFORMACIONES

48Programa en SASdata _null_;a=25;b=101;c=a+b;put 'Valor de a=' a;put 'Valor de b=' b;put 'Valor de c=' c ;m= abs(-3.44);n= int(-3.44);put 'Valor abosulto de m= 'm ;put n;x=sqrt(2);put x;run;data ejemplo;retain sx 0;input x y;yy=y*y;xx=x**2;sx = sx + x;drop yy;if _N_=5 then put 'yy=' yy;cards;1 22 43 65 86 10run;N_ permite hacer un procedimiento (Ej: put) cuando el programa termina de leer todos los datos, toma valor 1 cuando la primera observacin es entrada e incrementa uno para cada subsecuente observacin.Sintaxis: Retain Retiene el valor de una iteracinEjercicio 2Crear el dataset(datos) con la siguiente informacin.xySeno(x)Coseno(x)Seno(y)Coseno(y)LogaritmoN(x)LogaritmoN(y)12345678910111213141516Imprimir en pantalla de log el promedio de x y.