Está en la página 1de 36

10/7/2018 SAS

Paquete Estadístico SAS

Introducción:
El paquete SAS (Statistical Analysis System) es un sistema de programas para el análisis de datos. Consiste de
un conjunto de módulos capaces de entregar resultados de diferentes procesos como regresión, análisis de
varianza, estadística básica, distribución de frecuencias, procedimientos multivariados y muchos mas.

SAS bajo MSDOS

Entrada al paquete SAS

Para entrar al paquete SAS bajo MSDOS se deben de teclear las siguientes ordenes:

CD\
CD SAS
SAS

Al entrar a SAS se observan 3 diferentes ventanas:

OUTPUT de color azul claro, donde saldrán los resultados de los programas o las salidas de los análisis.
LOG de color gris, donde se verán si existen o no errores en la sintaxis de las instrucciones en el momento
que se estén ejecutando.
EDIT de color azul obscuro, lugar donde se pueden escribir los programas al través de un editor lineal.

En cada una de las ventanas de SAS encontrará una orden llamada:

COMMAND ==> Esta parte del SAS permite la entrada de diversas ordenes o comandos al sistema.

Salida del SAS

http://colposfesz.galeon.com/sas/SAS.HTM 1/36
10/7/2018 SAS

Para salir del paquete SAS bajo MSDOS se escribe BYE después de la orden COMMAND ==> BYE. También
puede salir del SAS si escribe ENDSAS

Teclado de Funciones del SAS

Las teclas de funciones son ordenes pre-programadas para el manejo del paquete SAS.

A continuación se indican las más importantes para el SAS bajo MSDOS:

F1 AYUDA
F2 Teclado programado de funciones.
F3 Ventana de mensajes de compilación (LOG)
F4 Ventana de salida de resultados (OUTPUT)
F5 Siguiente ventana (NEXT)
F6 Ventana del editor de programas (PGR)
F7 Agrandar o reducir ventana (Zoom)
F8 Subtópicos.
F9 Llamar el programa de nuevo al editor de programas.
F10 Reducir la ventana y ejecutar (Zoom off)

Comandos del SAS

Los comando en SAS son ordenes pre-definidas con una acción en particular, se escriben después del indicador
de Command ==>. En caso de que el cursor no se encuentre junto a Command ==> presione la tecla de INICIO
(HOME).

Algunos de los comandos más comunes son:

HELP.- Ayuda

END.- Cierra la ventana activa con excepto las de OUTPUT, LOG, EDIT.

TOP.- Manda el cursor a la parte más alta de la ventana activa (primer renglón).

BOTTOM.- Manda el cursor a la parte más baja de la ventana activa (último renglón)

BYE.- Salida del paquete SAS. También se puede usar el comando ENDSAS para salir del SAS.

FILE "RUTA:NOMBRE.EXT".- Almacena el contenido de una ventana en disco duro o flexible. Para este
comando se recomienda utilizar diferentes extensiones para el almacenamiento de datos. Estas extensiones son:

Para la ventana de OUTPUT extensión TXT


Para la ventana de LOG extensión LOG
Para la ventana del editor extensión SAS

Por ejemplo:
http://colposfesz.galeon.com/sas/SAS.HTM 2/36
10/7/2018 SAS

FILE "A:DATOS.SAS"

En el ejemplo se almacena en la ventana del editor el programa datos en el disco flexible unidad A.

FILE "PRN".- Manda el contenido de la ventana activa a la impresora.

INCLUDE "RUTA:NOMBRE.EXT".- Llama un programa desde una unidad de discos a la ventana activa. Si
en la ventana activa existía información la agrega al final de los datos.

Por ejemplo:

INCLUDE "A:DATOS.SAS"

En el ejemplo se llama el archivo DATOS.SAS de la unidad A para ser agregado en la ventana activa.

CHANGE.- Cambia caracteres dentro del editor de texto.

Por ejemplo:

CHANGE "&" "@" ALL Cambia el símbolo & por @ en el editor de programas.

Algo muy común en SAS es eliminar los saltos de página que automáticamente SAS asigna en la salida de
resultados esto se puede hacer:

CHANGE " " " " ALL Cambia el símbolo por un espacio en blanco en el editor de programas.

SAS bajo X-Win 32

SAS bajo UNIX es un sistema que trabaja en Windows 95 / 98 en el modo de X-Win 32.

Para entrar al paquete se selecciona INICIO, PROGRAMAS Y X-Win32 como lo indica la siguiente figura:

http://colposfesz.galeon.com/sas/SAS.HTM 3/36
10/7/2018 SAS

Al entrar a X-Win32 y seleccionar SAS como paquete la computadora muestra la entrada siguiente:

http://colposfesz.galeon.com/sas/SAS.HTM 4/36
10/7/2018 SAS

Después de algunos segundos aparecen diferentes ventanas como lo muestra la siguiente figura.

Algunos menús de SAS bajo X-Win 32

FILE

http://colposfesz.galeon.com/sas/SAS.HTM 5/36
10/7/2018 SAS

Open.- Se utiliza para abrir un documento.


Import.- Se utiliza para importar un documento en formato dbf o o en otros formatos.
Save.- Guarda el contenido de la ventana activa. Si el programa no tiene nombre SAS lo pregunta.
Save as... .- Permite nombrar y guardar el contenido de un programa.
Export.- Permite Exportar programas de SAS a otros formatos.
Print.- Se utiliza para imprimir el contenido de una ventana activa en SAS en la impresora de la red.
Print utilities.-
Sent mail ... .- Manda el contenido de una ventana a una cuenta de correo electrónico.
Exit .- Se utiliza para salir de SAS.

EDIT

Undo.- Se utiliza para eliminar la última acción dada en SAS.


