Professional Documents
Culture Documents
SAS
O ESSENCIAL DA LINGUAGEM
EDUARDO PAGEL FLORIANO IVANOR MLLER PAULO RENATO SCHNEIDER LUIS FELIPE DIAS LOPES
Floriano, Eduardo P. SAS O essencial da linguagem, 2ed. Eduardo Pagel Floriano, Ivanor Mller, Paulo Renato Schneider, Luis Felipe Dias Lopes. Santa Maria: UFSM(PPGEFPPGMQ) / Ambiente Inteiro, 2007. 211p.
SAS O
E SS E N C I A L D A L I N G U A G E M
M.Sc. Eduardo Pagel Floriano1 Prof. Dr. Ivanor Mller2 Prof. Dr. Paulo Renato Schneider3 Prof. Dr. Luis Felipe Dias Lopes4 Santa Maria, 16 de maro de 2007. PPGEF - Programa de Ps-Graduao em Engenharia Florestal PPGEMQ - Programa de Ps-Graduao em Estatstica e Modelagem Quantitativa UFSM Associao de Pesquisa, Educao e Proteo Ambiental <http://www.ambienteinteiro.org.br>
1 Engenheiro Florestal. Doutorando do Programa de Ps-Graduao em Engenharia Florestal da Universidade Federal de Santa Maria, RS. Mailto: eduardofloriano@correios.net.br 2 Engenheiro Florestal, Licenciado em Matemtica. Professor do Programa de Ps-graduao em Estatstica e Modelagem Quantitativa da Universidade Federal de Santa Maria, RS. Mailto: ivanormuller@smail.ufsm.br 3 Engenheiro Florestal. Professor do Programa de Ps-Graduao em Engenharia Florestal da Universidade Federal de Santa Maria, RS. Mailto: paulors@smail.ufsm.br 4 Licenciado em Matemtica. Professor do Programa de Ps-graduao em Estatstica e Modelagem Quantitativa da Universidade Federal de Santa Maria, RS. Mailto: lflopes@ccne.ufsm.br
Apresentao
Este Manual foi concebido para auxiliar nos primeiros passos com a programao na linguagem do SAS System, para uso na Engenharia Florestal e cincias correlatas. Os manuais originais do SAS so escritos em lngua Inglesa e somam mais de dezenas de milhares de pginas, dificultando o seu uso. O objetivo deste documento o de servir de guia, em lngua portuguesa, para as principais aplicaes da linguagem SAS. No se pretende substituir os manuais originais, mas facilitar o acesso ao que se considera o mais importante da linguagem. Este manual foi dividido em trs volumes. No primeiro volume, SAS O essencial da linguagem, procurou-se descrever a linguagem de forma que possa servir de guia geral para quem est iniciando a desenvolver programas. No segundo volume, SAS O essencial da linguagem para Engenheiros Florestais, so
apresentados exemplos de aplicaes na pesquisa, administrao e controle de florestas econmicas. O terceiro volume, SAS Anlise da estrutura florestal e anlise multivariada aplicada fitossociologia, dedicado a aplicaes teis no estudo de florestas nativas. Os captulos do primeiro volume so organizados em seqncia apropriada para aprendizagem passo a passo, sem mestre. Os trs primeiros captulos explicam a estrutura da linguagem SAS. Para
aprender a programar, portanto, aconselhvel ler e realizar os exerccios desta parte inicial integralmente. O Captulo IV refere-se formatao de dados de entrada e de sada e o Captulo V diz respeito s funes pr-programadas da linguagem; destes dois, IV e V, recomenda-se a leitura da introduo e o estudo das seces sobre sintaxe, o restante pode ser utilizado somente para consulta, quando necessrio, durante a elaborao de um programa, no sendo de leitura obrigatria. Do Captulo VI em diante, so descritos resumidamente os principais procedimentos da linguagem, entitulados de PROC. O segundo e terceiro volumes esto em fase de elaborao e contm aplicaes prontas, em linguagem SAS, para a rea florestal. So programas que podem ser utilizados na atividade profissional do Engenheiro Florestal, ou profissional de rea correlata, na forma em que foram escritos, ou modificados pelo usurio para adapt-los a situaes semelhantes, quando necessrio.
Contedo
Introduo...........................................................................................................1
CONVENSES UTILIZADAS .................................................................................................... 2
Menus ................................................................................................................................................ 2 Exemplos ........................................................................................................................................... 3 Sintaxe............................................................................................................................................... 3 Valores perdidos................................................................................................................................ 4
2.4 OPERANDOS................................................................................................................ 31 2.5 OPERADORES .............................................................................................................. 31 2.6 EXPRESSES .............................................................................................................. 34 2.7 INSTRUES................................................................................................................ 35 2.8 DECLARAES ............................................................................................................ 36 2.9 FUNES .................................................................................................................... 37
3.2 FORMATOS DE ENTRADA E SADA (INPUT/PUT) ............................................................ 42 3.3 PROCEDIMENTOS ESSENCIAIS COM O DATA STEP ........................................................... 46
3.3.1 PROC APPEND...................................................................................................................... 46 3.3.2 PROC SORT .......................................................................................................................... 47
4.1.1 Formatos de sada definidos pelo usurio ............................................................................. 76 4.1.2 Formatos de sada para variveis de caracteres ................................................................... 77 4.1.3 Formatos de sada para variveis numricas ........................................................................ 78 4.1.4 Formatos de sada para variveis de data_e_horrio............................................................ 79
Captulo 7 : PROC CHART / PROC GCHART ...............................................115 Captulo 8 : PROC CORR ...............................................................................120
8.1 SINTAXE:................................................................................................................... 120 8.2 OPES DO PROCEDIMENTO: ..................................................................................... 120 8.3 INSTRUES DO PROCEDIMENTO: ............................................................................... 122
8.3.1 BY (instruo)...................................................................................................................... 122 8.3.2 FREQ (instruo).................................................................................................................. 122 8.3.3 PARTIAL (instruo)............................................................................................................. 123 8.3.4 VAR (instruo) .................................................................................................................... 123 8.3.5 WEIGHT (instruo) ............................................................................................................. 123 8.3.6 WITH (instruo)................................................................................................................... 124 8.3.7 Valores perdidos (missing values)........................................................................................ 124 8.3.8 Arquivos de sada TYPE=CORR.......................................................................................... 124
13.1.3 PAGEBY (instruo)........................................................................................................... 168 13.1.4 SUMBY (instruo)............................................................................................................. 168 13.1.5 ID (instruo) ...................................................................................................................... 169 13.1.6 SUM (instruo).................................................................................................................. 169 13.1.7 VAR (instruo) .................................................................................................................. 169
Referncias .....................................................................................................211
Introduo
O SAS foi idealizado como um pacote estatstico, mas, com o passar do tempo, o Instituto SAS produziu um sistema muito complexo chamado de SAS System . O SAS System considerado o mais completo pacote estatstico produzido at hoje, entretanto, vai muito alm disso, podendo ser visto como: Gerenciador de bancos de dados; Conversor de dados entre sistemas operacionais; Sistema de informaes geogrficas (SIG); Linguagem de programao estruturada e orientada a objetos; Linguagem matemtica com clculo matricial; Gerador de grficos em alta resoluo; Sistema de programao linear.
Assim, com esta profuso de funes, os manuais do SAS System acabaram por se tornar muito extensos e algo confusos, dificultando o seu uso. Entretanto, o poder da linguagem SAS, para aplicaes estatsticas em reas como a biolgica e a florestal pode ser alcanado com um mnimo de conhecimento sobre o sistema. isso o que se pretende com este manual: descrever o essencial do SAS System para aplicaes estatsticas, de forma a possibilitar o uso do poder do sistema ao usurio leigo em informtica, com nfase na rea da Engenharia Florestal.
1
A programao SAS a que se refere este manual prpria para o SAS System verso 8.2, para microcomputadores em ambiente Windows, na forma programvel. No se tratar da anlise de dados no modo interativo, ou em computadores de grande porte, ou com outro sistema operacional, exceto nos casos em que se julgar adequado.
Convenses utilizadas
As principais convenes e metodologias de descrio da linguagem SAS utilizados, sejam prprias do SAS System, ou deste manual, so descritas a seguir. Os manuais do SAS System constituem uma enciclopdia de muitos milhares de pginas que descrevem todas as suas possibilidades. Neste manual so descritos somente o que se considerou essenciais para se usar na rea biolgica, com especial ateno s aplicaes na Engenharia Florestal. Muitas opes dos procedimentos foram omitidas para se evitar escrever um volume muito extenso. Para informaes sobre todas as possibilidades do SAS System, o leitor deve acessar seus manuais on line, disponveis para download em PDF, na URL
Menus
As referncias no texto, feitas aos menus da barra de menus do SAS System (Figura 1), so realizadas seqencialmente, conforme sua hierarquia, entre barras verticais, como em |FILE|SAVE|, que identifica o
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
menu |File| e seu submenu |Save|, utilizado para acessar a janela de salvamento de arquivos.
Exemplos
Neste manual, os exemplos e linhas de programa so escritos em negrito tamanho 8, limitados esquerda por uma barra vertical cinza de 6 pontos de largura com recuo de 4 pontos esquerda, seguidos de uma outra barra e de uma coluna com nmeros ilustrativos direita, os quais no fazem parte do programa. Esses servem exclusivamente para fazer referncias explicativas s linhas do programa no texto, como nas duas linhas de comentrio (Linhas 1 e 2) a seguir:
* EXEMPLO DE LINHA DE COMENTRIO NO SAS SYSTEM; /* UMA LINHA DE COMENTRIO TAMBM PODE SER ASSIM. */ 1 2
Sintaxe
Sintaxe o formato geral de um comando, instruo ou declarao na programao SAS, que deve ser seguido para que funcione. As linhas de sintaxe so escritas em negrito tamanho 8, limitados esquerda por uma barra vertical cinza de 6 pontos de largura, com recuo esquerda de 1,5 cm, como a seguir:
PROC SORT <data=ArquivoDeEntrada> <OUT=ArquivoDeSaida> <Opes>; BY <DESCENDING> Variavel-1 ...<<DESCENDING> Variavel-n>;
As descries de sintaxe so compostas por partes obrigatrias e partes opcionais. As partes opcionais na descrio da sintaxe sempre esto entre os sinais < > (que no devem ser escritos no programa). Os nomes e outras palavras que devem ser definidos pelo usurio ou
programador so especificados sem espaos, com as palavras justapostas, sendo a primeira letra de cada palavra escrita em maisculo e as demais em minsculo, como no exemplo a seguir, onde a expresso 'nome do array' est escrita como NomeDoArray e a palavra 'subscrito' est escrita como Subscrito:
NomeDoArray{Subscrito}<$>;
As palavras utilizadas com todas as letras maisculas so palavras do sistema e as que usam a primeira letra de cada palavra (nica ou justaposta) so nomes que o usurio deve escolher, sejam de opes do sistema ou nomes definidos pelo usurio.
Valores perdidos
Valor perdido (ou faltante), entendido como a inexistncia de contedo em um ou mais registros de uma ou mais variveis de um arquivo SAS. Quando no existe valor em uma varivel, o caracter utilizado o ponto (.). Portanto, sempre que houver falta de um valor nos arquivos de dados, nos vetores, ou em matrizes, este deve ser informado como um ponto (.). Quando o contedo de um arquivo impresso e faltam valores em registros e colunas, impresso um ponto (.) no local de cada valor que falta. Valores perdidos so sempre os primeiros de um ordenamento ascendente e os ltimos no descendente. Em experimentos com parcelas perdidas, o seu valor deve ser informado como um ponto (.). Ento, o sistema entende que aquela
4
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
parcela foi perdida e no a considera. Entretanto, se o resultado nulo deve ser considerado como conseqncia do efeito dos tratamentos, o valor que deve ser informado para que o sistema o considere zero (0). Observao: alguns procedimentos do SAS System permitem que o usurio informe que os valores perdidos devem ser considerados na anlise.
aconselhvel que sejam includas linhas de identificao no incio do programa, atravs de frases de comentrio, iniciando-as por um asterisco seguido de um espao branco, o que torna a frase sem efeito na programao, podendo-se escrever, na seqncia, qualquer palavra, letra ou nmero, finalizando a linha com ponto-e-vrgula. A identificao do programa pode incluir o nome do mesmo, o que ele realiza, a data e o nome do programador. Pode-se incluir tantas frases de comentrio quantas forem necessrias, iniciando cada uma por um asterisco, seguido de espao branco e finalizando com ponto-e-vrgula. Um programa SAS em ambiente WINDOWS deve ter, como ltimas, as linhas:
Em que: RUN; a linha que diz ao sistema operacional que execute o programa; QUIT|EXIT; a linha que instrui o sistema operacional para encerrar a execuo do programa ( de uso opcional, mas faz com que o programa no fique aguardando novos passos e encerre mais rapidamente).
RUN; QUIT|EXIT; 1 2
O SAS System para WINDOWS possui trs reas principais (ou janelas) relacionadas programao bsica e estatstica: Editor, Log e Output. No Editor so editados os arquivos de programas e de dados, que devem ser salvos da mesma forma que os textos do MS-WORD, mas devem ter a terminaes .SAS e .DAT, respectivamente. Um arquivo
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
SAS de programa, ou de dados, pode ter um nome composto da mesma forma que qualquer outro arquivo WINDOWS. O Log um relatrio com a descrio do que aconteceu durante a execuo do programa. O Output o relatrio de sada com os resultados do processamento. Exemplos de nomes de programas SAS: Programa.sas; Regresso.sas; Programa-reg01.sas. Exemplo de nomes de arquivos de dados: Dados.dat; Arquivo.dat; Arquivo_de_dados01.dat. Ao se abrir o SAS System no WINDOWS, automaticamente so geradas as trs janelas: Editor, Log e Output (Figura 1). Para salvar um arquivo de programa, clique no menu |File|Save| (Figura 2A) e escolha a opo salvar como tipo |SAS Files (*.sas)| (Figura 2B). Para salvar um arquivo de dados, clique no menu |File|Save| (Figura 2A) e escolha a opo salvar como tipo |DATA Files (*.dat)| (Figura 2C).
6. Aba de resultados 7. Aba do explorador 8. Janela do editor 9. Janela do arquivo de log 10. Janela do relatrio (sada)
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
(2A)
(2B)
9
(2C) FIGURA 2 Salvando (2A) programas (2B) e dados (2C) em disco. Depois de salvo, o programa pode ser executado utilizando o atalho na barra de atalhos ou o menu |Run|Submit|, como na Figura 3.
FIGURA 3 Execuo de um programa atravs da barra de menus. O Editor (Program Editor) e os relatrios podem ser acessados atravs do menu |View| (Figura 4).
10
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
Editor
Na janela do Editor pode-se escrever os programas ou dados e salvar em disco de forma semelhante a outros editores de texto. Os arquivos de programas devem ser salvos com nomes do tipo nomedoprograma.sas e arquivos de dados devem ser salvos com nomes do tipo arquivodedados.dat. O arquivo de programa
exemplo.sas a seguir, contm 22 linhas de programao, sendo 3 de comentrios que identificam o programa, 15 linhas de DATA STEP onde 11 so de dados, duas de PROC STEP, uma de execuo e uma de finalizao.
* PROGRAMA DE EXEMPLO (EXEMPLO.SAS); * 17/01/2005; * EDUARDO PAGEL FLORIANO; DATA ARQ; INPUT X Y Z; CARDS; 5 8 3.26 1 2 3 4 5 6 7
11
Log .
Log uma crnica ou crtica que o sistema faz, enquanto um programa est sendo executado, sobre o que foi realizado, relatando a execuo e os possveis erros. Aps a execuo do programa, o SAS System informa o que aconteceu durante a execuo do programa na janela de Log. Os erros porventura existentes so relatados, localizados e identificados para que o programador possa corrig-los. No caso do programa exemplo.sas, no houve erros e o relatrio de Log o seguinte:
1 * PROGRAMA DE EXEMPLO; 2 * 17/01/2005; 3 * EDUARDO PAGEL FLORIANO; 4 DATA ARQ; 5 INPUT X Y Z; 6 CARDS; NOTE: THE DATA SET WORK.ARQ HAS 11 OBSERVATIONS AND 3 VARIAVELS. NOTE: DATA (INSTRUO) USED: REAL TIME 0.20 SECONDS CPU TIME 0.20 SECONDS 18 ; 19 PROC REG DATA=ARQ; 20 MODEL Z=X Y; 21 RUN; NOTE: 11 OBSERVATIONS READ. NOTE: 11 OBSERVATIONS USED IN COMPUTATIONS.
12
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
22 QUIT|EXIT; NOTE: PROCEDURE REG USED: REAL TIME 0.60 SECONDS CPU TIME 0.60 SECONDS
Output
O relatrio de sada do programa exemplo.sas o seguinte:
THE SAS SYSTEM THE REG PROCEDURE MODEL: MODEL1 DEPENDENT VARIAVEL: Z ANALYSIS OF VARIANCE SUM OF MEAN SOURCE DF SQUARES SQUARE F VALUE PR > F MODEL 2 2.50102 1.25051 9.37 0.0080 ERROR 8 1.06765 0.13346 CORRECTED TOTAL 10 3.56867 ROOT MSE 0.36532 R-SQUARE 0.7008 DEPENDENT MEAN 4.14545 ADJ R-SQ 0.6260 COEFF VAR 8.81246 PARAMETER ESTIMATES PARAMETER STANDARD VARIAVEL DF ESTIMATE ERROR T VALUE PR > |T| INTERCEPT 1 2.24246 0.84499 2.65 0.0291 X 1 0.22266 0.14120 1.58 0.1535 Y 1 -0.00774 0.01450 -0.53 0.6081
O SAS System permite salvar este relatrio no formato rich text format (rtf), que pode ser lido diretamente em qualquer editor de textos como o MS-Word, onde pode ser editado e modificado. Para tanto, basta clicar na aba da janela de Output para torn-la ativa, acessar o menu |File|Save as| e selecionar o formato rtf. Existe um outro formato de sada mais elaborado que pode ser ativado atravs do menu |Tools|Opes|Preferences...|, na aba |Results|, marcando-se a caixa de seleo |Create HTML| (Figura 5). O relatrio HTML gerado pelo SAS System apresenta os resultados no formato de tabela. As tabelas do relatrio de sada podem ser copiadas e coladas em outros locais. O relatrio HTML pode ser aberto
13
no MS-Word e alterado, podendo depois ser salvo com a terminao .doc no formato do prprio MS-Word.
14
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________
Podem ser entendidos como rotinas de programao do sistema que realizam clculos complexos, conforme a metodologia descrita nos manuais originais do SAS System, que se baseiam em obras cientficas consagradas. Alm dos procedimentos bsicos, que so essenciais para se trabalhar com a linguagem, na rea florestal os mais importantes so os relacionados com estatstica (inclundo clculos e produo de grficos), programao linear e processamento de informaes geogrficas. Neste manual dada nfase aos procedimentos de estatstica e de programao linear. Os captulos dedicados aos passos de programao de
procedimentos abrangem: PROC ANOVA; PROC CHART; PROC CORR; PROC FREC; PROC GLM; PROC MEANS; PROC MODEL; PROC PLOT; PROC PRINT; PROC REG; PROC UNIVARIATE.
Os procedimentos (PROC) bsicos do SAS System so utilizados para manipular arquivos, obter estatsticas simples uni e bivariadas, para formatar variveis e emitir relatrios, entre outros. Maiores detalhes sobre os procedimento bsicos citados so encontrados no manual 'SAS Institute. SAS Procedures Guide, v. 8.
15
Cary, NC: SAS Institute, 1999. 1729 p.', no qual os captulos deste manual so baseados. Para aplicao nas cincias rurais e biolgicas, considera-se essencial conhecer os procedimentos bsicos relacionados a seguir: Procedimentos bsicos estatsticos Geralmente no vivel medir todos os indivduos de uma populao. Ento, procura-se medir alguns inivduos que a representem. Uma coleo de valores medidos sobre uma parte dos indivduos de uma populao chamada de amostra. O resultado de uma funo matemtica executada sobre valores de uma amostra chamada de estimador (SAS Institute, 1999), enquanto que o resultado obtido atravs de todos os indivduos da populao chamado de parmetro. habitual representar estimadores por caracteres arbicos e parmetros por letras gregas. Dentre todos os procedimentos estatsticos bsicos do SAS System h trs que oferecem juntos todas as possibilidades de clculos e relatrios dos demais, so o PROC UNIVARIATE, o PROC FREQ e o PROC CORR; alm dos relatrios emitidos por eles, ainda apresentam a opo de emitir arquivos de sada com os quais se pode produzir todos os tipos de relatrios emitidos pelos demais procedimentos bsicos estatsticos com auxlio do PROC PRINT. Dois procedimento que apresentam grande utilidade pela sua simplicidade so o PROC MEANS e o seu correlato PROC SUMMARY; ambos fazem os mesmos clculos de forma semelhante, mas o primeiro apresenta relatrios mais elaborados e o segundo apresenta a posibilidade de gravar os resultados em um arquivo de sada sem emitir relatrios. Assim, este manual ser restrito a esses seis procedimentos. Os demais procedimentos bsicos estatsticos so: PROC TABULATE, PROC REPORT e PROC SQL.
16
Floriano, Eduardo P.; Mller, Ivanor; Schneider, Paulo R.; Lopes, Luis Felipe D. ____________________________________________________________________________________