Sie sind auf Seite 1von 5

Software Estadstico I

Grupo I Prctica 4 23 de mayo de 2012 1.- Dado el fichero de datos Mundo95.sas7bdat crea un fichero de datos por cada regin econmica. (1 punto)
LIBNAME SF1 'G:\Datos'; /* Hacemos una tabla de la variable regin econmica para ver cuantos valores diferentes toma */ PROC FREQ DATA = SF1.Mundo95; tables regi_n; RUN; /* Hay 6 regiones econmica */ DATA reg1 reg2 reg3 reg4 SET SF1.Mundo95; IF regi_n = 1 ELSE IF regi_n = 2 ELSE IF regi_n = 3 ELSE IF regi_n = 4 ELSE IF regi_n = 5 ELSE RUN; reg5 reg6; THEN THEN THEN THEN THEN OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT reg1; reg2; reg3; reg4; reg5; reg6;

/* Este ejemplo hace ver que se necesita un tipo de cdigo que me permita simplificar el proceso */ /* Este tipo de cdigo son las MACROS */

2.- En el fichero empleados.dat se pide calcular la media del salario inicial en funcin del nivel de estudios. (1 punto)
/* El fichero 'empleados.dat' es un fichero ASCII delimitados por tabuladores */ DATA dos; INFILE 'G:\Datos\empleados.dat' FIRSTOBS= 2 DLM='09'x; INPUT id sexo fechnac $ educ catlab salario salini tiempemp expprev minoria; PROC SORT DATA = dos; BY educ; PROC MEANS DATA=dos; BY educ; PROC MEANS DATA=dos mean; BY educ; RUN;

3.- En el archivo 'datos_gripe_ESP.txt' esta la evolucin de la gripe en Espaa durante los ltimos aos. Crea un archivo que contenga los datos del ao 2009 y realiza su grfica.(1 punto)
DATA tres; INFILE 'G:\Datos\datos_gripe_ESP.txt' firstobs = 21 DLM=','; INPUT anyo 1-4 +7 valor; IF anyo = 2009; PROC PRINT DATA = tres; RUN; /* Opcin dos */ DATA tres1; INFILE 'G:\Datos\datos_gripe_ESP.txt' firstobs = 21 DLM=','; INPUT anyo 1-4 @; IF anyo = 2009 THEN INPUT +7 valor; ELSE DELETE; PROC PRINT DATA = tres1; RUN;

4.- En el fichero Ciudades Americanas.txt se almacenan las temperaturas media en grados Celsius de diez ciudades americanas. Se pide: a) Pasar las temperaturas a grados Fahrenheit. b) Calcular las temperaturas medias anuales de cada ciudad. c) Calcular las temperaturas medias mensuales. (2 puntos)
DATA cuatro; INFILE 'G:\Datos\CiudadesAmericanas.txt'; INPUT nombre $ 1-17 mes01 - mes12; ARRAY AUX{12} mes01-mes012; DO I =1 to 12; AUX{I} = 9*+AUX{I}/5 + 32; END; Media_Ciudad = mean(of mes01,mes12); PROC PRINT DATA = cuatro; PROC MEANS DATA = cuatro MEAN; VAR mes01-mes12; RUN;

DATA celsius; input Ciudad $ DATALINES; State College, PA Miami, FL St. Louis, MO New Orleans, LA Madison, WI Houston, TX Phoenix, AZ Seattle, WA San Francisco, CA San Diego, CA ; RUN;

1-18 ene feb mar abr may jun jul ago sep oct nov dec; -2 20 -1 11 -8 10 12 5 10 13 -2 20 1 13 -5 12 14 6 12 14 2 22 6 16 0 16 16 7 12 15 8 23 13 20 7 20 21 10 13 16 14 26 18 23 14 23 26 13 14 17 19 27 23 27 19 27 31 16 15 19 21 28 26 27 22 28 33 18 15 21 20 28 25 27 20 28 32 18 16 22 16 27 21 26 16 26 30 16 17 21 10 26 15 21 10 21 23 12 16 19 4 23 7 16 2 16 16 8 14 16 -1 20 1 12 -5 12 12 6 11 14

PROC PRINT DATA = celsius; TITLE 'Temperatura media mensual en grados Celsius'; ID Ciudad; VAR ene feb mar abr may jun jul ago sep oct nov dec; RUN;