Deselect.- Se utiliza para quitar la selección de texto dentro de una ventana de SAS.
Cut selected text.- Corta el texto seleccionado.
Copy to paste buffer.- Almacena la información seleccionada en la memoria de la computadora para ser
utilizada en otro momento.
Paste text.- Pega la información que se encuentre dentro de la memoria previo Copy to paste buffer
Clear selected text.- Borra el texto seleccionado.
Clear text .- Borra todo el texto.
Select text.- Se utiliza para marcar o seleccionar todo el texto.
Select all.- Se utiliza para seleccionar todo el contenido de la ventana activa.
Find ... .- Busca palabras dentro de la ventana activa.
Repeat find .- Repite el comando Find con la última búsqueda.
Change.- Se utiliza para cambiar palabras o símbolos dentro de una ventana activa.
http://colposfesz.galeon.com/sas/SAS.HTM 6/36
10/7/2018 SAS

Repeat change.- Repite el comando Change con el último cambio


Check spelling.- Se utiliza para verificar la sintaxis de los programas en SAS.
Options.- Permite entrar a las diferentes opciones del SAS para X-Win 32

VIEW

Change display .- Permite cambiar el tipo de monitor en que se esta trabajando.


Preferences... .- Muestra una ventana de dialogo con las preferencias sobre las ventanas de dialogo de SAS.
ToolBox .- Muestra una ventana con la caja de herramientas de SAS
Edit ToolBox ... .- Permite editar la caja de herramientas
Close ToolBox ... .- Cierra la ventana de la caja de herramientas.
Change Directory... .- Permite cambiar el directorio del sistema
Change Font... .- Permite cambiar el tipo de letra de las ventanas en SAS.

GLOBALS

Dentro del menú de Globals aparecen diferentes ordenes, algunas de estas son:

Program editor (Editor de programas) llama la ventana del editor de programas. El Program editor es el lugar
donde se escriben los programas.
Log llama la ventana de log. Log es el lugar donde se ven si existen o no errores en la sintaxis de las
instrucciones en el momento que se estén ejecutando.
Output (Salida) llama la ventana donde salen los resultados de los programas o las salidas de los análisis.
Graph (Gráfica) lugar donde saldrán las gráficas del SAS.

La figura siguiente muestra el menú de Globals

http://colposfesz.galeon.com/sas/SAS.HTM 7/36
10/7/2018 SAS

HELP

Extended help.- Muestra la ayuda completa de SAS para X-Win 32


Online training.-
Online documentation.- Muestra la documentación en línea.
Keys.- Muestra el funcionamiento de las teclas de funciones.
SAS System.- Referencia sobre el sistema SAS.
Sample Programs- Muestra ejemplos de programas elaborados para SAS.
SAS Companion.- Muestra información sobre el SAS bajo UNIX y comparaciones con versiones anteriores.
What's New.- Muestra las cosas nuevas que tiene SAS con respecto a la versión anterior.
About... .- Muestra información referente el paquete SAS para X-Win 32.

Teclado de Funciones del SAS bajo X-Win 32

Si selecciona el menú de HELP dentro de cualquier ventana del paquete SAS aparecen diferentes opciones, si se
posiciona sobre KEYS y da clic con el ratón o presiona la tecla de F2 SAS muestra la siguiente figura que indica

http://colposfesz.galeon.com/sas/SAS.HTM 8/36
10/7/2018 SAS

el funcionamiento de las diferentes teclas de funciones.

F1 AYUDA (Help)
F2 Teclado programado de funciones. (Keys)
F3 Ejecutar
F4 Ventana del editor de programas o llamado del programa al editor. (PGM; RECALL)
F5 Siguiente búsqueda (rfind)
F6 Siguiente cambio(rchange)
F7 Atrás (backward)
F8 Adelante (forward).
F10 Izquierda (left)
F11 Derecha (right)

Estructura de un programa en SAS

Un programa en SAS tiene la Siguiente estructura:

http://colposfesz.galeon.com/sas/SAS.HTM 9/36
10/7/2018 SAS

En cada parte del programa en SAS se van indicado un conjunto de instrucciones, estas se pueden repetir de
acuerdo a las necesidades de análisis.

Editor SAS

El Programa SAS bajo MSDOS tiene un editor donde se pueden escribir los programas.

El PROGRAM EDITOR muestra una ventana con:

COMMAND ==>

ORDENES

¯
00001 INSTRUCCIONES
00002
00003

En la parte superior aparece COMMAND ==> En esta parte se escriben los comandos antes explicados, en la
parte inferior aparece una numeración, junto a ella se escriben las instrucciones y sobre ésta los ordenes del
editor.

ORDENES DEL EDITOR DEL SAS BAJO MSDOS

Las ordenes del editor son letras pre-definidas con una función específica y se deben escribir en la primera
columna de la sección numérica. Estas ordenes son:
http://colposfesz.galeon.com/sas/SAS.HTM 10/36
10/7/2018 SAS

Agregar (I)

I Agrega línea(s) en blanco.

Por ejemplo: se tienen las siguientes líneas:

00001 DATA S;
00002 CARDS;
00003 23 45 67 87

Se desea agregar un espacio entre las líneas 00001 y 00002. Para realizar la inserción se coloca el cursor sobre la
primera columna de la línea 00001, se teclea I y se presiona la tecla de ENTER.

I¿ 001 DATA S;
00002 CARDS;
00003 23 45 67 87

El editor responde a la orden de la manera siguiente:

00001 DATA S;
00002
00003 CARDS;
00004 23 45 67 87

Se observa que se agregó una línea después de la 00001 y los renglones que le seguían se recorrieron en la
numeración.

Si se desea agregar más de una línea, estas se pueden indicar después de la orden In, donde n es el número de
líneas a agregar.

Por ejemplo:

Se desean agregar 3 líneas después de la indicada con el número 00003 del ejemplo anterior. Para efectuar esto
se hace:

00001 DATA S;
00002
I3¿ 03 CARDS;
00004 23 45 67 87

El editor responde como:


http://colposfesz.galeon.com/sas/SAS.HTM 11/36
10/7/2018 SAS

00001 DATA S;
00002
00003 CARDS;
00004
00005
00006
00007 23 45 67 87


