Professional Documents
Culture Documents
IN
O
R
T
DA
DE
O
J
E AS
N
MA O S
AL AND
N IZ
I IL
C
C UT
U
D
S
O
T
DIRECTORIO INSTITUCIONAL
SECRETARA DE AGRICULTURA, GANADERA, DESARROLLO RURAL, PESCA Y
ALIMENTACIN
Ing. Alberto Crdenas Jimnez
Secretario
Ing. Francisco Lpez Tostado
Subsecretario de Agricultura
Ing. Antonio Ruiz Garca
Subsecretario de Desarrollo Rural
Lic. Jeffrey Max Jones Jones
Subsecretario de Fomento a los Agronegocios
INSTITUTO NACIONAL DE INVESTIGACIONES FORESTALES, AGRCOLAS Y
PECUARIAS
Dr. Pedro Brajcich Gallegos
Director General
Dr. Enrique Astengo Lpez
Coordinador de Planeacin y Desarrollo
Dr. Salvador Fernndez Rivera
Coordinador de Investigacin, Innovacin y Vinculacin
Lic. Marcial A. Garca Morteo
Coordinador de Administracin y Sistemas
CENTRO DE INVESTIGACIN REGIONAL GOLFO CENTRO
Dr. Vicente E. Vega Murillo
Director Regional
Dr. Sergio Uribe Gmez
Director de Investigacin
Dr. Francisco Javier Ibarra Prez
Director de Planeacin y Desarrollo
C.P. Velia Martnez Castillo
Directora de Administracin
Dr. Ral Ros Snchez
Director de Coordinacin y Vinculacin en Puebla
M.C. Oscar G. Castaeda Martnez
Director de Coordinacin y Vinculacin en Tabasco
Introduccin al manejo de datos, utilizando SAS
CONTENIDO
Pg.
CAPTULO 1
Por qu SAS? .............................................................................................1
CAPTULO 2
Las ventanas de SAS ...................................................................................3
CAPTULO 3
Archivos permanentes en SAS ................................................................. 11
CAPTULO 4
Archivos temporales en SAS .................................................................... 15
Para hacer comentarios.................................................................................. 16
Enhanced Editor ............................................................................................. 16
Creacin de una base de datos en SAS ...................................................... 17
Mensajes del Log ......................................................................................... 18
Cambiando de archivos temporales a permanentes....................................... 20
Ver la base de datos ....................................................................................... 21
Guardar los cdigos........................................................................................ 22
Tamao de las bases de datos guardadas en SAS ..................................... 24
Acceso a los cdigos guardados ....................................................................24
CAPTULO 5
Los programas de SAS.............................................................................. 25
Acerca de los comentarios................................................................... 25
Recomendacin ................................................................................... 27
Procedimientos y rdenes (o instrucciones) de SAS......................... 28
Manejo de los resultados ..................................................................... 28
CAPTULO 6
La base de datos........................................................................................... 31
1. Importar bases de datos de Excel ................................................. 32
2. Exportar bases de datos de SAS hacia Excel ............................ 39
3. Otras formar de importar o exportar (sin Wizard)............................. 43
CAPTULO 7
Ms acerca de lectura de datos por SAS ................................................. 47
1. Creando un archivo de datos con la orden DATA............................ 47
2. Leyendo datos con sealador de columna ...................................... 49
3. Leyendo datos escritos de corrido ................................................... 50
4. Leyendo datos de archivos ASCII.................................................... 51
Infile........................................................................................... 52
Filename ................................................................................... 52
5. Para saltar informacin que SAS no debe leer.............................. 53
CAPTULO 8.
Algunos procedimientos de SAS.............................................................. 55
1. Para ordenar los datos................................................................................ 55
Proc sort .............................................................................................. 55
Para eliminar datos repetidos .............................................................. 56
2. Para verificar la calidad de los datos y/o resumir informacin
de los datos crudos..................................................................................... 56
Proc freq .............................................................................................. 56
Proc means.......................................................................................... 58
3. Para manejar la base de datos ................................................................... 61
Drop ..................................................................................................... 61
Keep .................................................................................................... 62
Rename ............................................................................................... 62
4. Para crear variables por medio de operaciones matemticas .................... 63
5. Para unir dos o ms bases de datos .......................................................... 65
Set ....................................................................................................... 65
Merge................................................................................................... 66
Otro uso de Merge ............................................................................... 68
CAPTULO 9
Ms de manejo de datos en SAS .............................................................. 71
Los condicionantes ......................................................................................... 71
Ifthen ................................................................................................ 71
Else ifthen......................................................................................... 73
Ifand/or.then.................................................................................. 74
Algunas funciones de SAS........................................................................... 74
Fechas ................................................................................................. 74
Mes, ao .............................................................................................. 75
Mximos, mnimos y sumatorias.......................................................... 76
Sumatoria ............................................................................................ 76
Introduccin al manejo de datos, utilizando SAS
Mximos .............................................................................................. 76
Mnimos ............................................................................................... 77
Recomendaciones finales............................................................................... 77
CAPTULO 10.
Algunos cdigos de estadstica.................................................................. 79
Proc glm ......................................................................................................... 80
Proc mixed...................................................................................................... 84
Proc univariate ............................................................................................... 84
Prog reg.......................................................................................................... 89
Para seleccionar el modelo de regresin mltiple ms adecuado.................. 92
Proc corr ......................................................................................................... 93
Proc glm para anlisis de varianza multivariado............................................. 94
Otras ordenes bsicas.................................................................................... 95
Where en proc means ....................................................................... 95
Proc boxplot ......................................................................................... 95
Prueba de Chi-cuadrada en proc freq.................................................. 95
CAPTULO 11
Algunos cdigos de diseos experimentales............................................ 97
1. Diseo completamente al azar ................................................................... 97
2. Comparacin de tratamientos..................................................................... 98
3. Comparaciones mltiples ........................................................................... 99
4. Diseo de bloques completos al azar ......................................................... 99
5. Diseo de bloques al azar generalizados ................................................. 100
6. Diseo de bloques incompletos, incluyendo el diseo de bloques
completos al azar con observaciones perdidas ........................................ 100
7. Diseo de cuadro latino ............................................................................ 101
8. Diseo de cuadro latino con repeticiones ................................................. 101
9. Diseo de parcelas divididas (ejemplos) .................................................. 101
APNDICE ................................................................................................... 104
LITERATURA CITADA ................................................................................ 105
RECONOCIMIENTO
CRDITOS EDITORIALES
DIRECTORIO INSTITUCIONAL
NDICE DE FIGURAS
Pg.
Figura 1
Figura 2
Figura 3
Figura 4
Figura 5
Figura 6
Figura 7
Figura 8
Figura 9
Figura 10
Figura 11
Figura 12
Figura 13
36
Figura 14
36
Figura 15
37
Figura 16
Figura 17
Figura 18
35
39
Figura 19
40
Figura 20
41
Figura 21
Figura 22
42
Figura 23
45
Figura 24
68
NDICE DE CUADROS
Pg.
Cuadro 1
Cuadro 2
Cuadro 3
Cuadro 4
89
94
CAPTULO 1
Por qu SAS?
En sus inicios, el programa SAS llevaba ese nombre por ser las siglas de
Statistical Analysis System (Sistema de Anlisis Estadsticos). Sin embargo,
actualmente SAS incluye toda una familia de programas, por ejemplo, para anlisis
financieros y para manejo de datos sociales (entre muchos otros), y SAS/STAT es
slo uno ms entre sus mltiples funciones, de manera que el nombre SAS es
ahora slo un nombre, sin que tenga un significado especfico. El presente manual se
refiere a algunas funciones bsicas de SAS/STAT, con mayor probabilidad de
utilizarse en investigacin en las ciencias agropecuarias.
sino se trata de que los lectores se familiaricen con el ambiente Windows de SAS, y
de que tengan a la mano un listado de cdigos bsicos y sencillos en lenguaje SAS
para manejar cualquier cantidad de datos, ya sea para anlisis directo en SAS, o
para uso posterior de algn otro paquete de anlisis especializado, por ejemplo, el
ASREML (programa que se utiliza en anlisis de gentica cuantitativa). Los
programas especializados suelen estar escritos en lenguaje Fortran, C, o C++. Sin
embargo, tpicamente, la capacidad de combinar o crear variables a partir de otras
variables, o la capacidad de editar los datos, es decir, el manejo de los datos, es muy
limitado en estos programas. Por esta razn, es conveniente preparar los datos
primero usando un programa ms amigable, como SAS.
Con frecuencia, a las rdenes que se escriben para que SAS ejecute un
procedimiento, se les llama programas o cdigos (la palabra que se utilizar con
ms frecuencia ser cdigo). Hay varias maneras de obtener un mismo resultado
usando SAS, pero en general, se mencionar una sola forma, para que sirva ms
como una gua que como una fuente de confusin.
Esta obra dista mucho de ser un manual completo de SAS. Existen literalmente
cientos de libros, y an ms sitios en Internet dedicados al uso de este poderoso
programa. Sin embargo, esperamos que el contenido del escrito sea de utilidad a
todos los lectores.
CAPTULO 2
Una vez adquirida la licencia, usted tendr, ya sea un enlace para bajar el programa,
o un nmero variable de CDs que contienen el programa de SAS, dependiendo de
la versin, y del tipo de licencia que haya adquirido. La ms bsica, generalmente, es
suficiente para trabajar en todo lo relacionado con la investigacin en ciencias
biolgicas, agropecuarias y forestales. Uno de los CDs vendr marcado como el
apropiado para iniciar la instalacin. Slo hay que introducirlo en la PC y seguir los
pasos que se vayan indicando.
El SAS es un programa grande que requiere al menos de Windows 98, con mnimo
de 10 GB de capacidad en disco duro y RAM de 512, de manera que en cualquier
computadora actualmente puede instalarse el programa SAS. Se debe tomar en
cuenta que la instalacin puede tardar varios minutos. Una de las opciones de
instalacin es el idioma en que se desea trabajar en SAS. Sin embargo, sin
importar que idioma se elija, todas las instrucciones que se escriban para SAS y la
mayora de la informacin que se obtiene de la ventana del Log deben y van a estar
en ingls. Por lo anterior, y tambin para traducir ciertas opciones, el contenido de
esta obra har referencia a la versin en ingls del programa.
Al abrir SAS, se pueden ver varias ventanas y un men (Figura 1). Las ventanas
ms importantes son la del contenido, la del Editor (o Enhanced Editor), la del
Log, y la del Output; esta ltima, detrs de las dos anteriores. En algunas
versiones, al abrir SAS aparece una ventana que ofrece tutoras en el uso del
programa, en diversos niveles de complejidad a escoger. El usuario puede decidir
abrir la ventana y aprovechar estas lecciones o cerrar la ventana e iniciar
directamente con el trabajo en SAS. El ambiente de SAS, es decir, todo el
conjunto de ventanas, puede encontrarse ya maximizado, o estar minimizado, al
momento de iniciar la sesin. En la esquina extremo derecha se encuentran los
smbolos para cerrar, minimizar y para maximizar el programa. Si se oprime el de
cerrar, el programa pregunta: Are you sure you want to end the SAS session?
(Est usted seguro de que quiere cerrar la sesin de SAS?). Si se oprime Yes
(s), entonces, le preguntar, en ingls, si quiere guardar los cambios, y despus de
guardarlos, o de que se le indique que no se desea guardar nada, slo entonces, se
cierra el programa.
Figura 1. Ambiente de trabajo de SAS tal como aparece al abrir el programa (despus
de oprimir el icono con el logotipo de SAS). La ventana de Log es en donde se
encuentran las letras azules. La ventana del Editor se encuentra debajo de la del
Log, y la ventana del Output est detrs de las dos anteriores.
El usuario tambin puede crear sus propios archiveros, utilizando los nombres
que desee. En libraries aparecern todos los archiveros que el usuario haya
creado para trabajar en SAS, adems de SASUSER y WORK.
b) La ventana del Log (ver Figura 1), que se encuentra arriba al abrir SAS, tiene
informacin del copyright, de a quien pertenece la licencia de ese programa en
particular, y detalles del uso de los recursos de la computadora en el programa
SAS.
Una vez trabajando, en Log van a aparecer los reportes del resultado del
programa o cdigo, incluyendo una copia del cdigo usado, el nmero de
observaciones ledas, los errores, si los hubiese, algunas veces con sus
correspondientes sugerencias de correccin, y el tiempo utilizado en la ejecucin
del programa. En esta ventana tambin aparece la advertencia cuando la licencia
de SAS est a punto de vencerse, y alerta de que despus de la expiracin, no se
podr utilizar el programa.
c) La ventana del Editor (es la ventana de abajo), es donde se escriben los cdigos
y programas o se dan las instrucciones que se requiere sean ejecutadas. En las
ltimas versiones de SAS , que es a las que se refiere esta obra, el que se abre
por default es el Enhanced Editor, que es una versin mejorada del Editor. Es
muy til porque las instrucciones o cdigos que se escriben van en colores
Puede haber ms de una ventana del Editor abierta, cada una conteniendo
diferentes cdigos. Para hacer que un cdigo especfico se ejecute, primero de
marca o sombrea el cdigo utilizando el botn izquierdo del ratn, y luego
oprimiendo el icono de orden de correr (el icono de Run, como veremos). Si por
alguna razn, se cerrase(n) la(s) ventana(s) del Editor (o del Enhanced Editor),
y se deseara reabrirla(s), hay que hacer clic en View (una opcin en el men), y
seleccionar Enhanced Editor.
d) La ventana del Output se encuentra por default detrs de las de Log y del
Editor mientras no haya resultados que mostrar. Cuando se corre un programa
que genere resultados al Output, este se coloca por delante del Log y del
Editor automticamente. En esta ventana aparecen los resultados que se pueden
imprimir. Esto no significa que de esta ventana sea posible imprimir
directamente, sino que son resultados que aparecen, es decir, son impresos en
forma virtual. Hay muchos resultados que no necesariamente aparecen en el
Output, aunque muchos de ellos pueden solicitarse mediante un cdigo. La
manera que se sugiere aqu para imprimir los resultados a papel, es copiar el
contenido del Output, pegarlo en Word, efectuar las ediciones necesarias; por
ejemplo, cambiar color y tipo de letra, o cualquier otra edicin que se desee, y
finalmente, imprimir.
En ambiente Windows, las ventanas horizontales (es decir, todas, excepto la del
ambiente de SAS) pueden arrastrarse y moverse con el Mouse, y todas las
ventanas pueden abrirse o cerrarse, pero antes de cerrar la ltima ventana de
SAS, el programa pregunta si quieres cerrar la sesin. Al menos una ventana
debe permanecer abierta para continuar con el programa SAS en ejecucin.
Del men principal, que es una lista de ocho palabras (File, Edit, View, Tools,
Run, Solutions, Window, Help) que se encuentra horizontalmente al extremo
izquierdo de la pantalla de SAS, quiero resaltar el uso de View. Si se oprime
View, se abre el men con el cual se pueden acceder todas las ventanas de
SAS, como se observa en la Figura 2, y si se selecciona Contents only, aparece
el contenido de Libraries, los archiveros.
Figura 2. Men que se abre al oprimir la opcin View del men principal.
Debajo del men hay una ventana para escribir instrucciones y junto a sta, dibujos
de enlace; para elegir las instrucciones se oprime la tecla enter sobre ellos. Por lo
tanto, existen tres formas de dar rdenes a SAS: Por medio de mens
desplegables (File, Edit, View, Tools, etc), por medio de los dibujos (lo
recomendado aqu), y escribiendo instrucciones en la ventanita de comando (no
recomendable, pues es fcil equivocarse). Tambin se puede oprimir el botn
derecho del ratn y elegir entre alguna de las opciones que aparezcan.
Escribir instrucciones u oprimir los dibujos da los mismos resultados, por lo que se
recomienda utilizar los dibujos. Los dibujos del men son prcticamente iguales a los
de los programas de Microsoft Word Excel, etc. Incluyen, entre otros:
1. Documento nuevo
2. Abrir archivos
3. Guardar archivos
3. Imprimir
4. Copiar
5. Cortar
6. Pegar
Todos stos son muy tiles para guardar o modificar cdigos, pero no se van a
discutir aqu, pues es obvio su uso, como en el editor de textos Word.
Exclusivos de SAS son los comandos de ejecutar o correr programa (Run), crear
un archivo nuevo, ver la ventana del Explorer, y ayuda de SAS. El usuario deber
explorar poco a poco todas estas opciones. Slo algunas de ellas, las ms
esenciales, se tratarn aqu.
10
CAPTULO 3
Para tener un lugar especfico donde guardar las bases de datos permanentes para
utilizarse en SAS, se utiliza el comando de creacin de archiveros, cuyo dibujo de
enlace es un archivero amarillo con una estrella azul arriba. Al oprimir este enlace, se
abre una ventana o pantalla como la que se muestra en la Figura 3.
Figura 3. Ventana que se abre al oprimir el icono de creacin de archivero nuevo (el
dibujo del archivero amarillo con una estrella azul).
11
contenga.
Abrir SAS y oprimir el dibujo de creacin de archivero nuevo (el dibujo del
recin creado o el flder designado para contener los datos para trabajar en
SAS.
3.
4.
desde el inicio).
5.
12
7.
Oprimir Ok
8.
13
14
CAPTULO 4
En este captulo vamos a ver como crear una base de datos, en este caso, temporal
(la opcin b de la lista anterior). Una ligera modificacin al cdigo, indicndole a
SAS donde guardar los datos (un archivero diferente de WORK), da la orden de
convertir la base de datos a permanente.
Los archiveros que se crean como se describi en el captulo anterior, sirven para
guardar las bases de datos en forma permanente (aunque tanto los archivos como
los archiveros se pueden borrar en el momento que se desee, con Delete). Sin
embargo, con frecuencia la base de datos es pequea y no se requiere guardarla en
SAS. Es posible que ya se encuentre en algn otro programa, en Excel, por
ejemplo, y que no se desee tener la informacin repetida, o que sea preciso
actualizar la informacin peridicamente, lo cual quiz resulte ms fcil hacer en
Excel que en SAS. En SAS no se puede modificar directamente la informacin
en las bases de datos; es decir, si en una celda se encuentra el nmero 3.001, por
ejemplo, y el nmero est mal, no se puede llegar a ese nmero en particular con el
cursor, ni mediante algn otro artificio, y modificarlo directamente. Se puede, sin
15
Si en el men (la lnea que contiene las palabras: File, Edit, View, Tools, Run, etc.)
se oprime View y despus se selecciona Contents only, aparece a la izquierda (si
no es que ya estaba ah mismo, pues por default al abrir SAS aparece esta ventana
vertical) el dibujo de un archivero amarillo (Libraries). Si se oprime este enlace
aparecen los archiveros que se tienen. SAS incluye dos archiveros: SASUSER y
WORK. Nos ocuparemos nicamente del archivero WORK. En WORK se
guardan todas las bases de datos a las cuales no se les haya indicado en que
archivero van. Mientras est en proceso la sesin de SAS , las bases de datos
estn disponibles y pueden ser vistas al abrir el archivero WORK (slo se da clic en
WORK, y despus en la base de datos que se desee ver).
o comentario;
Enhanced Editor
Cuando empezamos a escribir el cdigo en el Enhanced Editor (que, como ya se
dijo, aqu llamaremos simplemente Editor) lo primero que notamos es que las letras
tienen colores: Los comandos de SAS, como DATA, INPUT, CARDS y RUN estn
en azul. De hecho, DATA y RUN, estn en azul obscuro, e INPUT y CARDS, en azul
16
claro. Las palabras o datos que nosotros utilizamos, estn en negro. El comentario
(lo escrito dentro de ;) est en verde. Si aparece alguna palabra en rojo, significa
que hay algn problema y que el programa no va a correr.
Para este ejemplo se va a crear una base de datos. Se debe escribir todo lo que
sigue exactamente como aparece aqu, en la ventana del Editor. O se puede
escribir en Word y despus copiar a la ventana del Editor.
16
18
17
12
17
21
15
16
17
;
tamao 1= chico, tamao 2 = mediano, tamao 3 = grande;
Run;
17
Para que el cdigo corra, hay que oprimir el icono de ejecutar programa (Run),
representado por el dibujo de la silueta de una persona corriendo.
18
83
84 CARDS;
0.00 seconds
cpu time
0.01 seconds
94 ;
95
96
97 Run;
Se observa que:
1)
19
2)
3)
SAS estn en azul buena noticia, porque si algo sale en rojo, significa que el
cdigo estaba mal escrito o que por alguna razn, no se pudo correr el
programa, o corri mal;
4)
16
18
etc.
Para ver la base de datos o archivo (Figura 6), primero se abre la ventana de
Libraries (si la ventana del SAS Environment se encuentra cerrada, el proceso es
oprimir View, y despus Contents Only, para que se abra Libraries) y se hace
Introduccin al manejo de datos, utilizando SAS
20
21
Siempre es aconsejable ver como qued la base de datos para verificar que result
lo que queramos que sucediera. Los programas de cmputo, al menos hasta el
momento de escribir esto, hacen siempre lo que se les indica, que a veces no es lo
que el programador quera.
Figura 7. Los datos abiertos del archivo Ejemplo que se encuentra dentro del
archivero WORK.
22
Figura 8. Men que se abre para guardar un cdigo antes de cerrar la sesin de SAS.
Figura 9. Pantalla para dar nombre al cdigo de SAS que se desee guardar.
Introduccin al manejo de datos, utilizando SAS
23
En todo caso, antes de cerrar SAS, sale un cuadro con la pregunta (en ingls, para
las versiones que nos ocupan) equivalente a: Desea guardar lo que est escrito en
el Editor? Si respondemos que s (seleccionando y haciendo clic en YES), van
saliendo las opciones anteriormente descritas, y que se muestran para el ejemplo de
las ranas en las Figuras 8 y 9.
24
CAPTULO 5
Por lo anterior, cuando un programa no corra bien, primero hay que verificar que:
1. No se haya olvidado una ;
2. Todas las palabras estn correctamente escritas, y
3. El orden de las palabras en los programas cdigos.
INSTRUCCIN,
Introduccin al manejo de datos, utilizando SAS
25
b)
variable, o como nombre de archivo, o como palabra alguna que sea para uso
del programador,
c)
16
18
17
12
17
21
15
16
17
;
tamao 1= chico, tamao 2 = mediano; tamao 3 = grande;
Run;
2.
3.
incluye la palabra CARDS y todos los datos hasta el final. Se trata de una sola
26
Para algunos casos de manejo o de anlisis de datos, quiz sea preferible utilizar
cdigos ya hechos con anterioridad, como una receta de cocina, que NO se debe
variar, excepto para cambiar nombres de variables, de base de datos y de archivos.
Recomendacin
Cuando se manejan datos, especialmente cuando las bases de datos tienen muchas
observaciones y/o variables (miles o millones), a veces es necesario o aconsejable,
inventar una pequea base de datos, correrla con el cdigo que est a prueba,
verificar que el cdigo est haciendo lo que se desea, y luego cambiar el nombre de
la base de datos con la que verdaderamente se quiere trabajar. Tambin se
recomienda, antes de manejar los datos, hacer una copia de la base de datos
original, y luego manejar la copia, para que si hubiese algn problema, se tenga un
respaldo.
PROC nombre
run;
27
Un nuevo paso o una nueva etapa del programa tambin puede indicarse al iniciar la
siguiente lnea con DATA o PROC, pero el fin final, debe tener run; o run; quit;
Si los cdigos son muy largos, pueden escribirse primero en Word y luego cortar y
pegar en el Editor de SAS. Sin embargo, es preferible hacer cdigos sencillos y
cortos, y primero correrlos en archivos de prueba, que sirvan exclusivamente para
verificar que los programas realicen lo que se espera que hagan. Una vez que el
programa corri con el archivo de prueba, se modifica la parte del cdigo que se
refiere a que archivo debe leer SAS, y se le escriben los comentarios apropiados.
28
Existen varias opciones que controlan como saldrn los resultados de SAS al
Output. Slo unas cuantas son las que se utilizan en forma rutinaria para cambiar
los defaults. Para ver la lista completa de opciones disponibles, se escribe:
proc options;
Run;
Para utilizar una opcin, escriba la palabra OPTIONS como parte del cdigo de SAS,
i.e.
Las opciones se pueden poner en la primera lnea que se escriba, pero puede estar
en cualquier lugar del cdigo, excepto en medio del mismo. Si se escribe otra opcin
despus, se cancelan las primeras.
29
30
CAPTULO 6
La base de datos
Los archivos de datos en SAS tienen una estructura bien definida: las variables se
encuentran en columnas (de hecho, a veces se les llama columnas), mientras que
las observaciones estn en hileras, en forma parecida a las tablas de Excel, como
se vio en el ejemplo de las ranas. Sin embargo, se pueden inter convertir las hileras
en columnas con proc transpose (que no se va a tratar en esta obra). En caso de
que se requiriese efectuar este tipo de manipulacin de los datos, se recomienda
utilizar Excel. Esto puede hacerse exportando los datos de SAS hacia Excel
(tambin utilizando la funcin del Wizard, como se ver despus para la
importacin de datos de Excel hacia SAS), efectuar el manejo que se desee en
los datos, y reimportando a SAS, o bien, manipulando los datos originales desde el
principio en Excel. Sin embargo, en este caso (y siempre), se debe cuidar que
todas las celdas de Excel tengan el formato correcto; es decir, que no vaya a haber
un formato de texto donde debera haber un formato de fecha, o un formato de
moneda donde deba ser de nmero, etc. Cuando esto sucede, parte de la
informacin se va a transferir a SAS en forma incorrecta o simplemente no se va a
transferir, ya sea toda, o parte de la tabla de Excel.
31
Como ejemplo, vamos a importar una base de datos desde Excel (un archivo de un
experimento de maz), y luego vamos a exportar una base de datos de vacas
lecheras hacia Excel.
32
7. Guardar los cambios en Excel con otro nombre (porque este archivo
tiene menos informacin que el original), para utilizar este archivo para
SAS. Hay que cerrar el archivo antes de poder importarlo a SAS.
Algunos programadores prefieren guardar sus bases de datos ya listas para ser
exportadas a SAS, en formato CSV (comma delimited). Todas las instrucciones que
siguen son vlidas para esta opcin, nicamente se elige, en lugar de Excel, CSV,
y todo lo dems se hace exactamente igual.
Figura 10. Archivo de datos de Excel editado para ser exportado a SAS.
33
b)
e)
f)
g)
34
Figura 11. Utilizacin del Wizard para importar datos hacia SAS.
Figura 12. Seleccin del programa de donde se van a importar datos a SAS.
Introduccin al manejo de datos, utilizando SAS
35
36
37
Figura 17. Mensaje que aparece en el Log despus de una importacin exitosa.
38
Por ejemplo. Supongamos que tenemos una pequea base de datos en SAS y que
tenemos una base de datos ms grande en Excel. Para unir esas bases de datos
podemos:
a)
b)
c)
39
Aparece una nueva ventana; ah, debajo de Choose the source SAS dataset
(seleccione la base de datos de origen), en donde dice Library: seleccionar EJS, y
en donde dice: Member, seleccione el archivo llamado Exportar, y luego haga clic
en Next:
40
Dejamos los defaults, que incluyen exportar a Excel y damos clic en Next.
Entonces se abre la ventana que sirve para buscar la carpeta de Excel (haciendo
clic en Browse) en donde vamos a guardar la base de datos que queremos
exportar. En este caso, la carpeta se llama Curso de SAS. Al archivo le nombramos
Masdatos, y finalmente, damos clic en Guardar.
41
Figura 21. Buscando el lugar donde se van a guardar los datos a exportar.
42
Para que SAS sepa que hacer con una base de datos hay que especificar: que tiene
que ir a donde, o que tiene que venir de donde.
Se puede utilizar la orden PUT para exportar o INPUT para importar. En estos casos
es muy importante saber si los datos van a ser exclusivamente numricos o si van a
contener otros caracteres.
Los datos numricos contienen slo nmeros. Los nmeros pueden ser positivos o
negativos, y contener decimales. Se pueden realizar operaciones matemticas con
ellos, como sumas, restas, y todas las dems.
Por ejemplo, la identificacin de animales (ID) puede contener slo nmeros: 00001,
y a veces nmeros y letras: 0001ENE_04, si se desea informar, por ejemplo, que es
el primer animal o animal 1, y que naci en enero de 2004, o puede ser:
01HO_Ene05, para informar que fue el primer nacimiento, que fue Holstein, y que
naci en enero de 2005. Por supuesto, esto es un ejemplo, pues la identificacin de
43
SAS lee primero algunas observaciones de cada columna para decidir el formato
de toda la columna. Si no se especifica en el cdigo que la variable a importar es de
carcter, y no aparece un carcter en las primeras lneas de datos, SAS va a
suponer que es numrica, pues es el default, y todas las observaciones que
contengan algo ms que nmeros, se van a considerar datos perdidos. Para pedirle
a SAS que una variable sea considerada de tipo carcter, al nombre de la variable, le
debe seguir un signo $.
Por ejemplo: DATA Ej_2;
INPUT ID $ peso;
Datalines;
123 459
12478 670
Ho1 500
Ho2
564
Ho_02 605
HoCAN_1
532
;
Run;
Como puede verse, no importa que las columnas de datos de las variables (ID y
peso) estn alineadas, y ntese que en las observaciones y hasta en el cdigo, se
pueden entremezclar letras y nmeros, y maysculas y minsculas. Sin embargo, es
mejor guardar el mayor orden posible, pues adems de que cuando hay errores de
programacin y un programa no corre, es ms fcil encontrar los errores (o bugs,
44
Es importante sealar que los nombres de las variables deben contener menos de 32
carcteres (en la versin 7 y anteriores, slo se permita un mximo de ocho). Cada
nombre debe empezar con una letra o con un guin bajo. Los nombres de variables
tambin pueden incluir nmeros. Aqu vamos a restringirnos a nombres de ocho
45
46
CAPTULO 7
En este captulo se resumen las maneras de hacer que SAS lea los datos que se
necesiten trabajar. Los mtodos ms usuales ya han sido cubiertos. Este captulo es
opcional. Puede pasarse al Captulo 8 sin ningn inconveniente.
1. Creando un archivo de datos con la orden DATA
Con esta opcin, los datos crudos (antes del anlisis) son parte del cdigo de SAS y
se escriben en el Editor.
El siguiente programa o cdigo con la orden DATA crea un archivo de datos llamado
ENCUESTA con 10 observaciones y siete variables. Las variables se llaman ID,
SEXO, EDAD, ING, R1, R2, y R3. Los datos corresponden a una encuesta en donde
ING significa los ingresos anuales totales, en miles, R1 a R3 son la calificacin con
que los individuos (ID) evaluaron a tres productos orgnicos que piensan lanzarse al
mercado. La palabra INPUT define a las variables que deben leerse en cada lnea de
datos. La palabra DATALINES le indica a SAS que el proceso de la palabra DATA ha
sido completado y que la siguiente lnea contiene datos reales. Ntese que las lneas
que contienen los datos no terminan en punto y coma. En lugar de la palabra
DATALINES se puede utilizar la palabra CARDS. Las dos son equivalentes. El punto
y coma antes de PROC PRINT es opcional, pero define mejor cuales son los datos.
Proc print se utiliza para que los datos aparezcan en el Output, de tal manera que
no sea necesario abrirlos desde su archivo para verlos, y para que puedan copiarse
a Word e imprimirse.
options nocenter;
DATA encuesta;
INPUT id sexo $ edad ing r1 r2 r3 ;
DATALINES;
1 F 35 17 7 2 2
Introduccin al manejo de datos, utilizando SAS
47
17 M 50 14 5 5
33 F 45 6 7 2
49 M 24 14 7 5
65 F 52 9 4 7
81 M 44 11 7 7
2
F 34 17 6 5
18 M 40 14 7 5
34 F 47 6 6 5
50 M 35 17 5 7
;
PROC PRINT; RUN;
3
7
7
7
7
3
2
6
5
ID
1
17
33
49
65
81
2
18
34
50
SEXO
F
M
F
M
F
M
F
M
F
M
EDAD
35
50
45
24
52
44
34
40
47
35
ING
17
14
6
14
9
11
17
14
6
17
R1
7
5
7
7
4
7
6
7
6
5
R2
2
5
2
5
7
7
5
5
5
7
R3
2
3
7
7
7
7
3
2
6
5
La variable SEXO en la orden INPUT est seguida por un signo de dlar ($) para
indicar que esta variable es de carcter. Si no se especifica la instruccin, SAS
supone que las variables son numricas. Si entonces encuentra un carcter (una
letra o smbolo), le va a asignar un valor perdido (.) a esa observacin. Por ejemplo,
si se quita el signo de dlar, como se ve en el siguiente cdigo:
DATA encuesta;
INPUT id sexo edad ing r1 r2 r3 ;
DATALINES;
1 F 35 17 7 2 2
17 M 50 14 5 5 3
33 F 45 6 7 2 7
49 M 24 14 7 5 7
65 F 52 9 4 7 7
81 M 44 11 7 7 7
2
F 34 17 6 5 3
18 M 40 14 7 5 2
34 F 47 6 6 5 6
50 M 35 17 5 7 5
;
PROC PRINT; RUN;
48
ID
1
17
33
49
65
81
2
18
34
50
SEXO
.
.
.
.
.
.
.
.
.
.
EDAD
35
50
45
24
52
44
34
40
47
35
ING
17
14
6
14
9
11
17
14
6
17
R1
7
5
7
7
4
7
6
7
6
5
R2
2
5
2
5
7
7
5
5
5
7
R3
2
3
7
7
7
7
3
2
6
5
49
NOMBRE
EDAD
Oliver Schabenberger
Juan E. Dominguez
33
37
CIUDAD
Lansing
New York
ESTADO
MI
NY
OBS
NOMBRE
EDAD
CIUDAD
ESTADO
Oliver Schabenberger
33
Lansing
MI
Juan E. Domnguez
37
New
York
Para la segunda observacin, SAS encuentra los carcteres 'New' y los asigna a la
variable CIUDAD suponiendo que el espacio entre 'New' y 'York' delimita a las dos
variables. Los carcteres 'York' son asignados a la siguiente variable de la orden
INPUT, que es ESTADO.
50
12.4
11.3
1.4
2.1
19.4
;
run;
12.4
11.3
2.1
19.4
1.4
;
run;
Por el smbolo @@, SAS lee cada lnea de datos y va llenando las variables X, Y, y
Z en turno, y continuar llenando las variables hasta que llegue al final de la lnea.
Sin el smbolo @@, se habra pasado a la siguiente lnea tan pronto la ltima
variable estuviese llena, dejando fuera datos, como ocurri en el ejemplo anterior
cuando ley New y dej fuera York, y evit que el valor NY siquiera fuese ledo.
51
Tambin es posible que los archivos que se deban analizar con SAS, de origen
vengan en archivos ASCII. Con frecuencia, trabajar con ese tipo de archivos es ms
conveniente que con archivos de hojas de clculo, porque los archivos ASCII ahorran
espacio, y a veces son preferibles cuando las variables contienen muchas
observaciones.
Hay dos formas para hacer que SAS lea un archivo ASCII utilizando la orden DATA:
una es usando slo la palabra INFILE y otra es con la palabra FILENAME ms la
palabra infile.
Infile
Utilice la palabra infile antes de la palabra INPUT. La estructura de la orden
INPUT no cambia. Es exactamente como si se fuera a copiar el contenido del archivo
ASCII dentro de la orden DATA despus de la palabra DATALINES, slo que ahora
debe especificar en la orden INFILE cual archivo se debe leer, y donde se encuentra.
En el ejemplo de cdigo que sigue, el archivo de llama Do.txt y se encuentra en el
drive D, dentro de una serie de flderes. Por ejemplo:
data readasc;
infile 'D:\investig\Toxina\Data2007\DO.txt';
input lugar rancho muestra DO;
run;
Filename
FILENAME asocia un archivo con un nombre corto dentro de un programa de SAS.
La palabra FILENAME debe aparecer afuera de la orden DATA. Por ejemplo:
filename toxic 'D:\investig\Toxina\Data2007\DO.txt';
data readasc;
infile toxic;
52
Si las columnas del archivo de ASCII no estn delimitadas por espacios (por ejemplo,
los archivos de MSExcel que se guardan como archivos de texto *.prn estn
delimitados por comas), se pueden aadir las opciones de delimitantes dentro de la
declaracin de INFILE. Por ejemplo, para especificar que los delimitantes entre
variables son comas, se escribe: delimiter = ,; tal como se ve a continuacin:
filename toxic 'D:\investig\Toxina\Data2007\DO.txt';
data readasc;
infile toxic delimiter=',';
input lugar rancho muestra DO;
run;
. Por ejemplo:
53
54
CAPTULO 8
A partir de este captulo, se dar una especie de lista de cdigos. Todos estos deben
de escribirse en la ventana del Editor, y hacer referencia a los archivos que se
deseen manejar o analizar.
Proc sort
Ordena los datos por la variable o las variables que seleccionemos.
El cdigo bsico es:
proc sort data=nombre; *nombre es el nombre del archivo;
by id; *by id le indica a SAS por cual variable debe de ordenar los datos, en este
caso, por la variable llamada id;
*o puede ser, por ejemplo:by id raza sexo etc;
Run;
55
Proc freq
Con Proc freq se obtienen frecuencias de las variables de inters. De esta manera,
se puede verificar que se tengan suficientes datos para un anlisis estadstico
confiable, adems de que se pueden ver algunas tendencias generales de los datos.
El cdigo de proc freq, que saca las frecuencias de las variables que se especifiquen,
a la ventana del Output, es:
proc freq data= nombre;
tables variable1;
*puede ser variable1*variable2*variablen;
run;
56
Por ejemplo, se est trabajando con una base de datos de cabras (gotas.work1 es el
nombre del archivo), y se va a estudiar que tan estacionales son las cabras en esa
poblacin. Para tener una idea, queremos obtener las frecuencias por mes de
nacimiento (mo_brth es el nombre de esa variable). El cdigo que se usa es el
siguiente:
proc freq data=goats.work1;
options nodate;
table mo_brth; run;
CumulativeCumulative
mo_brthFrequencyPercentFrequencyPercent
1198556.83198556.83
25948520.457934027.27
38928630.6916862657.97
46178321.2423040979.21
53069910.5526110889.76
6122574.2127336593.97
742161.4527758195.42
813250.4627890695.88
913610.4728026796.35
1020200.6928228797.04
1133551.1528564298.19
1252541.81290896100.00
FrequencyMissing=26002
57
Si el archivo va a ser temporal, slo hay que poner un nombre; si se prefiere que se
guarde el archivo en forma permanente en SAS, entonces hay que indicar el
nombre del archivero en donde debe guardarse. Si, por ejemplo, el archivero se
llama: datos y el archivo queremos que se llame results, la orden sera:
out=datos.results.
Proc means
Con proc means es fcil constatar que los datos con que estamos trabajando estn
dentro de rangos razonables y que SAS est tomando los datos con el formato
correcto. Por ejemplo, si se han importado datos de Excel, en ocasiones una
columna que debera tener formato de nmeros, es importada con formato de texto
(o viceversa), y aun cuando fsicamente se pueda ver la tabla en SAS con nmeros,
es posible que tenga otro formato, y en este caso, de los datos de esa columna, no
se sacarn promedios.
58
Por ejemplo, supongamos que se tiene un archivo (temporal, pues no lleva el nombre
del archivero) llamado j, del cual queremos obtener informacin acerca de plantas
susceptibles a ser atacadas por plagas. Por razones de nuestra investigacin,
necesitamos que la informacin sea por especie de planta atacada y tipo de insecto
plaga. Se requieren estadstica descriptiva con los promedios, desviaciones
estndares y mximos, y mnimos de la cantidad de insectos (en cualquier estado de
evolucin) encontrados en un muestreo y de la edad de las plantas atacadas.
Sin embargo, para poder utilizar esta opcin de proc means, es necesario ordenar
los datos por las variables de las cuales pretendemos obtener informacin, de la
siguiente manera:
proc sort data=j;
by especie insecto; run;
59
Ntese que existen ms variables (est la edad, que en este caso no interesa) que
las que se utilizan en la orden de proc means.
El output sera:
TheSASSystem1
especie=cedroinsecto=grillo
TheMEANSProcedure
AnalysisVariable:cantidad
NMeanStdDevMinimumMaximum
43.25000003.304037907.0000000
especie=cedroinsecto=palomill
AnalysisVariable:cantidad
NMeanStdDevMinimumMaximum
48.75000005.85235002.000000015.0000000
especie=robleinsecto=grillo
AnalysisVariable:cantidad
NMeanStdDevMinimumMaximum
43.50000001.29099442.00000005.0000000
especie=robleinsecto=palomill
AnalysisVariable:cantidad
NMeanStdDevMinimumMaximum
45.25000002.21735583.00000008.00000004
60
Este se puede copiar, editar (para que se vea una tabla ms presentable) y guardar
en un archivo de Word, por ejemplo.
El siguiente cdigo ordena que los datos, una vez que hayan sido ordenados por ID,
se guarden en un archivo llamado lactone, y no permite que haya observaciones
repetidas por la variable ID.
PROC SORT DATA=lact OUT=lactone NODUPKEY;
by ID;
run;
61
Keep
Si es ms fcil instruir a SAS acerca de las variables que deban quedarse, en vez
de decirle cuales debe eliminar, entonces se puede utilizar la orden keep,
exactamente igual que drop:
Data new (keep=variable1 variable2..variablen);
set data old;
run;
Por ejemplo, de una base de datos grande, llamada vacas.hol que tiene muchas
variables y todas las lactancias de las vacas, queremos hacer un anlisis nicamente
de la primera lactancia, y en el nuevo archivo queremos incluir slo las variables id
(la identificacin) breed (la raza) herdid (el hato) y lactno (el nmero de lactancia).
Esta nueva base de datos queremos que se llame new. Entonces escribimos en el
Editor:
data vacas.new (keep=id breed herdid lactno);
set vacas.hol;
if lactno NE 1 then delete; *esta orden le indica a SAS que solo queremos las
primeras lactancias;
run;
Rename
Esta orden le cambia el nombre a una variable. Por ejemplo: en el archivo new
(recuerde: nada de acentos ni espacios ni smbolos en ningn nombre que se utilice
en SAS), queremos renombrar algunas variables. Queremos que sus nombres
ahora estn en espaol en vez de en ingls. Especficamente queremos que en vez
de breed, la variable se llame raza, en lugar de milk, que sea leche, y en vez
de fat, sea grasa. Por precaucin, primero copiamos la base de datos a otro
archivo, al que llamamos new2. La orden requiere que se escriba:
rename=(variable_antigua=variable_nueva).
En consecuencia, sto es lo que escribimos:
Introduccin al manejo de datos, utilizando SAS
62
Recuerde!
Tenga cuidado en la escritura del cdigo, o mejor haga un archivo temporal, y si los
resultados son los esperados, entonces . y slo entonces, haga un archivo
permanente llamado, por ejemplo, analisis.new (o como realmente sea). Otro
ejemplo:
data prueba (rename=(zea_maiz = maiz));
set analisis.pastos;
run;
Por ejemplo, se tiene el dato del promedio semanal de produccin de leche de unas
vacas, y en vez de eso, se desea obtener el total de leche producida en esa semana.
Como para sacar el promedio, lo que se hizo fue sumar las producciones de la
semana y despus, dividir entre siete, se tiene que hacer la operacin contraria, es
decir, multiplicar el promedio por siete. Esa operacin se hace de la siguiente manera
en el archivo vacas.leche:
Data vacas.leche;
set vacas.leche;
LechAcum = promsem*7;
Run;
63
promsem
23.5
27.2
25.9
pas = 52
ciudad = 12
apiario = 01
colmena = 25
cosecha = 01
Lote
pais
52
ciudad
12
apiario
01
colmena
25
cosecha
01
64
En el primer caso, se utiliza la orden set, parecido a como ya se vio antes para
hacer una base de datos igual a otra, pero con otro nombre (recuerdas? es: data
new; set old; run;).
Set
Por ejemplo, se tienen tres bases de datos para un estudio de eficiencia econmica
de la utilizacin de tres tipos contrastantes de plantaciones forrajeras: una de maz,
otra de sorgo, y otra de una leguminosa. Las bases se encuentran en el archivero
Efic, y para su anlisis, se desea unirlas. Lo ms lgico es unir sus hileras, es decir,
que quede la informacin de maz bajo (o encima ) de la de sorgo y de la
leguminosa.
65
Merge
Esta orden sirve para unir dos o ms bases de datos para formar un solo archivo que
contenga las variables de las bases de datos originales, es decir, se unen o
combinan columnas, de manera que la nueva base de datos tenga ms variables.
En muchos casos se necesita unir columnas de una serie de bases de datos. Esto
ocurre, por ejemplo, cuando se estn efectuando estudios con mediciones repetidas,
y cuyas bases de datos se van colectando en forma separada por fecha. Si cada
individuo que se mide, digamos.. cada mes, o cada ao, etc. tiene un nmero de
identificacin, lo ms lgico es que las bases de datos de las diferentes fechas se
vayan uniendo por el nmero de identificacin.
Por ejemplo, en un estudio de crecimiento de rboles, stos fueron medidos una vez
cada seis meses durante dos aos (cuatro medidas). Los datos de cada da de
medicin fueron guardados en archivos permanentes llamados, respectivamente:
medida.primera, medida.segunda, medida.tercera, y medida.cuarta. Ahora es preciso
analizar las cuatro bases de datos juntas, para lo cual, se va a formar el archivo
todos_datos:
data todos_datos; *as como est, va a formar un archivo temporal;
merge medida.primera medida.segunda medida.tercera medida.cuarta;
by id_arbol;
run;
Sin embargo, primero es necesario que cada una de las bases de datos del archivero
medida (primera segunda tercera y cuarta) se ordenen por la variable a unir, que es
id_arbol. Primero hay que escribir, para cada una de las bases de datos:
Proc sort data = medida.primera;
By ID;
Run;
*este cdigo se va a repetir para cada uno de los cuatro archivos;
66
Posteriormente se procede a unir los datos con merge. Es muy importante, que las
medidas en cada archivo de datos, de cada una de las cuatro fechas del ejemplo,
tengan nombres diferentes. Por ejemplo, si se midieron: altura, grosor a la base del
tronco, y dimetro de la copa, los archivos deben identificarse con algo que los
distinga entre mediciones, como:
Altura1 grosor1 diam1 para el archivo de la primera medicin;
Altura2 grosor2 diam2 para el archivo de la segunda medicin;
Altura3 grosor3 diam3 para el archivo de la tercera, y
Altura4 grosor4 diam4 para el archivo de la cuarta y ltima medicin.
Si se dejan exactamente los mismos nombres en los cuatro archivos, al final se van a
tener los datos nicamente del ltimo archivo aadido cuando los datos
correspondan a la misma observacin, como se ve en la Figura 24.
67
68
Otras opciones de las condiciones de unin (and, or) podran ser, por ejemplo:
If a and NOT b, es decir, que estn en la base de datos a, pero no en la b;
If b and NOT a, es decir, que estn en la base de datos b, pero no en la a;
if a, es decir, la condicin es que todos los datos del archivo a estn presentes;
if a or b, que estn los datos de a de b. Con frecuencia no es necesario utilizar
or porque es el default.
69
70
CAPTULO 9
Los condicionantes
Ifthen
Esta es una orden que sirve para indicarle a SAS que, si se cumple una condicin
en los datos de alguna variable, tiene que actuar de tal o cual forma. Algunos
ejemplos de acciones, podran ser: If..algothen:
Delete (entonces borra)
Output (entonces expnlo, mustralo)
(alguna operacin matemtica, crear una variable, o lo que se necesite).
Por ejemplo, supongamos que estamos editando una base de datos de borregos
australianos. La base de datos es demasiado grande como para verificar si todos y
cada uno de los animales tiene identificacin. Podemos en este caso utilizar la orden
ifthen. Como siempre, primero creamos un archivo de prueba, y si todo sale bien,
entonces, y slo entonces, haremos un archivo permanente:
Data=id_only; *nuestro archivo de prueba;
set austr.allsheep; *el archivo original;
if id = '.' then delete; *si no tiene id, entonces borra;
run;
o, alternativamente:
Data=id_only; *nuestro archivo de prueba;
set austr.allsheep; *el archivo original;
if id NE '.' then output; *si tiene id, puesto que NO es Igual a . (NE
es NOT EQUAL TO) entonces muestra los datos;
run;
71
Por ejemplo, queremos que de un archivo que tiene datos de vacas Holstein y
Jersey, slo nos quedemos con vacas Jersey, que estn codificadas como "JE:
data jerseys;
set milk.allcows;
if breed='JE' then output; *Conviene resaltar la orden con espacio;
*Notese que JE tiene comillas, porque no es un numero sino una variable de
caracter;
run;
De esta manera tendremos una base de datos (primero temporal, en jerseys, que
despus podremos convertir a permanente) con los datos nicamente de las vacas
Jersey.
Ahora supongamos que para algunas vacas no tenemos el dato Edad al parto, que
vamos a codificar como EP, pero tenemos los das en lactancia, la fecha de
nacimiento y la fecha en la que se realiz la evaluacin de las vacas, es decir, la
fecha del muestreo
Los das en lactancia son los que han transcurrido desde el parto, lgicamente. La
edad de la vaca es, naturalmente, la fecha de muestro menos la fecha de nacimiento.
En consecuencia:
Edad de la vaca = fecha de muestro- fecha de nacimiento
A su vez, la edad al parto (EP) va a ser:
EP = Edad de la vaca das en lactancia
72
Un cdigo que podemos utilizar para las vacas que no tienen la edad al parto, es:
Data edad;
Set expto.jerseys;
If EP = . then EP = (FechMues FechNac) - Diaslac;
Run;
Else if then
Cuando se tienen varias condiciones que realizar sobre una misma variables, es
preferible utilizar la opcin else if.then, en lugar de nicamente if..then.
Por ejemplo. Supongamos que esta vez queremos aadir la variable season
(estacin del ao) a unos datos que vamos a analizar. Tenemos los meses de
nacimiento de las vacas (variable llamada MONTH). La variable MONTH est
codificada con nmeros, que corresponden a 1 es enero, 2 es febrero, , 12 es
diciembre.
Con los datos anteriores queremos formar la variable season, de tal manera que el
nmero 1 sea primavera, el 2, verano, el 3, otoo, y el 4, invierno.
NOTA: Es ms sencillo manejar datos cuando todas, o casi todas las variables sean
numricas o estn codificadas con nmeros, en lugar de utilizar nombres.
73
Ifand/or..then
Realiza acciones slo si se cumple una condicin de y (ambas condiciones deben
cumplirse) o de o (una u otra condicin deben cumplirse). Ms de dos condiciones
pueden incluirse en este caso de ifand/orthen.
Por ejemplo, suponemos que queremos una base de datos con todos los borregos
australianos que tengan tanto la identificacin de su padre (SIRE), como la de su
madre (DAM). Un ejemplo de cdigo, sera:
Data= pedigree;
Set austr.allsheep;
If SIRE NE . and DAM NE . then output;
Run;
74
Mes, ao. En algunas ocasiones se tienen las fechas, pero es conveniente extraerle
el ao y/o el mes. Existen muchas causas por las que esto puede ser importante en
las ciencias agropecuarias. Por ejemplo, el componente hato - ao de nacimiento estacin de nacimiento (llamado herd-year-season o hys en ingls) es casi
indispensable como parte de los modelos de evaluaciones genticas en ganado,
porque es lo que da el componente de contemporaneidad. Para poder crear esta
variable de hys, con frecuencia se tienen que formar las estaciones a partir de los
meses, y extraer los aos a partir de las fechas de nacimiento del ganado.
Y listo!
75
Sumatoria. Por ejemplo, imaginemos que tenemos los datos de pesos de leche
producida por unas borregas y quisiramos conocer el total de la leche producida en
la lactancia.
Los datos de los pesos de la leche se llaman leche1 leche2leche n . Slo para
ilustracin, voy a utilizar slo dos das de la lactancia, a los que voy a llamar b y c.
Un cdigo podra ser:
data look;
input id b c;
cards;
1 2 5
2 2 .
3 2 8
;
run;
data check;
set look;
add = SUM(of b,c);
run;
Id
1
2
3
b
2
2
2
C
5
.
8
add
7
2
10
Mximos. Ahora supongamos que hay hembras que se tienen que inseminar
muchas veces para quedar preadas. El archivo es una coleccin de fechas
peridicas de muestreo y en algunas fechas, el nmero de veces que se reporta que
la hembra ha sido inseminada, aumenta, porque no qued cargada la vez anterior.
Una vez que la hembra queda cargada, se reporta cuantas veces fue inseminada y la
76
Insem1
2
.
2
Insem2
3
1
3
Insem3
.
2
4
Insem4
.
.
.
data ej;
set ejemplo;
maxIns = MAX(of insem1, insem2, insem3, insem4);
run;
Recomendaciones finales
1.
77
3.
para importar los datos a SAS, verifique que las columnas de Excel tengan el
formato correcto. A veces, cambiar el nombre de las variables por otras mas
cortas sirve. Otras veces, cambiar el formato de guardado del archivo es til,
como guardar como archivo CSV, en vez de archivo de trabajo de Excel.
4.
archivo de respaldo y despus haz tus anlisis. Ya una vez que tengas el
archivo como lo desees, puedes cambiarle el nombre al archivo de trabajo para
que substituya a la versin respaldada que tenas antes de las modificaciones.
Tambin puedes crear un archivo de prueba, con unos cuantos datos ficticios,
slo para verificar que SAS est haciendo lo que tu/usted espera(s) que haga.
5.
Hay casi una infinidad de sitios web que te pueden ayudar a resolver
dudas de cmo efectuar algn trabajo en SAS. Sin embargo, la mayora estn
en ingls, pero no hay que desanimarse. Si no sabe ingls, busque de todas
maneras, pues los sitios en espaol son cada vez ms comunes.
6.
despus importar a SAS, pero ya con prctica, editar en SAS se vuelve muy
conveniente.
78
CAPTULO 10
SAS ofrece una variedad enorme de procedimientos estadsticos para ser utilizada
en todo tipo de investigacin aplicada, como la que generalmente se requiere en las
ciencias agropecuarias. La gama cubre desde anlisis categrico, multivariado, de
modelos de riesgo o sobrevivencia, regresin, anlisis de modelos mixtos, pruebas
no paramtricas, apoyo para simulaciones, y mucho ms. Constantemente se hacen
mejoras a los programas.
Sin embargo, los modelos ms importantes en investigacin agropecuaria, siguen
siendo los de la familia de los modelos lineales, que en SAS se cubren
principalmente con los procedimientos GLM, REG y MIXED. En este documento se
presenta una muy breve y somera descripcin de los cdigos bsicos ms sencillos
utilizando esos tres procedimientos; adems se incluyen ejemplos de cdigos de los
procedimientos Univariate, Corr, y GLM para anlisis multivariado.
Cada uno de los procedimientos tiene un respaldo terico muy extenso, y su buen
uso requiere un profundo entendimiento de las bases y de los mbitos de aplicacin
correctos. Las bases son generales, y son: aleatorizacin, control del error (por
homogenizacin y/o bloqueo) y multiplicidad de repeticiones. Estos u otros conceptos
no van a ser explicados aqu; simplemente se mencionan para tratar de hacer
conciencia de la responsabilidad que le compete al usuario de un programa de
anlisis estadstico. Tampoco se van a explicar los reportes (el contenido del
Output) que se obtienen cuando se ofrece la presentacin de alguna corrida de un
ejemplo de cdigo. La razn es porque slo aquel que ya sabe que es lo que
significan, podr apreciar su valor y es quien deber/va a usarlos de todas maneras.
79
Si se quisiera seguir el (muchas veces tortuoso) camino del autodidacta, hay muchos
libros dedicados especficamente a los procedimientos de SAS arriba mencionados;
por ejemplo: SAS for mixed models (2006) por Littell et al., Survival anlisis using
SAS. A practical guide (1995) por Allison, Categorical data analysis using the SAS
system (2006) por Stokes et al., SAS system for regression (2006) por Freund and
Littell, Applied multivariate statistics with SAS software (2006) por SAS publishing, y,
el clsico, SAS for linear models (2002) por Littell et al.
Los resultados de los anlisis siguientes salen en la ventana del Output. Se
recomienda copiar y pegar en Word, para su ulterior inspeccin.
Proc glm
Es para modelos lineales generales, incluyendo ANOVA, regresin y anlisis de
covarianza. Maneja correctamente los datos desbalanceados en el ANOVA (los
datos estn desbalanceados cuando los niveles de las variables independientes
tienen tamaos desiguales).
La orden CLASS se usa para designar las variables que son factores en el modelo.
Las variables en CLASS pueden ser numricas o clasificatorias. Si no se incluye
CLASS, PROC GLM supondr que las variables independientes designadas en
MODEL son numricas y calcular un modelo de regresin en lugar de un modelo de
ANOVA.
La orden MODEL tiene la forma: variable dependiente = factor(es), que son sinnimo
de variables clasificatorias, de variables independientes, o de efectos.
La orden MEANS pide comparaciones mltiples. Despus de la palabra MEANS se
deben enlistar todas las variables clasificatorias para las que se deseen
comparaciones mltiples.
80
Nota: En lugar de MEANS, se debe utilizar LSMEANS cuando los datos estn
desbalanceados. Por esta razn, si un estudio no proviene de un diseo, sino que es
observacional (por ejemplo), ser necesario siempre usar LSMEANS.
Un cdigo de glm debe contener el nombre del archivo a analizar (DATA), el modelo
con el que se va a analizar (MODEL) y la orden de ejecutar el programa (RUN). El
cdigo de glm puede contener otras instrucciones, por ejemplo:
Proc GLM Data = nombre_del_archivo opciones;
CLASS variable(s);
*Si no se incluyen variables clasificatorias, es decir, si no se incluye la palabra
CLASS, el modelo ser de regresin;
*Si alguna variable aparece en MODEL como efecto, pero no se incluy entre las
variables clasificatorias, esa variable se tomar como covariable;
MODEL variable(s)_dependiente(s) = efecto(s);
* Despus de MODEL pueden ir opciones acerca de que se desea ver en el Output.
Lo ms comn es pedir lsmeans y stderr (least squares means y standard error) en
estudios observacionales;
* Si se escribe ms de una variable dependiente, pero el formato de cdigo no
corresponde a Multivariado, entonces SAS hace tantos anlisis univariados como
variables dependientes se escriban. Esto es til para no tener que repetir el mismo
cdigo para diferentes variables dependientes;
Run;
Una vez ms, PROC GLM para datos balanceados, en forma general:
PROC GLM data = base_de_datos;
CLASS variables;
MODEL variable dependiente = variables independientes;
MEANS efectos /opciones; *Ver Cuadro 1;
ESTIMATE efectos/ opciones;
RUN; *En lugar de Estimate se puede pedir CONTRAST;
81
NOTA: En las ordenes ESTIMATE Y CONTRAST, SAS supone que los niveles de
las variables clasificatorias estn en orden alfabtico (lo que se consigue si se
ordenan con proc sort), sin importar el orden en que realmente estn los datos!
Si los niveles son numricos, va a suponer que estn en orden ascendente.
Ejemplo: Un experimento con un factor:
Data ejemplo;
input
factor $;
cards;
3 bajo
4 bajo
4 bajo
5 bajo
6 medio
7 medio
4 medio
3 alto
3 alto
6 alto
;
run;
proc glm;
class factor;
model y = factor;
estimate 1 0 -1;
run;
Supongamos que se requiere que se estime la diferencia "bajo alto (y suponemos
que el orden debe ser como se escribi en SAS: bajo, medio y alto, para 1, 0 y -1,
respectivamente), pero lo que realmente sucede es que SAS estima la diferencia
82
"alto medio (porque en orden alfabtico tenemos alto, bajo, medio, y en este
caso, alto corresponde al 1, bajo al 0, y medio al -1).
Para obtener resultados correctos de ESTIMATE, se deben tener las variables en
orden alfabtico (es decir, pedir un PROC SORT por la variable a analizar), o
considerar este detalle al momento de escribir el cdigo.
Algunas de las opciones que se pueden usar con MEANS (Recuerde: MEANS
efectos/opciones) estn en el Cuadro 1:
Descripcin
alpha = p
bon
duncan
scheffe
snk
lsd
tukey
Var3
Var3*Var4;
random Var1(Var2);
lsmeans Var3*Var4/stderr;
run;
83
Proc mixed
Se usa en modelos lineales mixtos. El cdigo es:
PROC MIXED DATA = nombre.archivo;
class Var1 Var2 Var3;
model Dep_Var = Var1 Var2 Var1*Var2/opciones;
random Var3;
run;
* Por supuesto, las opciones son... opcionales! ;
* Antes de Run, generalmente se piden los least squares means (Lsmeans) de
los efectos de inters;
* Ntese que la variable aleatoria (la que se indica con RANDOM) no est
dentro del modelo. Esto es una diferencia con proc glm;
Proc univariate
Para estadsticas descriptivas: rango y percentiles, con o sin grfica. El cdigo es:
PROC UNIVARIATE DATA = nombre;
var variable_de_inters; *Si no se escribe esto, se dan resultados para cada
una de las variables;
OPCIONES;
run;
Para ilustrar el tipo de datos que se obtienen con un proc univariate simple, vamos a
pedir esta opcin para la siguiente base de datos:
DATA ST4;
INPUT LGT OTHER PCM
DATALINES;
350
400
1516.8
850
800
2266.6
1200 1100 2189.2
1700 1600 2773.4
2900 2800 3535.8
450
500
1402.4
600
600
1673.0
900
800
2146.6
1600 1500 2243.2
2000 1800 3128.0
400
400
1543.2
750
650
1847.8
PDM ACTUAL;
5.0
8.0
9.0
13.0
18.5
5.0
7.5
9.0
10.5
18.0
4.5
7.0
656
1382
1666
2392
3901
293
1019
1746
2216
3829
536
1382
84
1500
2000
3000
500
800
1400
1850
2800
400
850
1100
1800
2800
400
750
1200
1800
3200
;
run;
1500
1800
2800
500
800
1500
1700
2500
350
500
900
1800
2500
350
700
1200
2000
3100
2304.6
2762.8
3664.6
1447.0
2123.6
2453.0
2883.4
2862.6
1214.8
1707.4
2272.6
2576.8
3178.2
1414.8
1762.8
1864.8
2578.2
3341.0
9.5
12.0
16.5
3.5
8.0
11.0
10.5
16.0
5.5
7.0
9.0
11.0
16.5
5.0
6.5
7.0
11.5
17.0
1706
3522
3506
1019
1382
2069
3386
5402
616
979
2029
2699
4192
656
1342
1746
3382
4552
TheUNIVARIATEProcedure
Variable:LGT
Moments
N30SumWeights30
Mean1395SumObservations41850
StdDeviation871.71551Variance759887.931
Skewness0.68529167Kurtosis0.6015925
UncorrectedSS80417500CorrectedSS22036750
CoeffVariation62.4885671StdErrorMean159.15275
BasicStatisticalMeasures
LocationVariability
Mean1395.000StdDeviation871.71551
Median1200.000Variance759888
Mode400.000Range2850
InterquartileRange1100
TestsforLocation:Mu0=0
TestStatisticpValue
Student'stt8.765164Pr>|t|<.0001
SignM15Pr>=|M|<.0001
SignedRankS232.5Pr>=|S|<.0001
Quantiles(Definition5)
QuantileEstimate
85
100%Max3200
99%3200
95%3000
90%2850
75%Q31850
50%Median1200
25%Q1750
10%400
5%400
1%350
0%Min350
TheUNIVARIATEProcedure
Variable:LGT
ExtremeObservations
LowestHighest
ValueObsValueObs
3501280020
40026280025
4002129005
40011300015
4506320030
TheUNIVARIATEProcedure
Variable:OTHER
Moments
N30SumWeights30
Mean1315SumObservations39450
StdDeviation826.307741Variance682784.483
Skewness0.65415863Kurtosis0.649187
UncorrectedSS71677500CorrectedSS19800750
CoeffVariation62.8370906StdErrorMean150.862463
para la variable OTHER y lo mismo para cada una de las otras tres.
Ahora, se pide lo mismo, pero slo para una de las variables, y con diagrama:
proc univariate plot data=ST4;
var actual;
histogram / normal;
run;
El resultado es el siguiente:
TheUNIVARIATEProcedure
Variable:ACTUAL
Moments
Introduccin al manejo de datos, utilizando SAS
86
N30SumWeights30
Mean2173.43333SumObservations65203
StdDeviation1358.44738Variance1845379.29
Skewness0.65598565Kurtosis0.4957413
UncorrectedSS195230373CorrectedSS53515999.4
CoeffVariation62.5023717StdErrorMean248.017425
BasicStatisticalMeasures
LocationVariability
Mean2173.433StdDeviation1358
Median1746.000Variance1845379
Mode1382.000Range5109
InterquartileRange2367
TestsforLocation:Mu0=0
TestStatisticpValue
Student'stt8.763228Pr>|t|<.0001
SignM15Pr>=|M|<.0001
SignedRankS232.5Pr>=|S|<.0001
Quantiles(Definition5)
QuantileEstimate
100%Max5402.0
99%5402.0
95%4552.0
90%4046.5
75%Q33386.0
50%Median1746.0
25%Q11019.0
10%636.0
5%536.0
1%293.0
0%Min293.0
TheSASSystem
TheUNIVARIATEProcedure
Variable:ACTUAL
ExtremeObservations
LowestHighest
ValueObsValueObs
2936382910
5361139015
61621419225
65626455230
6561540220
StemLeaf#Boxplot
541|
461|
421|
355894|
3442++
271||
87
201244|+|
177774**
100034447++
056774|
031|
++++
MultiplyStem.Leafby10**+3
NormalProbabilityPlot
5250+*++++
|*+++
|*+++
|***+*+
|**++
2750+++*+
|++****
|++***
|*****
|***++*
250+*+++
+++++++++++
210+1+2
TheSASSystem
TheUNIVARIATEProcedure
FittedDistributionforACTUAL
ParametersforNormalDistribution
ParameterSymbolEstimate
MeanMu2173.433
StdDevSigma1358.447
GoodnessofFitTestsforNormalDistribution
TestStatisticpValue
KolmogorovSmirnovD0.15681903Pr>D0.059
CramervonMisesWSq0.13565870Pr>WSq0.036
AndersonDarlingASq0.75871079Pr>ASq0.044
QuantilesforNormalDistribution
Quantile
PercentObservedEstimated
1.0293.000986.7878
5.0536.00061.0138
10.0636.000432.5130
25.01019.0001257.1745
50.01746.0002173.4333
75.03386.0003089.6922
90.04046.5003914.3537
95.04552.0004407.8804
99.05402.0005333.6545
88
Descripcin
By
Freq
Histogram
ID
VAR
Proc reg
Anlisis de regresin (cuadrados mnimos ordinarios).
PROC REG usa la orden MODEL para definir el modelo terico de la relacin entre
las variables independientes y dependiente. Es posible tener ms de una orden de
MODEL (esto es til cuando se est tratando de encontrar el modelo que mejor se
ajusta a los datos).
Si usted necesita usar los valores que se hayan creado de la regresin (tales como
valores predichos, residuales, etc.) para otros propsitos adems de grficas, se
puede definir una nueva base de datos que contenga estos valores. Use el comando
OUTPUT OUT = nombre de la nueva base de datos.
Se pueden efectuar pruebas de F parciales para determinar si una o ms variables
son (simultneamente) cero usando la orden TEST. Si usted quiere realizar una
89
prueba, escriba: TEST var = 0; Si quiere realizar dos pruebas, escriba: TEST var1 =
0 var2 = 0, etc.
tambin;
Una lista de algunas de las opciones que se pueden solicitar para incluirse en una
grfica (que se pide con PLOT) se muestra en el Cuadro 3.
CUADRO
3.
ALGUNAS
OPCIONES
DE
LA
INSTRUCCIN
PLOT
EN
EL
PROCEDIMIENTO REG.
Opciones de Plot
Descripcin
Clm
Cli
alpha = p
influence
cp
90
Para presentar un ejemplo de la informacin que reporta SAS para Proc Reg,
utilizamos nuevamente la misteriosa base de datos que vimos para proc univariate.
Se va a correr nicamente un modelo de regresin lineal simple:
PROC REG data =ST4;
options nodate nocenter;
MODEL LGT = ACTUAL/P;
RUN; QUIT;
TheSASSystem3
TheREGProcedure
Model:MODEL1
DependentVariable:LGT
NumberofObservationsRead30
NumberofObservationsUsed30
AnalysisofVariance
SumofMean
SourceDFSquaresSquareFValuePr>F
Model11978632819786328246.18<.0001
Error28225042280372
CorrectedTotal2922036750
RootMSE283.49994RSquare0.8979
DependentMean1395.00000AdjRSq0.8942
CoeffVar20.32258
ParameterEstimates
ParameterStandard
VariableDFEstimateErrortValuePr>|t|
Intercept173.4393398.860820.740.4638
ACTUAL10.608050.0387515.69<.0001
TheSASSystem4
TheREGProcedure
Model:MODEL1
DependentVariable:LGT
OutputStatistics
DependentPredicted
ObsVariableValueResidual
1350.0000472.3215122.3215
2850.0000913.767363.7673
312001086113.5459
417001528172.1001
91
529002445454.5495
6450.0000251.5986198.4014
7600.0000693.044493.0444
8900.00001135235.0983
916001421179.1172
1020002402401.6708
11400.0000399.35520.6448
12750.0000913.7673163.7673
1315001111389.2238
1420002215214.9988
1530002205794.7301
16500.0000693.0444193.0444
17800.0000913.7673113.7673
181400133168.5009
1918502132282.3037
2028003358558.1367
21400.0000447.999447.9994
22850.0000668.7223181.2777
2311001307207.1770
241800171585.4281
2528002622177.6063
26400.0000472.321572.3215
27750.0000889.4452139.4452
281200113564.9017
2918002130329.8715
3032002841358.7076
SumofResiduals0
SumofSquaredResiduals2250422
PredictedResidualSS(PRESS)2769198
92
Alternativamente, con el cdigo de Proc Reg se puede solicitar alguna opcin que
ayude a seleccionar el modelo de regresin. Esto se hace aadiendo la opcin
SELECTION = option despus de MODEL, de la siguiente manera:
Proc Reg data = Nombre;
Model
Y = x1 x2 x3 ...xn/SELECTION = RSQUARE;
Run;
Desde luego, Y representa el nombre de la variable dependiente y las X1...Xn el
nombre de las variables independientes.
Otras opciones para SELECTION, adems de RSQUARE, son:
Stepwise
Forward
Backward
MAXR
Proc corr
Este procedimiento sirve para obtener una matriz de correlaciones entre las
variables. Este procedimiento calcula el coeficiente de correlacin de Pearson y
produce estadsticas descriptivas media, desviacin estndar, mnimos y mximos
para todas las variables de par en par, enlistadas en la orden VAR. Tambin
calcula un p-value para probar si la correlacin verdadera entre las dos variables es
cero. La orden WITH puede usarse para reducir el nmero de coeficientes de
correlacin que se computen; en este caso, los pares de variables provienen de
aquellas enlistadas en la orden VAR cruzados con las enlistadas en la orden WITH.
Ejemplo:
proc corr data= nombre;
var var1 var2 var3;
93
Descripcin
Cov
nosimple
noprob
94
Intparto leche ;
run;
Proc boxplot
Se usa proc boxplot para obtener grficos de bigotes. Por ejemplo, para la variable
leche por niveles de region. Esto requiere que los datos s ordenen por region con
proc sort.
95
96
CAPTULO 11
En este ltimo captulo se ofrece una lista de cdigos que normalmente se utilizan en
diseos experimentales (Hinkelmann y Kempthorne, 1994). El procedimiento a
utilizarse para este propsito es proc glm (tambin podran escribirse exactamente
igual para proc anova), con inicio y trmino del cdigo tal como se describi en el
Captulo 10, es decir, todos los cdigos empiezan con PROC GLM DATA =
NOMBRE;, y finalizan con RUN;. Para utilizar correctamente estos cdigos, como
en el captulo anterior, tambin se requiere de un slido respaldo en estadstica.
97
Con submuestreo:
Y ijk = + i + ij + ijk
donde ij representa el error experimental, y ijk representa el error observacional.
CLASS Trt Rep;
MODEL Y = Trt
TEST H = Trt
Rep(Trt);
E = Rep(Trt);
De esta manera se prueba Ho: Treat1 = Treat2 = = Treatn , y se especifica que las
unidades experimentales, es decir, las repeticiones se encuentran anidadas dentro
de los tratamientos, por lo que Rep(Trt) es una descripcin del componente error
experimental, ij .
2. Comparacin de tratamientos
Los cdigos son iguales tanto para CONTRAST, como para ESTIMATE. Se recuerda
que los coeficientes deben de sumar cero.
-1
-1;
-1;
1;
CONTRAST C2
Trt
CONTRAST C3
Trt
-1
98
-3
-1
3;
-1
-1
1;
-3
1;
-1
-1
Cuadrtica: 1
-2
3. Comparaciones mltiples
El cdigo es el mismo para cualquier prueba de comparacin. Por ejemplo, para
utilizar Duncan:
CLASS Trt;
MODEL Y=Trt;
MEANS Trt/DUNCAN;
99
Y ijk = + i + j + ijk
CLASS Bl Trt;
MODEL Y=Bl Trt;
MEANS Trt;
Con submuestreo:
Y ijk = + i + j + ij +
CLASS Bl
ijk
Trt;
MODEL Y = Bl Trt
TEST H = Trt
Bl*Trt;
E = Bl*Trt;
MEANS Trt;
Trt;
MODEL Y = Bl
Trt
BL*Trt;
Bl
Trt;
MODEL Y = Bl Trt;
LSMEANS Trt;
100
Hilera Columna
Trt;
MODEL
Trt;
Trt;
Trt;
SUJETO
MODEL
TEST H = A
B;
SUJETO(A) B A*B;
E = SUJETO (A);
101
CLASS
REP A
B;
MODEL
Y = REP
TEST
H=A
E = REP*A;
REP*A
A*B;
Sujeto Orden A B;
MODELO
A Sujeto(A)
TEST H = A
Orden
A*B
A*Orden,
E = Sujeto(A);
Hilera
TEST H = A
Columna
Hilera*Columna*A
A*B;
E = Hilera*Columna*A;
Rep
B;
MODEL
Y = Rep
TEST
H=A
E = Rep*A;
TEST
H=B
E = Rep*B;
Rep*A
Rep*B
A*B;
102
Se han hecho todos los esfuerzos porque la informacin y los cdigos sean correctos. Sin
embargo, es posible que exista algn error de imprenta o que las versiones de SAS
cambien en sus requerimientos de codificacin, por lo que no nos hacemos responsables de
que todos y cada uno de los cdigos funcionen.
Introduccin al manejo de datos, utilizando SAS
103
APNDICE
BASE DE DATOS DE UN EXPERIMENTO DE MAZ
EVALUACIN DE GENOTIPOS DE MAZ
Trat. Rep. IAF ALTP
No
No
i
cm
1
1 3.97 249
1
2 4.84 252
1
3 6.13 254
1
4 5.11 249
2
1
3.7 266
2
2 5.05 258
etc. etc. etc.
7
2 4.13 247
7
3 3.61 258
7
4 5.48 250
ALTM
cm
127
129
132
121
143
129
164
164
151
NoH
No
14
14
13
13
14
14
RTFF
kg/ha
53125
54167
56250
51042
55208
47917
RTFS
kg/ha
13252
15553
15251
12728
14441
10885
RFSH
kg/ha
2916
3083
3273
2784
2462
3272
44
43
38
59
57
59
RT:M
r
102
107
103
115
106
112
135
133
155
104
LITERATURA CITADA
Allison, P. D. 1995. Survival analysis using SAS. A practical guide. Cary, NC: SAS
Institute Inc.
Delwiche, L. D. and Slaughter, S. J. 2000. The little SAS book: A primer. 2nd Ed. Cary,
NC: SAS Institute Inc.
Freund, R. and Littell, R. C. 2000. SAS System for regression. 3rd Ed. New York,
Chichester, Brisbane, Toronto, Singapore. Wiley Series in Probability and
Statistics.
Khattree, R. and Naik, D. N. 1999. Applied multivariate statistics with SAS software.
2nd Ed. Cary, NC: SAS Institute Inc.
Littell, R., Milliken, G. A., Stroup, W. W. and Wolfinger, R. D. 2006. SAS for mixed
models. 2nd Ed. Cary, NC: SAS Institute Inc.
Littell, R., Stroup, W. W. and Freund, R. 2002. SAS for linear models. Cary, NC: SAS
Institute Inc.
Stokes, M. E., Davis, C. S. and Koch, G. E. 2001. Categorical data analysis using the
SAS system. Cary, NC: SAS Institute Inc.
105
RECONOCIMIENTOS
El material que se presenta ha sido recopilado en gran parte del sitio de internet del
Insituto SAS: www.sas.com, de la pgina (ya no disponible) del Dr. Oliver
Schabenberger* y de varios libros, entre los que destaca: The Little SAS Book, 2
edicin, por Lora D. Delwiche y Susan J. Slaughter, y en el uso y prctica del
programa SAS.
CRDITOS EDITORIALES
COORDINADOR DE PRODUCCIN
Vicente E. Vega Murillo
EDICIN
Valentn A. Esqueda Esquivel
FORMACIN
Claudia Perdomo Montes
REVISIN TCNICA
Isaac Meneses Mrquez
Rubn Loeza Limn
Bertha L. Rueda Maldonado
ngel Ros Utrera
Alfonso vila Durn
Julio C. Vinay Vadillo