• Nenhum resultado encontrado

USO DE MACROS NO SAS

N/A
N/A
Protected

Academic year: 2021

Share "USO DE MACROS NO SAS"

Copied!
7
0
0

Texto

(1)

Euclides Braga MALHEIROS* O uso de Macros no SAS permite que uma variável ou uma seqüência de comandos SAS seja chamado qualquer número de vezes. É o mesmo princípio de subrotinas utilizado na maioria das linguagens de programação.

O SAS permite vários tipos de macros, alguns deles serão discutidos aqui.

1.

Macro variáveis.

Uma macro variável permite definir um valor a uma variável no SAS. Sintaxe para definir a macro:

%LET <nome>=<valor>;

Sintaxe para chamar a macro:

&<nome>

Para exemplificar considere o conjunto de dados de um Delineamento Inteiramente Casulizado, com 5 variáveis: Tratamento (TR), Repetição (RP) e as variáveis dependentes Y1, Y2 e Y3, apresentado na Tabela1.

Tabela 1. Dados de experimento Inteiramente Casualizado com 5 tratamentos e 3 repetições. (Dados fictícios)

TR RP Y1 Y2 Y3 1 1 11,82 14,86 13,84 1 2 12,07 14,44 13,92 1 3 12,45 14,18 13,76 2 1 12,47 15,19 15,02 2 2 11,07 13,38 14,61 2 3 10,66 14,22 13,54 3 1 12,92 14,49 13,40 3 2 10,29 14,42 14,62 3 3 12,83 13,92 15,69 4 1 11,96 14,71 14,98 4 2 13,38 15,07 13,62 4 3 10,37 15,78 13,33 5 1 11,05 13,18 14,61 5 2 10,63 13,14 14,53 5 3 13,43 14,08 14,23

(2)

A partir desses dados foi criado um arquivo ASC II com o nome MAC_V.TXT, disponível no site do curso.

Exercício 1:

• Fazer download do arquivo MAC_V.ZIP, disponível no site do curso, para a pasta de

trabalho e descompactá-lo.

• Fazer um programa SAS para a análise do experimento Delineamento Inteiramente

Casualizado, permitinto estabelecer as possíveis variações do programa, como: o Título da análise,

o Arquivo ASC a ser importado, o Primeiro Registro com Dados,

o Número de variáveis a serem analisadas (variáveis dependentes), o Tipo de teste de comparações múltiplas e

o Tipo de teste de Homocedasticidade, sejam definidas como variáveis macro.

Programa:

/************* MACRO VARIAVEIS **********/ /* DELINEAMENTO INTERAMENTE CASUALIZADO */ /****************************************/

/*--- REDEFINA AS OPCOES DESEJADAS ---*/ %LET TITULO="EXEMPLO MACRO VARIÁVEIS"; /* TITULO */ %LET AASC="A:\MAC1.TXT"; /* ARQUIVO ASC II */ %LET PRD=1; /* PRIMEIRO REGISTO DE DADOS – FIRSTOBS */ %LET NVD=3; /* NUMERO DE VARIAVEIS DEPENDENTES */ %LET TCM=TUKEY; /* TESTE DE COMPARACOES MULTIPLAS */ %LET THV=LEVENE; /* TESTE DE HOMOGENEIDADE DE VARIANCIA */ /*---*/ OPTION LS=78 PS=64 PAGENO=1;

TITLE &TITULO; DATA M1;

INFILE &AASC FIRSTOBS=&PRD; INPUT TR RP Y1-Y&NVD;

PROC GLM; CLASS TR RP;

MODEL Y1-Y&NVD=TR/SS3; MEANS TR/&TCM HOVTEST=&THV;

OUTPUT OUT=AE STUDENT=ER1-ER&NVD; RUN;

PROC UNIVARIATE DATA=AE NORMAL PLOT; VAR ER1-ER&NVD;

(3)

2. Macro funções.

Uma macro função permite definir uma função a ser usada no programa. Sintaxe para definir a macro:

%macro <nome(lista de argumentos - separados por ,)>;

expressão que define a função usando o argumento precedido por &

%mend <nome>;

Para usar a função:

%<nome(valores para os argumentos)>