NOTA: Se pueden insertar n líneas que no sean múltiplos de 10, esto es, 1 o 5 o 9 o 29 o 39 pero no 10 ni 20, …, etc.

Borrar (D)

D Borra línea(s) desde donde se indique la orden.

Para borrar una línea del editor se utiliza la orden D. Por ejemplo:

Se desea borrar la línea 00002 del editor de programas.

Para efectuar estos cambios es necesario colocar el cursor sobre la primera columna de la línea 00002, escribir la
letra D y presionar ENTER (¿ ).

00001 DATA S;
D¿ 002
00003 CARDS;
00004
00005
00006
00007 23 45 67 87
El editor del SAS responderá con:
00001 DATA S;
00002 CARDS;
00003
00004
00005
00006 23 45 67 87

Observe que borró la línea y recorrió la numeración en otras instrucciones hacia arriba.

Si se desean borrar más de una línea esto se pueden hacer con la órden Dn donde n es el número de líneas a
borrar y no deben ser múltiplos de 10.

Por ejemplo:

Se desean borrar 3 líneas después de la indicada con el número 00003 del ejemplo anterior. Para efectuar esto se
hace:

00001 DATA S;
00002 CARDS;
http://colposfesz.galeon.com/sas/SAS.HTM 12/36
10/7/2018 SAS

D3¿ 03
00004
00005
00006 23 45 67 87

El editor responderá como:

00001 DATA S;
00002 CARDS;
00003 23 45 67 87

Otra forma de borrar líneas es al través del comando DD. Con DD puede indicar el principio y el fin de un
bloque que desea borrar. Por ejemplo:

1. Se desea borrar un bloque de líneas de la 00002 a la 00005. Para efectuar esto se hace:
2. Se coloca el cursor sobre la línea 00002 primera columna.
3. Se escribe DD y se presiona ENTER (¿ ).
4. Se mueve el cursos sobre la línea 00005 primera columna.
5. Se escribe DD y se presiona ENTER (¿ ), como se muestra a continuación:

00001 DATA S;
DD¿ CARDS;
00003
00004
DD¿
00006 23 45 67 87

Copiar una línea(C,B)

C Indica la línea que se desea copiar (origen).


B Indica la línea donde se desea copiar (destino).

Por ejemplo: se desea copiar la línea 00002 en la línea 00005.

Para hacerlo:

1. Se coloca el cursos en la línea 00002 primera columna


2. Se teclea C
3. Se presiona ENTER (¿ ), la numeración 00002 desaparecerá
4. Se mueve el cursor a la línea 00005 primera columna,
5. Se escribe B
6. Se presiona ENTER (¿ ) como se muestra en la figura:

00001 DATA S;
C¿ CARDS;
00003 23 45 67 87
http://colposfesz.galeon.com/sas/SAS.HTM 13/36
10/7/2018 SAS

00004
B¿

Aparecerá la línea copiada como se muestra en la figura siguiente:

00001 DATA S;
00002 CARDS;
00003 23 45 67 87
00004
00005 CARDS;

Copiar varias líneas o un bloque de líneas(CC,B)

CC Indica Inicio/Fin de bloque a copiar (origen).


B Indica que se copie el bloque (destino).

Por ejemplo: se desean copiar las líneas 00001 a la 00003 en la línea 00005.

Para efectuar la copia:

1. Se mueve el cursor a la línea 00001 columna 1


2. Se teclea CC .
3. Se presiona ENTER (¿ )
4. Se mueve el cursor a la línea 00003 columna 1
5. Se teclea CC,
6. Se presiona ENTER (¿ ),
7. Se mueve el cursos a la línea 00005 columna 1
8. Se teclea B
9. Se presiona ENTER (¿ ) como se muestra en la figura:

CC¿ DATA S;
00002 CARDS;
CC¿ 23 45 67 87
00004
B¿ CARDS;

El resultado de esta operación es:

00001 DATA S;
00002 CARDS;
00003 23 45 67 87
00004
00005 DATA S;
00006 CARDS;
00007 23 45 67 87
00008 CARDS;

http://colposfesz.galeon.com/sas/SAS.HTM 14/36
10/7/2018 SAS

Instrucciones básicas

Las instrucciones son ordenes que se le da al paquete SAS dentro de un programa para el análisis de datos. Al
termino de cada instrucción se debe escribir un punto y coma (;).

OPTIONS

La instrucción OPTIONS indica al programa de SAS las opciones con que se quiere trabajar para la salida de
resultados. Las opciones más utilizadas son:

LS ( Linesize) indica el número de columnas utilizadas.


PS (pagesize) indica el número de renglones utilizados.
NODATE indica que el reporte no tenga la fecha.
NONUMBER indica que el reporte no tenga número de página

Por ejemplo:

OPTIONS LS=80 PS=56 NODATE;

En el ejemplo se indica que se van a usar 80 columnas, 56 renglones y que el reporte va sin fecha. Note que cada
una de las opciones va separada por al menos un espacio.

DATA

La instrucción DATA se usa para indicar un conjunto de elementos. Este conjunto de datos muestran valores
diferentes obtenidos en un experimento, una muestra o la unión de diferentes subconjuntos de datos. El formato
de la Instrucción DATA es el siguiente:

DATA nombre del conjunto:

Por ejemplo:
DATA S;

Donde S indica el tamaño de muestra.

INPUT

http://colposfesz.galeon.com/sas/SAS.HTM 15/36
10/7/2018 SAS

La instrucción INPUT se usa para indicar las variables que serán utilizadas para el análisis de datos. El formato
de la Instrucción INPUT es el siguiente:

INPUT variable(s) [@@];

Las variables pueden ser numéricas o alfanuméricas ($) separadas por un espacio en blanco.

Por ejemplo:
INPUT MERCADO $ X Y;

El ejemplo anterior muestra que la variable MERCADO es de tipo alfanumérica y acepta letras y números; X y
Y son variables de tipo numéricas.