5.- El fichero 'curso.csd' contiene la informacin relativa a una serie de cursos que se han organizado. Las variables de inters son el cdigo del curso, el organizador, el cdigo de inicio y si ha generado deudas o no. Se pide, a) Crear un fichero de nombre dat.cursos b) Obtener una tabla de frecuencias del cdigo de inicio. c) Obtener una tabla de frecuencias del cruce de las variables organizacin y deudas pero mostrando nicamente el porcentaje respecto del total. d) Sabiendo que los cdigos de organizacin son: 1. 1 Eulogio 2. 2 Adelaida 3. 3 Macario crear un formato adecuado para imprimir la deuda en funcin de los organizadores. (1.7 puntos)
DATA cursos; INFILE 'G:\Datos\curso.csd'; INPUT COD $ orga inicio deudas; PROC PRINT DATA = cursos; RUN; PROC FREQ DATA=cursos; table inicio; table orga*deudas / NOCOL NOROW; RUN; PROC FORMAT; value adecuado 1 = 'Eulogio' 2 = 'Adelaida' 3 = 'Macario'; RUN; PROC PRINT DATA = cursos; FORMAT orga adecuado. ; VAR deudas; BY orga; RUN;

6.- El fichero de datos Calidad de vida.dat contiene los datos de las respuestas a una encuesta sobre la calidad de vida de una serie de personas. La estructura del fichero es como sigue: Cdigo del sujeto qul3a qul3b qul3c qul3d qul3e qul3f qul3g qul3h qul3i qul3j Las respuestas posibles a la preguntas son: 1 2 3. Si una pregunta tiene una codificacin diferente a 1, 2, 3 entonces esa respuesta es errnea y el sujeto debe ir al fichero de sujetos eliminados, en otro caso ir al fichero de sujetos vlidos. Se pide depurar el fichero de datos sabiendo que nicamente se puede emplear dos instrucciones condicionales. (1.6 puntos)
DATA qul errors; input subj qul3a qul3b qul3c qul3d qul3e qul3f qul3g qul3h qul3i qul3j; array bounds (3) error1 - error3 (1 2 3); array quldata (10) qul3a -- qul3j; flag = 0; do i = 1 to 10; if quldata(i) ne bounds(1) and quldata(i) ne bounds(2) and quldata(i) ne bounds(3) then flag = 1; end; if flag = 1 then output errors; else output qul; drop i flag; DATALINES; 110011 1 2 3 3 3 3 2 1 1 3 210012 2 3 4 1 2 2 3 3 1 1 211011 1 2 3 2 1 2 3 2 1 3 310017 1 2 3 3 3 3 3 2 2 1 411020 4 3 3 3 3 2 2 2 2 2 510001 1 1 1 1 1 1 2 1 2 2 ; RUN; PROC PRINT data = qul; TITLE 'Observations in Qul data set with no errors'; RUN; PROC PRINT data = errors; TITLE 'Observations in Qul data set with errors'; RUN;

7.- Se quiere estimar la esperanza de vida femenina a nivel mundial y por regiones econmicas. La informacin que se dispone es la que se encuentra en Mundo95.sas7bdat. Para realizar esta estimacin tienes que realizar un muestreo con remplazamiento del 10% de los efectivos agrupados por regin econmica. Cul de las regiones econmicas presenta una esperanza de vida ms cercana a la del mundo en 1995? (1.7 puntos) Del problema 1 tenemos:
PROC FREQ DATA = SF1.Mundo95; tables regi_n; RUN; /* Hay 6 regiones econmica */ DATA reg1 reg2 reg3 reg4 SET SF1.Mundo95; IF regi_n = 1 ELSE IF regi_n = 2 ELSE IF regi_n = 3 ELSE IF regi_n = 4 ELSE IF regi_n = 5 ELSE RUN; reg5 reg6; THEN THEN THEN THEN THEN OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT reg1; reg2; reg3; reg4; reg5; reg6;

Trabajamos con la regin 1. Fichero reg1; Que tiene 21 paises, un 10% son 2. Entonces para la primera region:
DATA Alea_Reg1; DO i=1 to 2; nume = 20*ranuni(9)+1; SET reg1 POINT = nume; OUTPUT; END; STOP; PROC PRINT DATA = Alea_Reg1; RUN; PROC MEANS DATA = Alea_Reg1 MEAN; VAR espvidaf; RUN; PROC MEANS DATA = SF1.Mundo95 MEAN; VAR espvidaf; RUN;