Para exemplificar considere o conjunto de dados de um Delineamento Inteiramente Casulizado, com 5 variáveis: Tratamento (TR), Repetição (RP) e as variáveis dependentes Y1, Y2 e Y3, apresentado na Tabela 2.

Tabela 2. Dados de experimento Inteiramente Casualizado com 5 tratamentos e 3 repetições. (Dados fictícios)

TR RP Y1 Y2 Y3 1 1 15 0,486 78,5 1 2 16 0,444 80,6 1 3 14 0,418 83,8 2 1 25 0,519 83,9 2 2 21 0,338 72,3 2 3 12 0,422 68,8 3 1 11 0,449 87,7 3 2 21 0,442 65,8 3 3 30 0,392 86,9 4 1 24 0,471 79,7 4 2 13 0,507 91,5 4 3 11 0,578 66,4 5 1 21 0,318 72,1 5 2 21 0,314 68,6 5 3 18 0,408 91,9 Exercício 2:

• Fazer download do arquivo MAC_FC.ZIP, disponível no site do curso, para a pasta de trabalho e descompactá-lo.

• Fazer um programa SAS para ler os dados MAC_FC.TXT e transformar as variáveis: Y1 em raiz quadrada de (Y1+0,5); Y2 e Y3 em arco seno da raiz da porcentagem.

(4)

• Definir a transformação como macro função.

• Fazer a correlação entre as variáveis originais e entre as variáveis transformadas.

Programa: /************* MACRO FUNCOES **********/ /* TRANSFORMACAO DE DADOS */ /****************************************/ /*---DEFINICAO DA MACRO---*/ %MACRO RAIZ(X,ALFA); SQRT(&X+&ALFA) %MEND RAIZ; %MACRO ASRP(X,DIV,ALFA); ARSIN(SQRT(&X/&DIV)+&ALFA) %MEND ASRP; /*---*/ OPTIONS LS=78 PS=64 PAGENO=1; DATA MF;

INFILE "A:\MAC_FC.TXT" FIRSTOBS=2; INPUT TR RP Y1-Y3;

YT1=%RAIZ(Y1,0,5); YT2=%ASRP(Y2,1,0); YT3=%ASRP(Y3,100,0); PROC PRINT; RUN; PROC CORR; VAR Y1-Y3; RUN; PROC CORR; VAR YT1-YT3; RUN;

3. Macro subprograma.

Uma macro subprograma permite definir uma rotina à parte que pode ser chamada tantas vezes quantas precisar.

Sintaxe para definir a macro:

%MACRO <nome>;

<subprograma>

%mend <nome>;

Sintaxe para chamar a macro:

(5)

Para exemplificar considere o conjunto de dados de um Delineamento Inteiramente Casulizado, com 4 variáveis: Tratamento (Trat), Repetição (Rep) e as variáveis dependentes Y1 e Y2, apresentado na Tabela 3.

Tabela 3. Dados de experimento Inteiramente Casualizado com 5 tratamentos e 4 repetições. (Dados fictícios)

Trat Rep Y1 Y2 1 1 2370 14,236 1 2 1687 14,478 1 3 2592 14,519 1 4 2283 13,888 2 1 1282 13,928 2 2 1527 13,777 2 3 871 14,444 2 4 1025 13,061 3 1 562 14,073 3 2 321 13,406 3 3 636 13,607 3 4 317 14,411 4 1 173 15,088 4 2 127 13,583 4 3 132 13,697 4 4 150 13,636 5 1 193 15,349 5 2 71 16,502 5 3 82 15,175 5 4 62 15,022 Exercício 3:

Fazer download do arquivo MAC_SP1.XLS, disponível no site do curso, para a pasta de trabalho.

• Criar um SDS importando o arquivo do direto do Excel.

• Fazer um programa SAS para realizar a análise de regressão entre o Log da variância e o Log da média usada para avaliar o tipo de heterocedasticidade (regular ou irregular) e, se for regular indicar a transformação de dados a ser usada, para cada variável dependente.

Como criar o SAS DATA SET (SDS) importando o arquivo do Excel

PROC IMPORT OUT=SDS DATAFILE="ARQ.XLS" DBMS=EXCEL2000 REPLACE; SHEET="PLANILHA$";