Si se utiliza @@ los datos pueden introducirse en forma horizontal por ejemplo:

INPUT MERCADO $ X Y @@;

Si se utiliza @ los datos pueden introducirse desde un archivo externo en forma de tabla.

CARDS

La instrucción CARDS indica al programa en SAS que se introducirán datos a continuación y que van a ser
tomados por la(s) variable(s) puestas en INPUT. La forma de escribir CARDS es la siguiente:

CARDS;
valor valor valor ...
...

Por ejemplo:

options ls=72 ps=60 nodate;


data s;
input x @@;
cards;
23 34 25 27 23 29 29 43 28 33 31 32 31 23 29
25 28 35 38 39 42 41 40 29 31 25 29 27 28 33
27 29 32 33 39 43 41 45 29 39 33 32 34 37 34
35 28 33 33 38 37 36 42 39 41 32 34 39 41 33
37 29 33 28 27 22 29 34 43 37 22 28 29 45 37
40 28 33 30 30 23 30 34 45 31 33 29 33 45 28

En el ejemplo anterior con options se indica que se utilizaran 72 columnas, 60 renglones y que no se quiere la
fecha; en data se indica que el conjunto universal se llama s; en input se indica que la variable x tomara valores
en forma de tabla utilizando la orden cards; después cards indica que se escribirán los valores con al menos un
espacio.

http://colposfesz.galeon.com/sas/SAS.HTM 16/36
10/7/2018 SAS

INFILE

La instrucción INFILE se utiliza para indicar al programa que va a tomar datos desde un archivo externo y no
por conducto de la orden CARDS; la sintaxis para infile es la siguiente:

INFILE 'RUTA:NOMBRE.EXT' ;

Si a la orden INFILE se le agrega MISSOVER esto indica que se van a pedir otros archivos para analizar.

INFILE 'RUTA:NOMBRE.EXT' MISSOVER ;

Por ejemplo:

options ls=72 ps=60 nodate;


data s;
infile "edades.dat";
input x @;

Ciclos iterativos DO

Los ciclos iterativos en el paquete SAS se hacen utilizando las instrucciones:

DO variable=valor inicial TO valor final;


.....
.....
END;

Regularmente los ciclos iterativos se utilizan para indicar la entrada de valores a variables para no indicar el
valor de una sola. Por ejemplo:

data s;
do datos=1 to 5;
input obs @@;
output;
end;
cards;
24561

El valor que la variable datos tomará será desde 1 hasta el valor de 5 incrementandose el valor de uno en uno, se
introducirán 5 datos a la variable obs que seran tomados desde afuera del ciclo(output) después de la órden
cards; esto da como resultado:

datos obs
12
http://colposfesz.galeon.com/sas/SAS.HTM 17/36
10/7/2018 SAS

24
35
46
51

Los ciclos pueden estar anidados, por ejemplo:

do trat=1 to 5;
do bloq=1 to 5;
input obs@@;
output;
end;
end;
cards;
8 10 12 13 11
2 6 7 11 5
4 10 9 8 10
3 5 9 10 6
97553

donde la variable trat tomará valores desde 1 hasta 5, bloq desde 1 hasta 5, y en total se tomarán 25
observaciones quedando los valores:

trat bloq obs


1 1 8
1 2 10
1 3 12
1 4 13
1 5 11
...
...
5 5 3

Condicionales por medio de IF-THEN

La instrucciones if-then son instrucciones que condicionan la entrada de datos de un programa. Su formato es el
siguiente:

IF condición THEN instrucción;

Si se cumple la condición se efectuará lo que indique la instrucción, por ejemplo:

IF trat=1 THEN trata="I";

Una de las formas en que más se usa esta instrucción es para indicar que si cumple con cierta condición quite el
dato del análisis, esto se hace indicando la instrucción DELETE.

IF ps<=0 THEN DELETE;

http://colposfesz.galeon.com/sas/SAS.HTM 18/36
10/7/2018 SAS

Procedimientos

Procedimiento PRINT

El procedimiento PRINT imprime las observaciones de un conjunto de datos en forma de un reporte simple. El
formato general de PRINT es el siguiente:

PROC PRINT;

Procedimiento FREQ

Con el procedimiento FREQ se puede obtener cálculos de distribución de frecuencias de un conjunto de datos
por variable indicada en INPUT, su formato general es el siguiente:

PROC FREQ;

Procedimiento MEANS

MEANS se utiliza para obtener cálculos de estadística básica, valor mínimo, valor máximo, desviación estándar,
sumatorias, entre otras. El formato general para MEANS es el siguiente:

PROC MEANS;

Si se desea sacar información sobre media, varianza, desviación estándar, valor máximo, valor mínimo,
coeficiente de variación y amplitud escriba la siguiente orden:

PROC MEANS MEAN VAR STD MAX MIN CV RANGE;

Procedimiento SORT

El procedimiento SORT se utiliza para ordenar los datos en orden ascendente o descendente. SORT se usa
cuando los datos de entrada no están completamente ordenados para realizar algun análisis en particular. El
formato general para SORT es el siguiente:

PROC SORT;
BY [descending] variable o variables;

En caso de que se desee el orden ascendente agregue lo que esta entre corchetes.
http://colposfesz.galeon.com/sas/SAS.HTM 19/36
10/7/2018 SAS

Por ejemplo:

PROC SORT;
BY DESCENDIG tamaños;

Procedimiento CHART

El procedimiento CHART hace gráficas de en diferentes formas:

histogramas verticales y horizontales , gráficas de bloques, pies y gráficas de estrella. CHART tiene como
formato general:

PROC CHART;
Tipo de gráfica;

Donde tipo de gráfica puede ser:


VBAR variables;
HBAR variables:
BLOCK variables;
PIE variables;
STAR variables;

Nota: si se quiere sacar una gráfica de pastel (PIE) debe escribir en el programa:
Options ls=72 ps=60;