GETNAMES=YES; RUN;

Onde: SDS – é o nome do SAS DATA SET a ser criado

ARQ. XLS – é o arquivo a ser importado, icluindo o caminho onde ele se encontra.

(6)

Programa:

/************** USO DE MACROS *************/ /* TESTE PARA A ESCOLHA DA TRANSFORMACAO */ /******************************************/ /****************** DEFINA AS OPCOES *****************/ %LET TITULO="MACRO SUBPROGRAMA";

%LET TTCM=TUKEY;

/*****************************************************/ /*---MACRO---*/ %MACRO BARTL;

PROC MEANS NOPRINT;

OUTPUT OUT=SDSB MEAN=M VAR=V; BY TR; VAR Y; RUN; DATA SDSB; SET SDSB; LM=LOG(M); LV=LOG(V); RUN; PROC REG; MODEL LV=LM; RUN; %MEND BARTL; /*---PROGRAMA PRINCIPAL---*/ TITLE &TITULO; OPTIONS LS=78 PS=64;

PROC IMPORT OUT=A DATAFILE="A:\MAC_SP1.XLS" DBMS=EXCEL2000 REPLACE; SHEET="PLAN1$";

GETNAMES=YES; RUN;

PROC PRINT DATA=A; RUN;

DATA A; SET A;

TITLE "TESTE DE BARTLET PARA Y1"; Y=Y1;

%BARTL

RUN;

DATA A; SET A;

TITLE "TESTE DE BARTLET PARA Y2"; Y=Y2;

%BARTL

RUN;

4. Macro subprograma com parâmetros.

Uma macro subprograma permite definir uma rotina à parte, variando alguns parâmetros, que podem ser parâmetros de entrada ou de saída. A rotina pode ser chamada tantas vezes quantas precisar.

(7)

Sintaxe para definir a macro:

%macro <nome(par1,par2, ... )>;

<comandos incluindo os parâmetros precedidos por & (ex: &par1, &par2, ...)

%mend <nome>;

Sintaxe para chamar a macro:

%<nome(v_par1,v_par2, ... )>

onde v_par1, v_par2 são os valores dos parâmetros par1, par2, respectivamente.

Exercício 4:

Fazer download do arquivo MAC_SP2.txt, disponível no site do curso, para a pasta de trabalho.

• Criar um SDS importando o arquivo ASC, com as variáveis A, B, C, RP e Y. • Fazer um programa SAS para analisar esses dados, usando subprograma para os

desdobramentos das interações duplas.

Programa:

/******************************************/ /* DESDOBRAMENTO DA INTERAÇAO */ /* COM O USO DE MACRO */ /******************************************/ %LET AASC="A:\MAC_SP3.TXT"; %MACRO DESD(FA,FB); LSMEANS &FA*&FB/SLICE=&FA; LSMEANS &FA*&FB/SLICE=&FB; %MEND DESD; /********PROGRAMA PRINCIPAL ***************************/ OPTIONS LS=78 PS=64 PAGENO=1; DATA MSP3;

INFILE &AASC FIRSTOBS=2; INPUT A B C RP Y; TR=(A-1)*6+(B-1)*2+C; PROC PRINT; RUN; PROC GLM DATA=MSP3; CLASS TR RP; MODEL Y=TR/SS3; MEANS TR/HOVTEST;

OUTPUT OUT=AE STUDENT=ER; RUN;

PROC UNIVARIATE DATA=AE NORMAL PLOT; VAR ER;

RUN; PROC GLM;

CLASS A B C RP;

MODEL Y=A B C A*B A*C B*C A*B*C/SS3; %DESD(A,B);

%DESD(A,C); %DESD(B,C); RUN;

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Durante este estágio, passei a maior parte do tempo no internamento do serviço mas também estive algumas noites no serviço de urgências, para além das consultas externas

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

Exibe um semáforo que indica os dias de atraso como uma porcentagem do período de tempo da tarefa de resumo ou do projeto, que é a data de término menos a data de início.. Se o

Este estudo apresenta como tema central a análise sobre os processos de inclusão social de jovens e adultos com deficiência, alunos da APAE , assim, percorrendo