Esto se hace por que la gráfica de pastel no cabe en la salida por defecto de SAS.

Procedimiento PLOT

PLOT gráfica una variable contra otra a través de procedimientos

de impresión de gráficos (gráficas XY), su formato general es el siguiente:

PROC PLOT;

PLOT vertical*horizontal="caracter";

Otros Procedimientos
REG se usa para el modelo de regresión lineal simple, lineal múltiple y no lineal.

ANOVA es un procedimiento para hacer análisis de varianza de los datos.

CORR procedimiento para calcular la correlación entre datos.

GLM Modelo general lineal (General Lineal Model), con este procedimiento se pueden hacer análisis de
varianza para diferentes modelos lineales como regresión lineal simple, regresión lineal múltiple, diseños
http://colposfesz.galeon.com/sas/SAS.HTM 20/36
10/7/2018 SAS

completamente al azar, bloques al azar, cuadro latino, contrastes ortogonales, factoriales, entre otros más.

Programas de SAS

Programa 1 Distribución de frecuencias, estadística básica y gráficas.

Cálculo de la distribución de frecuencias de datos, estadística básica y gráfica de histográmas de un conjunto de


datos correspondientes a 90 edades tomadas a un grupo de personas en una cafetería un día del mes de mayo.
options ls=72 ps=60 nodate;
data s;
input x @@;
cards;
23 34 25 27 23 29 29 43 28 33 31 32 31 23 29
25 28 35 38 39 42 41 40 29 31 25 29 27 28 33
27 29 32 33 39 43 41 45 29 39 33 32 34 37 34
35 28 33 33 38 37 36 42 39 41 32 34 39 41 33
37 29 33 28 27 22 29 34 43 37 22 28 29 45 37
40 28 33 30 30 23 30 34 45 31 33 29 33 45 28
proc print;
proc freq;
proc means;
proc chart;
vbar x;
run;

Programa 2. Uso de Infile

Se tienen los siguientes datos:

23 34 25 27 23 29 29 43 28 33 31 32 31 23 29
25 28 35 38 39 42 41 40 29 31 25 29 27 28 33
27 29 32 33 39 43 41 45 29 39 33 32 34 37 34
35 28 33 33 38 37 36 42 39 41 32 34 39 41 33
37 29 33 28 27 22 29 34 43 37 22 28 29 45 37
40 28 33 30 30 23 30 34 45 31 33 29 33 45 28

Los datos son capturados en un procesador de texto (EDIT del MSDOS o en otro procesador). y almacenado
con el nombre edades.dat como solo texto con saltos de línea o en código ASCII para que SAS pueda leerlo.

El programa en SAS es el siguiente:


options ls=72 ps=60 nodate;
data s;
infile "edades.dat";
input x @;
proc print;
proc freq;
proc means;
proc chart;
vbar x;
run;

http://colposfesz.galeon.com/sas/SAS.HTM 21/36
10/7/2018 SAS

Note que la orden INFILE esta colocada antes de INPUT y que los datos deben tener el orden como si se
metieran con la orden CARDS.

Programa 3 Covarianza y correlación.

La siguiente tabla consiste de las observaciones resultantes de medir el peso y la estatura de cada uno de diez
individuos.

Peso (X) 63 52 78 49 71 62 68 48 56 67
Estatura (Y) 162 158 167 151 162 168 167 153 152 173

Calcular la covarianza y la correlación


*Ejemplo tomado del libro de Métodos Estadísticos, Cap.3. Said Infante Gil y Guillermo Zarate de Lara. Editorial
Trillas.data s

data s;
input x y ;
cards;
63 162
52 158
78 167
49 151
71 162
62 168
68 167
48 153
56 152
67 173
proc corr cov;
run;

Programa 4 Distribución Binomial

Calcular la probabilidad de X desde 0 hasta 10 cuando X ~ Bin(10,0.4)


data s;
input p n x;
y=probbnml(p,n,x);
cards;
0.4 10 0
0.4 10 1
0.4 10 2
0.4 10 3
0.4 10 4
0.4 10 5
0.4 10 6
0.4 10 7

http://colposfesz.galeon.com/sas/SAS.HTM 22/36
10/7/2018 SAS
0.4 10 8
0.4 10 9
0.4 10 10
proc print;
run;

Programa 5 Distribución Poisson

Calcular la probabilidad de X desde 0 hasta 8 cuando X~Poisson(0.9,X)

data s;
input lamda x;
y=poisson(lamda,x);
cards;
0.9 0
0.9 1
0.9 2
0.9 3
0.9 4
0.9 5
0.9 6
0.9 7
0.9 8
proc print;
run;

Programa 6 Distribución Normal del Cálculo de la Probabilidad puntual.

Calcular la probabilidad con z=-1, z=1, z=-2, z=2, z=-3 y z=-3


data s;
input z@@;
y=probnorm(z);
cards;
-1 1
-2 2
-3 3
proc print;
run;

Programa 7 Distribución Normal del Cálculo de la probabilidad entre dos límites.

Calcular la probabilidad de:

a. (-3 £ Z £ +3)
b. (-2 £ Z £ +2)
c. (-1 £ Z £ +1)
d. (-2.3 £ Z £ +3.4)
data s;

http://colposfesz.galeon.com/sas/SAS.HTM 23/36
10/7/2018 SAS
input zliminf zlimsup;
y=probnorm(zlimsup)-probnorm(zliminf);
cards;
-3 3
-2 2
-1 1
-2.3 3.4
proc print;
run;

Programa 8 Distribución Chi cuadrada

a. Calcular alfa con 10 grados de libertad y un valor de 3.9403


b. Calcular alfa con 15 grados de libertad y un valor de 24.9958
data s;
input valor gl;
y=1-probchi(valor,gl);
cards;
3.9403 10
24.9958 15
proc print;
run;

Programa 9 Distribución T

a. Calcular alfa con 25 grados de libertad y un valor de 1.700


b. Calcular alfa con 50 grados de libertad y un valor de 2.870
c. Calcular alfa con 1 grados de libertad y un valor de 1
d. Calcular alfa con 14 grados de libertad y un valor de 1.761
e. Calcular alfa con 30 grados de libertad y un valor de 2.042
data s;
input valor gl;
y=1-probt(valor,gl);
cards;
1.700 25
2.870 50
1 1
1.761 14
2.042 30
proc print;
run;

Programa 10 Distribución F

data s;

http://colposfesz.galeon.com/sas/SAS.HTM 24/36
10/7/2018 SAS
input valor n m;
y=1-probf(valor,n,m);
cards;
3.3200 2 30
3.0556 4 15
proc print;
run;

Programa 11 Regresión lineal simple

Observaciones resultantes de medir el peso y la estatura de cada uno de diez individuos.

Peso (X) 63 52 78 49 71 62 68 48 56 67
Estatura (Y) 162 158 167 151 162 168 167 153 152 173

*Ejemplo tomado del libro de Métodos Estadísticos, Cap.12. Said Infante Gil y Guillermo Zarate de Lara. Editorial
Trillas.

Para calcular el análisis de varianza de la Regresión Lineal simple se hace:


data s;
input x y;
cards;
63 162
52 158
78 167
49 151
71 162
62 168
68 167
48 153
56 152
67 173
proc plot;
plot y*x;
proc reg;
model y=x;
run;

El programa anterior muestra la regresión lineal simple y también agrega la gráfica de dispersión de puntos.

Programa 12 Regresión lineal múltiple

En seguida se presentan datos de tres variables de gran importancia económica en un país. Las variables son:

Y1: petróleo y petroquímica.


Y2 Producción de alimentos, bebidas y tabaco
Y3: energía eléctrica

http://colposfesz.galeon.com/sas/SAS.HTM 25/36
10/7/2018 SAS

Los datos de estas variables se dan como índices a lo largo de 15 años. Todos los datos son porcentajes de
producción con respecto al año de 1960. La variable X es 1 para 1961, 2 para 1962, ..., 15 para 1975.

Indices de volumen de la producción Industrial en México (1960 = 100%)

X(año) Y1 Y2 Y3
1 110.9 106.5 105.9
2 114.3 109.6 117.4
3 121.2 118.7 136.3
4 134.2 129.3 159.4
5 142.8 137.8 176.1
6 148.9 147.4 195.8
7 169.1 153.9 217.7
8 183.8 165.1 241.8
9 195.2 175.9 275.2
10 214.7 186.6 306.7
11 221.8 188.0 335.5
12 241.2 198.1 371.4
13 247.1 208.2 409.6
14 284.5 214.6 448.6
15 309.8 221.9 455.4

*Ejemplo tomado del libro de Métodos Estadísticos, Cap.3. Said Infante Gil y Guillermo Zarate de Lara. Editorial
Trillas.data s

data s;
input x y1 y2 y3;
cards;

1 110.9 106.5 105.9


2 114.3 109.6 117.4
3 121.2 118.7 136.3
4 134.2 129.3 159.4
5 142.8 137.8 176.1
6 148.9 147.4 195.8
7 169.1 153.9 217.7
8 183.8 165.1 241.8
9 195.2 175.9 275.2
10 214.7 186.6 306.7
11 221.8 188.0 335.5
http://colposfesz.galeon.com/sas/SAS.HTM 26/36
10/7/2018 SAS

12 241.2 198.1 371.4


13 247.1 208.2 409.6
14 284.5 214.6 448.6
15 309.8 221.9 455.4

proc reg;
model x=y1 y2 y3;
run;

Programa 13 Diseño Básico

*Con el objeto de ilustrar el procedimiento de A. de V. se presenta un ejemplo sin mayor interés práctico. Se
tiene una muestra aleatoria de tamaño 15, que se supone una población Normal (m ,s 2). Las observaciones en la
muestra son:

Yi: 68, 69, 78, 86, 73, 69, 80, 67, 59, 68, 70, 66, 69, 72, 77

Se desea probar la hipótesis Ho: m =68 contra Ha: m ¹ 68.


*Ejemplo tomado del libro de Métodos Estadísticos, Cap.11. Said Infante Gil y Guillermo Zarate de Lara. Editorial
Trillas.

data s;
input obs@@;
cards;
68 69 78 86 73 69 80 67 59 68 70 66 69 72 77
proc glm;
model obs=;
run;

Programa 14 Diseño completamente al azar

*En un experimento se van a comprobar los porcentajes de carbohidratos en 4 marcas de pan, para lo cual se van
a hacer 18 determinaciones: 5 en la primera marca, 3 en la segunda, 4 en la tercera y 6 en la cuarta. Para obtener
las respuestas se tomarán muestras aleatorias de los tamaños especificados de cada marca y se harán
determinaciones de los porcentajes mediante un procedimiento (hasta donde sea posible) idéntico en las 18
unidades experimentales.

En la tabla se presentan los resultados de las 18 determinaciones de carbohidratos.

Tratamiento 1 Tratamiento 2 Tratamiento 3 Tratamiento 4

(marca 1) (marca 2) (marca 3) (marca 4)


63 60 59 70
68 65 66 69
71 61 58 62

http://colposfesz.galeon.com/sas/SAS.HTM 27/36
10/7/2018 SAS

70 59 71
69 70
66

*Ejemplo tomado del libro de Métodos Estadísticos, Cap.11. Said Infante Gil y Guillermo Zarate de Lara. Editorial
Trillas.

Para solucionar el problema por medio de un DCA el programa en SAS es:


data s;
input trat obs;
cards;
1 63
1 68
1 71
1 70
1 69
2 60
2 65
2 61
3 59
3 66
3 58
3 59
4 70
4 69
4 62
4 71
4 70
4 66
proc glm;
classes trat;
model obs=trat;
run;

Programa 15 Bloques al azar

*En un experimento se quieren comparar las capacidades de reproducción de frecuencias bajas


de 4 recubrimientos de cinta magnética y se van a efectuar 5 observaciones de cada uno. Se
pretende utilizar 5 diferentes grabadoras para el experimento, utilizando cada grabadora
como un bloque en el que se probaran los 4 tratamientos. El propósito del experimento no es
comparar las grabadoras sino comparar los cuatro recubrimientos.

Bloque Tratamiento Tratamiento Tratamiento Tratamiento

(grabadora) 1 2 3 4

1 20 10 30 22

2 30 20 39 26

3 32 19 37 27

4 18 9 26 23

http://colposfesz.galeon.com/sas/SAS.HTM 28/36
10/7/2018 SAS

5 26 18 29 20

*Ejemplo tomado del libro de Métodos Estadísticos, Cap.11. Said Infante Gil y Guillermo Zarate de Lara. Editorial
Trillas.

data s;
input bloq trat obs;
cards;
1 1 20
1 2 10
1 3 30
1 4 22
2 1 30
2 2 20
2 3 39
2 4 26
3 1 32
3 2 19
3 3 37
3 4 27
4 1 18
4 2 9
4 3 26
4 4 23
5 1 26
5 2 18
5 3 29
5 4 20
proc glm;
classes bloq trat;
model obs=bloq trat;
run;

El ejemplo anterior solo que ahora utilizando ciclos iterativos y condicionales:


options ps=60;
data s;
do bloq=1 to 5;
do trat=1 to 4;
input obs@@;
if trat=1 then trata="I ";
if trat=1 then trata="II ";
if trat=1 then trata="III";
if trat=1 then trata="IV ";
output;
end;
end;
cards;
20 10 30 22
30 20 39 26
32 19 37 27
18 9 26 23
26 18 29 20
proc glm;
classes bloq trata;
model obs=bloq trata;
run;

http://colposfesz.galeon.com/sas/SAS.HTM 29/36
10/7/2018 SAS

Programa 16 Cuadro Latino

data s;
input hileras columnas $ trat $ dato;
cards;
1 I F 3.5
2 I B 4.2
3 I A 6.7
4 I D 6.6
5 I C 4.1
6 I E 3.8
1 II B 8.9
2 II F 1.9
3 II D 5.8
4 II A 4.5
5 II E 2.4
6 II C 5.8
1 III C 9.6
2 III E 3.7
3 III F -2.7
4 III B 3.7
5 III D 6.0
6 III A 7.0
1 IV D 10.5
2 IV C 10.2
3 IV B 4.6
4 IV E 3.7
5 IV A 5.1
6 IV F 3.8
1 V E 3.1
2 V A 7.2
3 V C 4.0
4 V F -3.3
5 V B 3.5
6 V D 5.0
1 VI A 5.9
2 VI D 7.6
3 VI E -0.7
4 VI C 3.0
5 VI F 4.0
6 VI B 8.6
proc glm;
classes hilera columna trat;
MODEL dato=hilera columna trat;
MEANS trat/alpha=0.05 tukey;
run;

Programa 17 Contrastes ortogonales

El experimento consiste en comparar los efectos de siete fungicidas y un testigo sobre maíz infestado con
Diplodia spp. Se mide el número de semillas que germinan, para este propósito se planteó un diseño Bloques al
Azar, en condiciones de invernadero. Cada unidad experimental consiste de 25 semillas. Los datos se dan en la
tabla:

http://colposfesz.galeon.com/sas/SAS.HTM 30/36
10/7/2018 SAS

Bloq\Trat A B C D E F G H
1 8 16 14 10 8 8 7 12
2 8 19 16 11 7 8 6 19
3 9 24 14 12 1 3 6 9
4 7 22 13 8 1 3 6 11
5 7 19 14 7 3 3 4 9
6 5 19 13 3 2 7 4 5

A: Tratamiento testigo
B, C: Fungicidas mercúricos
D, H: Fungicidas no mercúricos producidos por la compañía I
E, F, G: Fungicidas no mercúricos producidos por la compañía II. F y G son nuevas formulaciones de E.

Se desea dividir la suma de cuadrados de tratamientos y los 7 grados de libertad para dar un conjunto de
comparaciones ortogonales. Las comparaciones están en la base de los tratamientos.

1. El efecto del testigo es igual al de los siete fungicidas.


2. El efecto de los Fungicidas Mercúricos es igual al efecto de los fungicidas no mercúricos.
3. El efecto de los fungicidas mercúricos es el mismo
4. El efecto de los fungicidas de la Compañía I es igual a efecto de los fungicidas de la compañía II.
5. El efecto de los Fungicidas de la compañía I es el mismo.
6. El efecto de los fungicidas de la compañía II es el mismo.
7. El efecto de las nuevas formulaciones de la compañía II es el mismo.

El programa en SAS para resolver este problema es el siguiente:


data fungi;
input trat $;
do bloq=1 to 6;
input obs @@;
output;
end;
cards;
A 8 8 9 7 7 5
B 16 19 24 22 19 19
C 14 16 14 13 14 13
D 10 11 12 8 7 3
E 8 7 1 1 3 2
F 8 8 3 3 3 7
G 7 6 6 6 4 4
H 12 19 9 11 9 5
proc glm;
class trat bloq;
model obs trat bloq;
* TRATAMIENTOS A B C D E F G H;
contrast 'A VS B C D E F G H ' TRAT +7 -1 -1 -1 -1 -1 -1 -1;
http://colposfesz.galeon.com/sas/SAS.HTM 31/36
10/7/2018 SAS
contrast 'B C VS D E F G H ' TRAT 0 +5 +5 -2 -2 -2 -2 -2;
contrast 'B VS C ' TRAT 0 +1 -1 0 0 0 0 0;
contrast 'D H VS E F G ' TRAT 0 0 0 3 -2 -2 -2 3;
contrast 'D VS H ' TRAT 0 0 0 +1 0 0 0 -1;
contrast 'E VS F G ' TRAT 0 0 0 0 +2 -1 -1 0;
contrast 'F VS G ' TRAT 0 0 0 0 0 +1 -1 0;
run;

Programa 18 Diseño Factorial

Se tienen, en un diseño cuadro latino cuatro tratamientos para probar el efecto de fertilizantes inorgánicos y
orgánicos sobre el rendimiento de una variedad de papa.

Los tratamientos son:


Tratamiento 1.- Sangre (n0); superfosfato (P0): (n0P0)
Tratamiento 2.- Sulfato de amonio (n1); superfosfato (P0): (n1P0)
Tratamiento 3.- Sulfato de amonio (n1); harina de hueso (P1): (n1P1)
Tratamiento 4.- Sangre (n0); harina de hueso (P1): (n0P1)

Note que la asignación de niveles a los factores es arbitraria.

Tenemos entonces dos factores a dos niveles:


Sangre (n0)
Sulfato de amonio (n1)
Superfosfato (P0)
Harina de hueso (P1)

El diseño quedo como sigue:

TRAT OBS
I II III IV I II III IV
I 4 3 2 1 I 645 667 670 787
II 1 2 3 4 II 752 637 655 576
III 3 4 1 2 III 642 627 686 575
IV 2 1 4 3 IV 621 762 596 660

data s;
* Las variables trat representa tratamientos, n y p los diferentes niveles
input hileras colum trat n p obs;
cards;
I I 4 0 1 645
I II 3 1 1 667
I III 2 1 0 670
I IV 1 0 0 787
http://colposfesz.galeon.com/sas/SAS.HTM 32/36
10/7/2018 SAS
II I 1 0 0 752
II II 2 1 0 637
II III 3 1 1 655
II IV 4 0 1 576
III I 3 1 1 642
III II 4 0 1 627
III III 1 0 0 686
III IV 2 1 0 575
IV I 2 1 0 621
IV II 1 0 0 762
IV III 4 0 1 596
IV IV 3 1 1 660
PROC PRINT;
* se hace el cálculo del análisis de varianza del diseño cuadro latino
PROC GLM;
CLASSES hileras colum trat;
MODEL obs=hileras colum trat;
run;
* se hace el cálculo usando factoriales
* el diseño anterior se respeta solo en el modelo se ponen los
* diferentes niveles de p y n y sus interacciones.
proc glm;
classes hileras colum trat;
model obs=n p n*p;
run;

También el factorial se puede escribir como:


proc glm;
classes hileras colum trat;
model obs=n|p;
run;

De esta forma la computadora tomaría los valores de n, de p y la interacción entre ellos.

Programa 19 Diseño Jerárquico

En un curso de capacitación reciente los miembros de las clase recibieron, para probar sus conocimientos, un
problema final. Cada miembro de la clase fue a la planta y montó un experimento de acuerdo a las técnicas
discutidas en clase. El Ingeniero Fernández se propuso estudiar las series de datos de soportes de cátodos de
cristal de cinco diferentes máquinas. Cada máquina (M) tiene cuatro cabezas (H) en las cuales el cristal (vidrio)
se forma, el Ingeniero decidió tomar 4 observaciones por celda, empleó un Diseño Completamente al Azar para
probar que las series de lecturas no presentaban problema.

Los datos se presentan en la tabla:

Cabeza Máquina A Máquina B Máquina C Máquina D Máquina E


1 6 10 0 11 1
2 9 0 0 4
0 7 5 6 7
8 12 5 4 9

http://colposfesz.galeon.com/sas/SAS.HTM 33/36
10/7/2018 SAS

2 13 2 10 5 6
3 1 11 10 7
9 1 6 8 0
8 10 7 3 3

3 1 4 8 1 3
10 1 5 8 0
0 7 0 9 2
6 9 7 4 2

4 7 0 7 0 3
4 3 2 8 7
7 4 5 6 4
9 1 4 5 0

De la tabla:
Máquinas i= 1,..., 5
Cabezas j= 1 ,...,4
Repeticiones k=1 ,...,4

El ejemplo anterior se puede analizar como un Diseño Jerárquico , ya que cabezas están anidadas dentro de
máquinas.
data s;
input cabeza maq $ obs;
cards;
1 A 6
1 A 2
1 A 0
1 A 8
1 B 10
1 B 9
1 B 7
1 B 12
1 C 0
1 C 0
1 C 5
1 C 5
1 D 11
1 D 0
1 D 6
1 D 4
1 E 1
1 E 4
1 E 7
1 E 9
2 A 13
2 A 3
http://colposfesz.galeon.com/sas/SAS.HTM 34/36
10/7/2018 SAS
2 A 9
2 A 8
2 B 2
2 B 1
2 B 1
2 B 10
2 C 10
2 C 11
2 C 6
2 C 7
2 D 5
2 D 10
2 D 8
2 D 3
2 E 6
2 E 7
2 E 0
2 E 3
3 A 1
3 A 10
3 A 0
3 A 6
3 B 4
3 B 1
3 B 7
3 B 9
3 C 8
3 C 5
3 C 0
3 C 7
3 D 1
3 D 8
3 D 9
3 D 4
3 E 3
3 E 0
3 E 2
3 E 2
4 A 7
4 A 4
4 A 7
4 A 9
4 B 0
4 B 3
4 B 4
4 B 1
4 C 7
4 C 2
4 C 5
4 C 4
4 D 0
4 D 8
4 D 6
4 D 5
4 E 3
4 E 7
4 E 4
4 E 0
proc print;
PROC GLM;
CLASS maq cabeza;
model obs=maq|cabeza;
run;
PROC GLM;
CLASS maq cabeza;
http://colposfesz.galeon.com/sas/SAS.HTM 35/36
10/7/2018 SAS
model obs=maq maq(cabeza);
run;
proc sort; by maq;
PROC GLM;
CLASS maq cabeza;
model obs=maq maq(cabeza)/alpha=.1;
by maq;
run;

http://colposfesz.galeon.com/sas/SAS.HTM 36/36

También podría gustarte