Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Fernando Brito Lopes 
 
 
 
 
 
Goiânia- GO 
2011
ABC DO SAS FERNANDO BRITO LOPES 
 2
SUMÁRIO 
 
SAS ............................................................................................................................................. 4 
SAS em Windows ....................................................................................................................... 6 
Estrutura dos arquivos SAS ........................................................................................................ 8 
Nomenclatura para arquivos e variáveis ................................................................................. 8 
Sintaxe dos comandos ............................................................................................................ 9 
Estrutura data Step .................................................................................................................... 10 
Comando LIBNAME ........................................................................................................... 10 
Comando DATA .................................................................................................................. 11 
Comando INFILE ................................................................................................................. 12 
Comando SET ...................................................................................................................... 12 
Comando INPUT .................................................................................................................. 13 
Estrutura do Proc Step .............................................................................................................. 18 
Comando VAR ..................................................................................................................... 18 
Comando BY ........................................................................................................................ 18 
Comando TITLE .................................................................................................................. 19 
Comando FOOTNOTE ........................................................................................................ 19 
Procedimento PRINT ........................................................................................................... 19 
Procedimento SORT ............................................................................................................. 21 
Arquivo de mensagens - "SAS Log" .................................................................................... 22 
Comandos que lêem e gravam arquivos SAS ....................................................................... 23 
SET ................................................................................................................................... 23 
MERGE ............................................................................................................................ 24 
OUTPUT .......................................................................................................................... 24 
Procedimentos de entrada de dados em SAS ........................................................................... 25 
Comandos básicos de Programação ......................................................................................... 32 
Funções e expressões ............................................................................................................ 32 
Funções numéricas ............................................................................................................... 32 
Comando Retain ................................................................................................................... 33 
Comando IF-THEN/ELSE ................................................................................................... 34 
Operadores de Comparação e Lógicos ................................................................................. 34 
Comando WHERE; .............................................................................................................. 34 
Comandos DO/END ............................................................................................................. 35 
Comando LENGTH .............................................................................................................. 37 
Comandos DROP e KEEP .................................................................................................... 38 
Comando DELETE .............................................................................................................. 39 
Comando OPTIONS ............................................................................................................. 40 
Comando FORMAT ............................................................................................................. 40 
Comando ODS ...................................................................................................................... 41 
Comandos para rápida consulta de contagem........................................................................... 43 
Contagem .............................................................................................................................. 43 
Utilizando Proc Freq ............................................................................................................. 43 
Com Interação....................................................................................................................... 44 
Agrupando com PROC SQL ................................................................................................ 44 
Funções Básicas ........................................................................................................................ 45 
Funções de Truncamento ...................................................................................................... 45 
Funções de Tratamento de Data e Hora................................................................................ 46 
Estatística Descritiva e Teste de Normalidade ......................................................................... 48 
Teste de normalidade ............................................................................................................ 48 
ABC DO SAS FERNANDO BRITO LOPES 
 3
PROC UNIVARIATE .......................................................................................................... 49 
Análise de Correlação e Regressão ...................................................................................... 53 
Correlação de Pearson (PROC CORR) ................................................................................ 54 
PROC CORR ........................................................................................................................ 60 
Regressão (Proc Reg) ........................................................................................................... 62 
PROC REG ........................................................................................................................... 65 
Inferência Estatística................................................................................................................. 72 
Testes para igualdade de duas médias (PROC TTEST) ....................................................... 72 
PROC TTEST ....................................................................................................................... 72 
Análise de Variância ................................................................................................................. 74 
Dados balanceados (PROC ANOVA - GLM) ...................................................................... 74 
PROC ANOVA ....................................................................................................................74 
Teste de Duncan ................................................................................................................... 76 
Teste de Tukey...................................................................................................................... 76 
Teste de Scheffé.................................................................................................................... 76 
Análise dos Três Testes ........................................................................................................ 76 
Modelos Lineares Mistos em Ciências Agrárias ...................................................................... 77 
Experimentos com dados Balanceados................................................................................. 78 
PROC GLM .......................................................................................................................... 79 
PROC MIXED ...................................................................................................................... 81 
Moledagem de Dados ............................................................................................................... 84 
Renumeração de Pedigree ........................................................................................................ 92 
Referências Bibliográficas ........................................................................................................ 97 
Nota .......................................................................................................................................... 98 
Método dos Quadrados Mínimos em Avaliação Genética ................................................... 98 
Procedures MEANS e GLM ........................................................................................... 100 
IML Procedure ................................................................................................................ 100 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 4
SAS 
 
SAS é uma ferramenta de ETL (Extração, Transformação e Loader). É usado 
principalmente para fazer batimentos entre dados com várias origens. 
 
• Extração: Baixar arquivos de várias origens (Oracle, Acces, DB2, Mainframe, .txt ...) 
e salvar como dataset (arquivos sas). 
• Transformação: Usar a linguagem SAS para a transformação (alterar o conteúdo de 
um campo, criar um campo com diferença entre datas...) ou junção de dados (juntar 
dois datasets para criar um único). 
• Loader: Carregar dados do SAS em uma base de dados. Costumamos gerar um 
arquivo texto, usando como origem um dataset e carregamos no Oracle, através do 
Loader do próprio Oracle. 
 
O SAS é um software integrado para análise de dados, que consiste de vários produtos 
que permitem: 
 
• Recuperação de dados; 
• Gerenciamento de arquivos; 
• Análise estatística; 
• Acesso a Banco de Dados (ORACLE, DB2, etc); 
• Geração de gráficos; 
• Geração de relatórios; 
• Geração de aplicativos; 
• Soluções de negócios (Análise de Risco, Gerenciamento de Campanha, “Data 
Mining”); 
 
É um software de grande portabilidade, podendo operar em diversos ambientes 
computacionais: 
 
• Mainframes IBM (CMS, MVS, OS, OS/390, Z/OS) 
• DIGITAL (VMS, OpenVMS) 
• Micros PC (DOS, Windows, OS/2, Apple) 
• UNIX (Solaris, AIX, HP-UX, Irix, Linux) 
 
 
Módulos do SAS 
 
SAS/BASE: Módulo básico, obrigatório em toda instalação; 
SAS/STAT: Módulo estatístico; 
SAS/GRAPH: Módulo gráfico ( Histogramas, plots, entre outros); 
SAS/OR: Módulo de análise e pesquisa operacional (Programação linear, 
Análise de Caminho Crítico); 
SAS/QC: Módulo para análise de controle de qualidade; 
SAS/ETS: Módulo de econometria (Séries Temporais, Modelagem de 
Equações Simultâneas); 
SAS/IML: Módulo para análise e operação de matrizes; 
SAS/Access: Módulo para acesso aos diversos tipos de Banco de Dados; 
ABC DO SAS FERNANDO BRITO LOPES 
 5
SAS/CONNECT: Módulo para conexão entre ambientes operacionais heterogêneos; 
SAS/AF: Módulo para desenvolvimento de aplicações; 
SAS/FSP: Módulo para facilitar o acesso a arquivos com programação de 
telas; 
 
Conceitos básicos 
 
DATA SET Arquivo de dados com estrutura SAS; 
OBSERVAÇÃO Registro de um arquivo de dados SAS; 
JOB SAS Arquivo com um programa SAS (É um conjunto de DATA Step's e 
PROC Step's); 
DATA STEP Divisão lógica de um programa SAS, no qual se cria e altera um, ou 
vários arquivos SAS ( Data Set's ); 
PROC STEP Divisão lógica de um programa SAS, no qual se analisa e manipula os 
dados contidos num arquivo SAS (Data Set's); 
 
OBS: A funcionalidade do Sistema SAS foi construída em torno de quatro idéias básicas no 
tratamento de dados: 
 
1. Acessar dados; 
2. Administrar dados; 
3. Analisar dados; 
4. Apresentar dados; 
 
 
ABC DO SAS 
 
 
Iniciar ���� Programas ���� SAS 
 
O programa SAS irá abrir com segue:
 
 FERNANDO 
SAS em Windows 
SAS ���� SAS 9.0: 
O programa SAS irá abrir com segue: 
ERNANDO BRITO LOPES 
6
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 7
 
Legenda: 
 
1. Área Explorer do SAS: Nesta área será possível visualizar os datasets criados de 
maneira rápida. 
2. Área de Log do SAS: Nesta área é possível ver o resultado das execuções da 
programação feita na ferramenta (é importante verificar sempre, pois é através dessa 
área que saberemos se o programa executou com sucesso ou não). 
3. Área de edição do SAS: Essa área será usada para a programação em SAS 
propriamente dita. Ao salvar, um arquivo com a extensão .sas será criado e poderá ser 
aberto no SAS ou em formato bloco de notas. 
4. Área de Output do SAS: Nesta área poderão ser visualizadas algumas consultas 
feitas no SAS. 
 
 
 
 
 
 
 
 
 
Sempre verifique a área de log, 
para verificar se não houve 
nenhum erro ou informação na 
execução do código. 
ABC DO SAS FERNANDO BRITO LOPES 
 8
Estrutura dos arquivos SAS 
 
O arquivo SAS é um conjunto de dados arrumados num formato de tabela colunada. 
 
ID_Animal ID_Pai ID_Mãe GC OP PN PD205 
100 11 99 1220052 2 29 130 
101 12 98 1220051 3 31 125 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
. 
998 100 101 1320061 5 30 141 
999 102 998 1320082 4 32 136 
 
As colunas nas tabelas são chamadas de variáveis: 
 
• Variáveis correspondem aos campos de dados; 
• Cada variável recebe um nome; 
• Para o SAS, só existem dois tipos de variáveis: 
 
� caractere (até 32K caracteres - 32KBytes) 
� numérica (Representação IEEE - 8Bytes) 
 
As linhas na tabela são chamadas de observações (ou registros). Não existe limite para 
o número de observações. Um Arquivo SAS é dividido em duas partes: 
 
1. Descritora: Contém a descrição do arquivo: Tamanho do arquivo, número de 
registros, nome, tipo, tamanho e formato de variáveis, etc; 
2. Dados: Contém os dados do arquivo. 
 
Nomenclatura para arquivos e variáveis 
 
Todos os nomes de arquivos e variáveis deverão seguir as seguintes regras: 
 
• Possuir de 1 à 32 caracteres; 
• Começar com letra (A-Z); 
• Pode continuar com números, letras ou travessões. 
 
 
Exemplo 01: 
 
Data Nelore2008; 
Infile “C:\Temp\Nelore2008.txt”; 
Input ID_Animal $ 1-3 ID_Pai $ 4-6 ID_Mãe $ 7-9 GC 10-16 OP 17 PN 18-19 
PD205 20-22; 
Run; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 9
 
Sintaxe dos comandos 
 
Todo comando SAS começa com uma palavra-chave (identificação), e termina com o 
ponto e virgula (;). 
 
• Os comandos podem começar e terminar em qualquer parte da linha; 
• Um comando pode se estender por diversas linhas; 
• Vários comandos podem ficar na mesma linha. 
 
Exemplo 02: 
 
Data Nelore2008; 
Infile “C:\Temp\Nelore2008.txt”;Input ID_Animal $ 1-3 
ID_Pai $ 4-6 
ID_Mãe $ 7-9 
GC 10-16 
OP 17 
PN 18-19 
PD205 20-22; 
Run; 
 
Proc Print Data = Nelore2008; 
Run; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 10
Estrutura data Step 
 
• É a seção de um programa SAS, aonde se organizam e administram os dados, 
utilizando comandos de programação do SAS/BASE e alguma lógica de 
processamento. 
• A maioria dos comandos utilizados em DATA Step, só existem e só podem ser 
executados nessa seção; 
• Os comandos seguem uma hierarquia, ou seja, a execução de um determinado 
comando, pode depender da execução do comando anterior (lógica de processamento); 
• Os arquivos processados em um DATA Step, normalmente, são processados 
sequencialmente, ou seja, registro após registro; 
• Internamente, o DATA Step representa um “loop”, que repete todos os comandos a 
cada leitura de um novo registro do arquivo de entrada até encontrar o último registro, 
finalizando o DATA Step e seguindo para o próximo Step; 
• A execução de um programa SAS obedece a duas fases internas: Compilação e 
Execução; 
 
Os comandos em um DATA Step podem ser divididos em: 
 
• Comandos de Declaração -Funcionalidade: durante a compilação; 
• Comandos de Execução -Funcionalidade: durante a execução. 
 
OBS: Comandos de declaração não possuem nenhuma ação durante a execução. 
 
 
Comando LIBNAME 
 
1. Tipo: Comando de declaração; 
2. Uso: Livre; 
3. Comando opcional de configuração do processamento, que define uma ou mais áreas 
de trabalho e armazenamento (diretórios), para os arquivos SAS (Data Set's); 
4. Define o primeiro nível de um nome de arquivo, a biblioteca SAS; 
 
[biblioteca].<nome do arquivo> 
 
5. O comando LIBNAME, normalmente, é colocado antes do comando DATA, e só será 
necessário ser executado uma única vez durante uma sessão SAS WINDOWS. 
 
LIBNAME <biblioteca> "<diretório>"; 
 
6. Biblioteca: Palavra de no mínimo 1 e no máximo 8 caracteres, que identifica o 
primeiro nível em um nome de arquivo. 
 
7. Diretório: Nome de um diretório que já exista no seu ambiente. 
 
 
OBS: O SAS define uma biblioteca padrão, temporária, de nome work, caso não seja 
indicado, ou criado nenhuma biblioteca. 
ABC DO SAS FERNANDO BRITO LOPES 
 11
Exemplo 03: 
 
Libname MGA “C:\Temp”; 
Data MGA.Nelore2008; 
Infile “C:\Temp\Nelore2008.txt”; 
Input ID_Animal $ 1-3 
ID_Pai $ 4-6 
ID_Mãe $ 7-9 
GC 10-16 
OP 17 
PN 18-19 
PD205 20-22; 
Run; 
 
Proc Print Data = MGA.Nelore2008; 
Run; 
 
 
 
Comando DATA 
 
1. Tipo: Comando de declaração; 
2. Uso: Data Step; 
3. Comando que sempre inicia um DATA Step; 
4. Abre um novo arquivo DATA Set, vazio, em uma biblioteca SAS. 
 
DATA <biblioteca>.<nome do arquivo> ; 
 
OBS: Não é obrigatório especificar a biblioteca, neste caso, o SAS irá utilizar a biblioteca 
padrão, também chamada de biblioteca temporária (WORK ). 
 
 
Exemplo 04: 
 
Data Nelore; 
 
Data MGA.Nelore; 
 
Data Arquivo_1 Arquivo_2 Arquivo_3; 
 
Data _Nul_; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 12
Comando INFILE 
 
1. Tipo: Comando de execução; 
2. Uso: Data Step; 
3. Comando que identifica e abre um arquivo externo de dados, somente para leitura (não 
é um arquivo no formato do SAS); 
4. Normalmente é um arquivo de dados no formato texto (somente texto); 
5. Este comando deve ser posicionado após o comando DATA e antes do comando 
INPUT. 
 
INFILE "<arquivo de dados>" [opções]; 
 
Opções: 
 
LRECL Tamanho do registro; 
PAD Completa de brancos os registros; 
MISSOVER Previne o SAS de lê um novo registro para completar os dados de uma 
variável; 
 
Exemplo 05 
 
Infile “C:\Temp\Nelore2008”; 
 
Data Nelore2008; 
Infile “C:\Temp\Nelore2008” MISSOVER; 
 
Infile “C:\Temp\Nelore2008” LRECL=380 PAD; 
 
 
 
Comando SET 
 
1. Tipo: Comando de execução; 
2. Uso: Data Step; 
3. Este comando abre um arquivo de dados DATA Set (formato SAS), somente para 
leitura, e que já exista em alguma biblioteca SAS; 
4. O comando deve ser posicionado, na maioria das vezes, no início de um Data Step, 
para permitir ao compilador ler a estrutura do arquivo especificado e armazená-la na 
memória. 
 
SET <biblioteca>.<nome do arquivo>; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 13
Exemplo 06 
 
Data Nelore2009; 
 Set Nelore2008; 
Run; 
 
 
OBS: Não é obrigatório especificar a biblioteca, neste caso, o SAS irá utilizar a biblioteca 
padrão, também chamada de biblioteca temporária (WORK). 
 
 
Comando INPUT 
 
1. Tipo: Comando de execução; 
2. Uso: Data Step; 
3. O comando INPUT serve para descrever ao SAS como estão armazenados e 
organizados os dados em arquivos textos que foram especificados pelo comando 
INFILE. 
4. Todo arquivo aberto pelo comando INFILE, sempre necessitará de um comando 
INPUT para ler o seu conteúdo; 
5. O comando INPUT irá ler registro a registro (leitura sequêncial) até encontrar "fim de 
arquivo (EOF)", e irá atribuir nomes (Variáveis) para cada campo de um registro; 
 
Existem três tipos básicos de comando INPUT: 
 
• INPUT LISTADO 
• INPUT COLUNADO 
• INPUT FORMATADO 
 
 
Input Listado 
 
 O SAS procura pelos campos em branco até encontrar um caractere, então lê o campo 
até o próximo em branco. 
 
Restrições: Todo o campo (var) deve ser especificado em ordem; 
 Campos devem ser separados por branco; 
 Não é permitido campos em branco e sim “.”; 
A colocação de “@@” ao final da lista de variáveis, é um indicativo de que 
este é um input listado. 
 
Exemplo 07 
 
Input ID_Animal $ ID_Pai $ ID_Mae $ PN PD205 @@; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 14
Input Colunado 
 
 Especifica onde encontrar os valores pela posição da coluna. 
 
Restrições: As posições dos campos são fixas; 
 O “$” é utilizado para indicar variável alfanumérica. 
 
INPUT <variável> [$] <início>-<fim> [.decimal]; 
 
variável Nome da variável, que será associada a uma coluna de dados. 
$ Caractere opcional que indica que a variável só irá conter dados 
alfanuméricos. Sem o $, significa que a variável será numérica. 
inicio Valor que indica a posição inicial da variável na linha de dados. 
fim Valor que indica a posição final da variável na linha de dados. 
.decimal Valor opcional, indica o número de posições decimais de uma variável 
numérica. 
 
 
Exemplo 07 
 
Data Nelore2009; 
Infile “C:\Temp\Nelore2009.txt”; 
Input ID_Animal $ 1-3 
 ID_Pai $ 4-6 
 ID_Mae $ 7-9 
 PN 10-11 
 PD205 12-14 
 GP_ND 15-17 .2; 
Run; 
 
 
Caracteristicas do Input colunado 
 
1. Os campos (variáveis) podem ser lidos em qualquer ordem; 
2. Campos em brancos são considerados não informados; 
3. Caracteres em branco só serão permitidos em variáveis alfanuméricas; 
4. Campos ou partes de campos podem ser relidos como uma nova variável; 
5. Valores numéricos podem aparecer em qualquer posição do campo, podendo ser 
especificado sinais decimais ou ponto decimais: 
a. Não se usa ‘ , ’ (virgula) para separar a parte decimal e sim ‘ . ‘ (ponto); 
b. Um campo em branco deverá ser representado por um ‘ . ‘ ponto (missing). 
 
 
 
Input formatado 
 
1. Lê as variáveis especificando o tamanho e, opcionalmente, o formato do campo na 
linha de dados. 
2. É o tipo de INPUT mais poderoso e complexo do SAS. 
 
ABC DO SAS FERNANDO BRITO LOPES 
 15
INPUT <variável> [$] <w.d> ou [fomatow.d]; 
 
variável Nome da variável, que será associada a uma coluna de dados. 
$ Caractere opcional que indica que a variável só irá conter dados 
alfanuméricos. Sem o $, significa que a variável será numérica. 
w. Valor que indica o tamanho de um campo na linha de dados. 
w.d Valor que indica o tamanho de umcampo numérico com casas decimais. 
 
formatow.d Campo opcional. Nome de um formato especial de leitura de dados: 
 
BINARYw.d Lê campo numérico no formato binário e o converte para decimal; 
COMMAw.d Lê campo numérico com vírgulas e as retira; 
Ew.d Lê campo numérico com notação científica; 
HEXw. Lê campo numérico em hexadecimal; 
DDMMYYw. Lê campo no formato padrão de datas dd/mm/yyyy. 
 
 
 
Formato de Entrada: 
 
W Largura do campo numérico 
W.d Numérica com decimal 
 
 
Controle de posição: 
 
@n Vai para a coluna ‘n’. 
+n Move a posição ‘n’ posições. 
 
 
Exemplo 08 
 
Data Nelore2009; 
Infile “C:\Temp\Nelore2009.txt”; 
Input ID_Animal $ 3. 
 ID_Pai $ 3. 
 ID_Mae $ 3. 
 SEXO $ 1. +1 
 PN 2. +1 
 PD205 3. @18 
 GP_ND 4.2; 
Run; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 16
Característica do Input Formatado 
 
1. Variáveis e formatos de entrada podem ser agrupados separadamente com parênteses: 
 
 
Input (ID_Animal ID_Pai ID_Mae) (3. 3. 3.); 
ou 
Input (ID_Animal ID_Pai ID_Mae) (3.); 
 
 
 
2. Variáveis numeradas podem ser usadas para abreviar diversas variáveis relacionadas: 
 
 
Input (Mes1 Mes2 Mes3 Mes4 Mes5 Mes6 Mes7) (3.); 
ou 
Input (Mes1-Mes7) (3.); 
 
 
 
Misturando INPUTs 
 
 Os três tipos de INPUT podem ser combinados (LISTADO, COLUNADO e 
FORMATADO) em um único comando INPUT. 
 
Exemplo 08 
 
Data Nelore2009; 
Input ID_Animal $ @5 
 SEXO $ 1. 
 PN 2.; 
Run; 
 
 
 
Detalhes do comando Input 
 
• Em campos numéricos, não são permitidos "brancos" entre os números; 
• Sinal (+ -), ponto decimal (.) e notação científica para expoente (E), são permitidos em 
campos numéricos; 
• Campos tipo caractere podem ter, no máximo, 32K de caracteres; 
• São permitidos "brancos", em qualquer posição, em campos do tipo caractere; 
• Campos em branco (sem informação) são considerados como "missing value" (valor 
perdido). 
• Os campos de um registro de dados podem ser lidos em qualquer ordem. 
 
INPUT PESO 17-20 NOME $ 1-8 IDADE 11-12 SEXO $ 9; 
 
ABC DO SAS 
 
 
• Campos ou partes de um campo podem ser relidos.
 
INPUT NOME $ 1-8 PREFIXO $ 1
 
 
• Dados caracteres serão armazenados, alinhados pela esquerda, e os dados numéricos, 
alinhados pela direita;
 
 
Descrição de um Campo Data
 
1. Campos que representam datas necessitam que sejam identificados pelo SAS através 
de um formato de leitura e armazenados como numéricos;
2. O valor numérico armazenado representa o número de dias em relação
base SAS; 
 
 
3. É um campo que obrigatoriamente deve ser lido com um formato de leitura para 
identificar a formatação da data.
 
 
Formatos: 
 
 
 FERNANDO 
Campos ou partes de um campo podem ser relidos. 
8 PREFIXO $ 1-3 ENDERECO $ 10-40 APT $ 38-40;
Dados caracteres serão armazenados, alinhados pela esquerda, e os dados numéricos, 
alinhados pela direita; 
Descrição de um Campo Data 
Campos que representam datas necessitam que sejam identificados pelo SAS através 
de um formato de leitura e armazenados como numéricos; 
O valor numérico armazenado representa o número de dias em relação
É um campo que obrigatoriamente deve ser lido com um formato de leitura para 
identificar a formatação da data. 
DATE9. 01JAN1960 
DDMMYY10. 01/01/1960 
ERNANDO BRITO LOPES 
17
40; 
Dados caracteres serão armazenados, alinhados pela esquerda, e os dados numéricos, 
Campos que representam datas necessitam que sejam identificados pelo SAS através 
O valor numérico armazenado representa o número de dias em relação a uma data 
 
É um campo que obrigatoriamente deve ser lido com um formato de leitura para 
ABC DO SAS FERNANDO BRITO LOPES 
 18
Estrutura do Proc Step 
 
• É a seção de um programa SAS aonde se analisa os dados de um arquivo SAS, 
utilizando-se procedimentos específicos para cada tipo de análise. 
• A maioria dos procedimentos SAS, geram relatórios técnicos; 
• Todos os procedimentos iniciam com a palavra PROC seguida do nome específico do 
procedimento ou rotina desejada; 
• Os comandos em uma PROC não seguem uma hierarquia, ou seja, podem ser 
colocados em qualquer ordem dentro da PROC; 
 
PROC <rotina> [opções]; 
[comando]; 
[comando]; 
RUN; 
 
 
Rotina Palavra-chave que identifica o procedimento a ser executado. 
Opções Parâmetros opcionais de configuração para execução do procedimento. 
Comando Comandos de detalhamento na execução do procedimento. 
RUN Comando para execução do procedimento SAS. Necessário no último 
procedimento do programa SAS. 
 
 
Comando VAR 
 
• Tipo: Comando de declaração; 
• Uso: Proc Step 
• Comando comum à maioria das PROCS. Determina as variáveis do arquivo SAS que 
serão processadas pelo procedimento. 
 
VAR <variável1> <variável2> ...<variáveln>; 
 
 
Comando BY 
 
• Tipo: Comando de declaração; 
• Uso: Data Step e Proc Step; 
• Determina uma ou mais variáveis que permitirão o processamento em grupos; 
 
BY <variável1> <variável2> ...<variáveln>; 
 
OBS: Este comando exige que o arquivo esteja ordenado ou indexado pelas variáveis 
especificadas. 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 19
Comando TITLE 
 
• Tipo: Comando de declaração; 
• Uso: Livre; 
• Pode ser codificado em qualquer parte do programa. Determina de 1 até 10 títulos para 
o relatório a ser gerado pelo procedimento. 
 
 
TITLE "<cabeçalho>"; 
TITLE1 "<cabeçalho>"; 
. . . 
TITLE10 "<cabeçalho>"; 
 
OBS: Um título permanece ativo até que seja modificado, ou eliminado com o comando: 
TITLE; 
 
 
Comando FOOTNOTE 
 
Tipo: Comando de declaração; 
Uso: Livre; 
Pode ser codificado em qualquer parte do programa. Determina de 1 até 10 rodapés para o 
relatório a ser gerado pelo procedimento. 
 
FOOTNOTE "<rodapé>"; 
FOOTNOTE1 "<rodapé>"; 
. . . 
FOOTNOTE10 "<rodapé>"; 
 
OBS: Um rodapé permanece ativo até que seja modificado, ou eliminado com o comando: 
FOOTNOTE; 
 
 
Procedimento PRINT 
 
• Procedimento do SAS que imprime, na saída padrão, os dados contidos nos arquivos 
SAS; 
• A saída padrão é, normalmente, a janela OUTPUT. 
 
PROC PRINT [opções]; 
VAR <lista de variáveis>; 
BY <lista de variáveis>; 
SUM <lista de variáveis>; 
 
Opções: DATA Nome do arquivo SAS; 
 DOUBLÉ Espacejamento duplo; 
ABC DO SAS FERNANDO BRITO LOPES 
 20
 NOOBS Suprime a coluna com o número de cada observação do 
arquivo; 
 UNIFORM Formata todas as paginas uniformemente; 
 LABEL Imprime os "label's" das variáveis; 
SPLIT Determina um caractere do label que irá indicar a quebra da 
descrição; 
 VAR Determina uma lista de variáveis que serão impressas; 
BY Determina a quebra ou agrupamento do relatório, por uma 
ou mais variáveis; 
 SUM Determina uma ou mais variáveis numéricas que serão 
totalizadas; 
 
Exemplo 09 
 
Title “Arquivo de Dados de Bovinos Nelore”; 
Data Nelore2009; 
Infile “C:\Temp\Nelore2009.txt”; 
Input ID_Animal $ 3. 
 ID_Pai $ 3. 
 ID_Mae $ 3. 
 SEXO $ 1. +1 
 PN 2. +1 
 PD205 3. @18 
 GP_ND 4.2; 
Run; 
 
Proc Print Data = Nelore2009; 
 Var ID_Animal ID_Pai ID_Mae; 
Run; 
 
 
Arquivo de Dados de Bovinos Nelore 
 
ID_Animal ID_Pai ID_Mae 
100 11 99 
101 12 98 
. 
. 
. 
. 
. 
. 
. 
. 
. 
998 100 101 
999 102 998 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 21
Exemplo 09 
 
Title "Relatório de Salários"; 
 
FOOTNOTE "FONTE: DH"; 
Proc Print Data=exemplo1; 
Var Nome Funcao Salario; 
Sum Salario ; 
Run ; 
 
 
Relatório de Salários 
 
Obs Nome Função Salário 
1 Antunes Analista 1800 
2 Teresa Analista 1650 
3 Claudia Programador 1200 
4 Marcos Programador 1200 
5 Julio Operador 8506700 
 
FONTE: DH 
 
 
 
Procedimento SORT 
 
- Procedimento do SAS que reordena os registros dos arquivos por uma ou mais variáveis, em 
ordem ascendente ou descendente; 
- Não possui saída impressa; 
- Pode gerar arquivo ordenado. 
 
PROC SORT [opções]; 
BY <lista de variáveis>; 
 
Opções DATA Nome do arquivo SAS para ser ordenado; 
 OUT Nome do arquivo SAS, aonde serão armazenado os dados 
ordenados. Se não for utilizada essa opção, a ordenação será feita 
em cima do arquivo original; 
 NODUPKEY Opção que elimina os registros com chaves duplicadas; 
 DUPOUT Nome para arquivo com os registros duplicados; 
 BY Determina uma ou várias variáveis como chaves de ordenação; 
 
OBS: A ordenação sempre é feita na ordem ascendente. Para ordenar na ordem descendente 
é necessário colocar o parâmetro descending, antes da variável a ser ordenada no comando 
BY. 
 
ABC DO SAS 
 
Exemplo 10 
 
Proc sort data = Nelore2009; 
Title “Arquivo de Dados de Bovinos Nelore Ordenado Por ID_Mae
Data Nelore2010; Set Nelore2009
Proc Print data = Nelore2010
 
 
Arquivo de Dados de Bovinos Nelore Ordenado Por ID_Mae
 
 
 
Arquivo de mensagens - "SAS Log"
 
Ao se executar um programa SAS, é gerado um relatório de mensagens com 
notificações e erros da execução do programa (janela LOG).
Muito útil, deve ser sempre analisado, principalmente quando não aparecer o relatório 
com os resultados na janela OUTPUT, ou quando esse relatório aparecer com problemas.
 
 
 FERNANDO 
data = Nelore2009; by ID_Mae; Run; 
de Dados de Bovinos Nelore Ordenado Por ID_Mae”; 
Nelore2009; Run; 
2010; Run; 
Arquivo de Dados de Bovinos Nelore Ordenado Por ID_Mae
ID_Animal ID_Pai ID_Mae 
101 11 98 
100 12 99 
. 
. 
. 
. 
. 
. 
. 
. 
. 
998 100 101 
999 102 998 
"SAS Log" 
Ao se executar um programa SAS, é gerado um relatório de mensagens com 
notificações e erros da execução do programa (janela LOG). 
Muito útil, deve ser sempre analisado, principalmente quando não aparecer o relatório 
com os resultados na janela OUTPUT, ou quando esse relatório aparecer com problemas.
ERNANDO BRITO LOPES 
22
Arquivo de Dados de Bovinos Nelore Ordenado Por ID_Mae 
Ao se executar um programa SAS, é gerado um relatório de mensagens com 
Muito útil, deve ser sempre analisado, principalmente quando não aparecer o relatório 
com os resultados na janela OUTPUT, ou quando esse relatório aparecer com problemas. 
 
ABC DO SAS FERNANDO BRITO LOPES 
 23
Comandos que lêem e gravam arquivos SAS 
SET 
 
O comando SET é usado para transferir dados de um arquivo SAS existente para um 
novo arquivo SAS. 
Todas as variáveis do arquivo SAS são passadas automaticamente para o novo arquivo 
SAS (a não ser que sejam direcionadas de outra maneira com comandos de programação). 
 
• Novas variáveis que se queira criar devem ser adicionadas com comandos de 
atribuição. Pressupondo a existência de uma variável denominada “BDATE”, tem-se: 
 
Exemplo 11 
 
Data Nelore2010; 
Set Nelore2009; 
Ano_Nasc = year(BDATE); 
Proc Print data = Nelore2010; Run; 
 
 
OBS: No arquivo criado pelo comando SET possui uma variável nova Ano_Nasc. 
 
• Como criamos uma variável nova ao gerar o arquivo Ano_Nasc, podemos também 
excluir variáveis, com o comando DROP associado ao comando SET. Caso existam 
muitas variáveis, pode-se manter as de interesse utilizando o comando KEEP. 
 
Exemplo 12 
 
Data Nelore2010; 
Set Nelore2009; 
Drop Ano_Nasc; 
Keep ID_Animal PN; 
Proc Print data = Nelore2010; Run; 
 
 
• Concatenação de arquivos: o campo (variável) ID_Animal deve ser referenciado com 
o BY, o qual fará a junção dos dois arquivos num só. Obviamente que os dois arquivos 
deverão estar em ordem por ID_Animal. 
 
Exemplo 13 
 
Data Nelore2011; 
Set Nelore2009 Nelore2010; By ID_Animal; 
Proc Print data = Nelore2010; 
Title ‘Resultado da Concatenação’; Run; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 24
Outra observação que se faz necessária, para usar este comando com a finalidade de 
juntar (concatenando) dois ou mais arquivos, é que a estrutura dos arquivos sejam idênticas, 
ou seja, com mesmas variáveis. Pois a disposição destes arquivos seguirão a colocação dos 
mesmo após o comando SET, cujo resultado será um novo arquivo mas as mesmas colunas, 
entretanto, os dados serão adicionados um abaixo do outro. 
Pode-se também selecionar observações na criação de um novo arquivo com o 
comando IF 
 
 
MERGE 
 
O comando MERGE é usado para juntar observações de dois ou mais arquivos, 
colocando os mesmos um ao lado do outro. 
 
Considerações: 
 
• Até 50 arquivos pode ser “mergeados” em um procedimento; 
• Os arquivos de entrada devem estar ordenados pela variável(eis) chaves se o comando 
BY for utilizado; 
• O arquivo resultante (saída) conterá todas as variáveis presentes nos arquivos de 
entrada a menos que o comando DROP ou qualquer outro de seleção tenha sido 
utilizado. 
 
OUTPUT 
 
O comando OUTPUT pode ser usado para criar duas ou mais observações para cada 
linha de entrada, combinar diversas observações a partir de uma única observação e criar um 
arquivo SAS sem nenhum dado de entrada. 
 
Exemplo 14 
 
Data Receita; 
Input Ano Trim1 Trim2 Trim3 Trim4; 
Trimestre = 1; Vendas = Trim1; Output; 
Trimestre = 2; Vendas = Trim2; Output; 
Trimestre = 3; Vendas = Trim3; Output; 
Trimestre = 4; Vendas = Trim4; Output; 
Cards; 
2006 1.2 0.9 1.1 1.5 
2007 1.7 1.9 2.4 2.5 
; 
Proc Print; 
Run; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 25
 
 
 Obs Ano Trim1 Trim2 Trim3 Trim4 Obs Ano Trim1 Trim2 Trim3 Trim4 Obs Ano Trim1 Trim2 Trim3 Trim4 Obs Ano Trim1 Trim2 Trim3 Trim4 Trimestre VendasTrimestre VendasTrimestre VendasTrimestre Vendas 
 
 1 2006 1.2 0.9 1.1 1.5 1 1.2 
 2 2006 1.2 0.9 1.1 1.5 2 0.9 
 3 2006 1.2 0.9 1.1 1.5 3 1.1 
 4 2006 1.2 0.9 1.1 1.5 4 1.5 
 5 2007 1.7 1.9 2.4 2.5 1 1.7 
 6 2007 1.7 1.9 2.4 2.5 2 1.9 
 7 2007 1.7 1.9 2.4 2.5 3 2.4 
 8 2007 1.7 1.9 2.4 2.5 4 2.5 
 
 
 
Procedimentos de entrada de dados em SAS 
 
• Esta é uma entrada "padrão", em que cada valor corresponde a uma 
variável; 
 
Data E1; 
input Trat $ Bloco $ PESO ; 
Datalines; 
A 1 100 
A 2 130 
B 1 99 
B 2 145 
; 
Proc print Data=e1; 
run; 
 
 
• Esta é uma entrada "colunada", em que o campo para cada variável é 
definido; 
 
Data E2; 
 input Trat $ 1 Bloco $ 3 PESO 5-7; 
 Datalines; 
A 1 100 
A 2 130 
B 1 99 
B 2 145 
; 
proc print Data=e2; 
run; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 26
• Para que se possa repetir valores na mesma linha utiliza-se o comando 
@@; 
 
Data E4; 
 input Trat $ Bloco $ PESO @@; 
 Datalines; 
A 1 100 A 2 130 
B 1 99 B 2 145 
; 
proc print Data=e4; 
run; 
 
 
 
• Utilizando o comando DO para facilitar a entrada de dados; 
 
Data E5; 
 do Trat='A', 'B'; 
 input Bloco PESO; 
 output; 
 end; 
Datalines; 
1 10.5 
1 8.0 
2 8.7 
2 15.1 
3 12.5 
3 10.7 
; 
Proc sort; *nodupkey out=saida; 
by /*descending*/ Trat; 
proc print Data=e5; 
run; 
 
 
 
• Utilizando o comando DO para facilitar a entrada de dados; 
 
Data E6; 
 do Trat=1 to 2; 
 do Bloco=1 to 2; 
 input PESO; 
 output;end; end; 
Datalines; 
100 
130 
 99 
145 
; 
proc print Data=e6; 
run; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 27
• Utilizando o comando DO para facilitar a entrada de dados; 
 
Data E7; 
 do Trat=1 to 2; 
 do Bloco=1 to 3; 
 do rep=1 to 2; 
 input PESO; 
 output; 
 end; end; end; 
Datalines; 
10.5 
10.2 
 8.7 
 8.3 
12.5 
10.7 
 8.0 
10.2 
15.1 
12.8 
10.7 
12.1 
; 
proc print Data=e7; 
run; 
 
 
 
• O programa seguinte mostra que o campo reservado para as respostas de 
cada variável possui 8 caracteres; 
 
Data E8; 
input Trat $ Bloco $ PESO; 
Datalines; 
A23456789 1 100 
A23456789 2 130 
B23456789 1 99 
B23456789 2 145 
; 
proc print Data=e8; 
run; 
 
 
 
• O programa seguinte mostra que o campo reservado para as respostas de 
cada variável pode ser definido; 
 
Data E9; 
 length Trat $ 9; 
 input Trat $ Bloco $ PESO; 
Datalines; 
A23456789 1 100 
A23456789 2 130 
B23456789 1 99 
B23456789 2 145 
; 
proc print Data=e9; 
run; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 28
• Outra forma de definir o campo para as respostas; 
 
Data E9_1; 
input Trat $ 1-9 Bloco $ PESO; 
Datalines; 
A23456789 1 100 
A23456789 2 130 
B23456789 1 99 
B23456789 2 145 
; 
proc print Data=e9_1; 
run; 
 
 
 
• Criando novas variáveis a partir de um conjunto de dados; 
 
Data E10; 
 input Trat $ Bloco PESO; 
 if Bloco <= 1 then CONJUNTO='A'; 
 if Bloco le 1 then CONJUNTO='A'; 
 if Bloco ^= 1 then CONJUNTO='F'; 
 else CONJUNTO='D'; 
Datalines; 
A 1 100 
A 2 130 
B 1 99 
B 2 145 
; 
proc print Data=e10; 
* var conjunto peso; 
run; 
 
 
 
• Opção condicional “DELETE” do DATA STEP; 
 
Data E11; 
 input Trat $ Bloco PESO; 
 if Trat=1 then delete; 
Datalines; 
1 1 10.5 
1 2 8.7 
1 3 12.5 
2 1 8.0 
2 2 15.1 
2 3 10.7 
; 
proc print Data=e11; 
run; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 29
• Opção condicional do DATA STEP; 
 
Data E12; 
 input Trat $ Bloco PESO; 
 if PESO < 10 then PESO = 10; 
Datalines; 
1 1 10.5 
1 2 8.7 
1 3 12.5 
2 1 8.0 
2 2 15.1 
2 3 10.7 
; 
proc print Data=e12; 
run; 
 
 
• Criando novos conjuntos de dados a partir de um conjunto original; 
 
Data E13; 
input Genero $ Idade Altura; 
datalines; 
M 13 143 
M 16 152 
F 19 170 
M 10 120 
M 15 145 
F 8 115 
F 12 125 
; 
run; 
 
Data E13A; 
 set E13; 
 if genero eq 'M' then delete; 
Proc print data=E13A; 
run; 
 
Data E13B; 
 set E13; 
 if genero eq 'F' then delete; 
Proc print data=E13B; 
run; 
 
Data E13C; 
 set E13; 
 if idade <= 16 then delete; 
Proc print data=E13C; 
run; 
 
Data E13D (drop=idade); 
 set E13; 
Proc print data=E13D; 
run; 
 
Data E13E; 
 set E13; 
 keep idade altura; 
Proc print data=exemplo2e; 
run; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 30
• Concatenando arquivos; 
 
Data A2001; 
 input Grad Mest Dout; 
 Label Grad = 'Graduação' 
 Mest = 'Mestrado' 
 Dout = 'Doutorado'; 
datalines; 
10000 500 200 
; 
run; 
 
Data A2002; 
input Grad Mest Dout; 
datalines; 
12000 350 280 
; 
run; 
 
 
• Para a união dos arquivos posso usar o comando SET - serve para 
arquivos cujas variáveis tenham o mesmo nome, unindo-os lado a lado; 
 
Data Total; 
 set A2001 A2002; 
Proc print data=Total label; 
run; 
 
 
• Para a união de arquivos cuja concatenação é feita através de nomes 
iguais de variáveis, mas colocados através de valores numa variável 
comum; 
 
Data Renda; 
 input Mes $ Renda ; 
cards; 
Jan 2300 
Fev 5750 
Mar 2750 
Abr 1235 
; 
 
Data Gastos; 
input Mes $ Gastos; 
Cards; 
Jan 3200 
Fev 3750 
Mar 1250 
Abr 2235 
Mai 1850 
; 
run; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 31
Proc sort data=renda; by mes; 
Proc sort data=gastos; by mes; 
run; 
 
Data Saldo; 
 merge Renda Gastos; 
 by mes; 
 Saldo = Renda-Gastos; 
Proc sort data=Saldo; 
Proc print data=Saldo; 
run; 
 
 
• Criando variáveis usando-se funções matemáticas; 
 
 
Data E14; 
 input Trat $ Bloco $ PESO; 
 if PESO < 10 then PESO = 10; 
 Peso2 = peso**2; 
 Raizpeso = sqrt(peso); 
 Logpeso = log10(peso); 
 Log2peso = log2(peso); 
 Lnpeso = log(peso); 
Datalines; 
1 1 10.5 
1 2 8.7 
1 3 12.5 
2 1 8.0 
2 2 15.1 
2 3 10.7 
; 
Proc print Data=E14; 
run; 
 
 
• Para retirar variáveis do conjunto de dados, basta usar o comando 
DROP; 
 
Data E15 (drop=Bloco lnpeso); 
 input Trat $ Bloco PESO; 
 if PESO < 10 then PESO = 10; 
 Peso2 = peso**2; 
 Raizpeso = sqrt(peso); 
 Logpeso = log10(peso); 
 Log2peso = log2(peso); 
 Lnpeso = log(peso); 
Datalines; 
1 1 10.5 
1 2 8.7 
1 3 12.5 
2 1 8.0 
2 2 15.1 
2 3 10.7 
; 
proc print Data=e15; 
run; 
ABC DO SAS FERNANDO BRITO LOPES 
 32
• Pode-se ainda utilizar o comando KEEP, para manter variáveis; 
 
Data E16 (keep=Bloco lnpeso); 
 input Trat $ Bloco PESO; 
 if PESO < 10 then PESO = 10; 
 Peso2 = peso**2; 
 Raizpeso = sqrt(peso); 
 Logpeso = log10(peso); 
 Log2peso = log2(peso); 
 Lnpeso = log(peso); 
Datalines; 
1 1 10.5 
1 2 8.7 
1 3 12.5 
2 1 8.0 
2 2 15.1 
2 3 10.7 
; 
proc print Data=e16; 
run; 
 
Comandos básicos de Programação 
Funções e expressões 
 
Símbolo Operação Exemplo SAS 
** Exponenciação 3xy = 3**xy = 
* Multiplicação bay ×= bay *= 
/ Divisão bay ÷= bay /= 
- Subtração bay −= bay −= 
+ Adição bay += bay += 
 
Funções numéricas 
 
Função O que ela faz? 
ABS Valor absoluto 
SQRT Raiz quadrada 
CÓS Cosseno 
SIN Seno 
ARCOS Arcosseno 
LOG Logaritmo neperiano 
LOG10 Logaritmo base dez 
SUM Soma 
MEAN Média 
VAR Variância 
MIN Mínimo 
MAX Máximo 
STD Desvio Padrão 
ROUND ou INT Valor arredondado 
ABC DO SAS FERNANDO BRITO LOPES 
 33
Comando Retain 
 
• Tipo: Comando de declaração; 
• Uso: Data Step; 
• Normalmente o SAS inicia todas as variáveis criadas no DATA Step, com o valor 
“missing”, a cada iteração do DATA Step; 
• O Comando RETAIN define uma variável com um valor inicial, e determina que ela 
não seja reinicializada a cada iteração do DATA Step; 
• Deve ser posicionado sempre antes do comando que irá utilizar a variável definida; 
 
 
RETAIN <variável> [valor inicial] . . . ; 
 
 
Exemplo 15 
 
DATA LUCROS; 
RETAIN CONT 0; 
INPUT ANO RECEITA DESPESAS; 
CONT=CONT+1; 
ANO = ANO + 1900; 
LUCRO = RECEITA - DESPESAS; 
REAIS = LUCRO / 0.98; 
CARDS; 
94 5650 1050 
95 6280 1140 
96 8450 2450 
97 9156 2759 
98 9856 3250 
RUN; 
PROC PRINT DATA=LUCROS NOOBS; 
TITLE "Analise Contábil"; 
SUM RECEITA DESPESAS LUCRO REAIS; 
RUN; 
 
 
 CONT ANO RECEITA DESPESAS LUCRO REAISCONT ANO RECEITA DESPESAS LUCRO REAISCONT ANO RECEITA DESPESAS LUCRO REAISCONT ANO RECEITA DESPESAS LUCRO REAIS 
 
 1 1994 5650 1050 4600 4693.88 
 2 1995 6280 1140 5140 5244.90 
 3 1996 8450 2450 6000 6122.45 
 4 1997 9156 2759 6397 6527.55 
 5 1998 9856 3250 6606 6740.82 
 ======= ======== ===== ======== 
 39392 10649 28743 29329.59 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 34
Comando IF-THEN/ELSE 
 
• Tipo: Comando de Execução; 
• Uso: Data Step; 
• Comando que condicionaa execução de um outro comando SAS, de acordo com 
alguma expressão, que determinará essa condição; 
• Se a expressão, que determina a condição, for verdadeira, será executado o comando 
que vier após o THEN. Se a condição for falsa, será executado o comando que vier 
após o ELSE. Somente um comando após o THEN e do ELSE 
 
IF <expressão> [THEN] <comando>; 
 
[ELSE] <comando> ; 
 
Expressão Combinação de variáveis com operadores de comparação e/ou Operadores 
lógicos que determinam uma condição. 
Comando Comando do SAS que será executado de acordo com o resultado da condição. 
 
 
Operadores de Comparação e Lógicos 
 
GT > maior que 
LT < menor que 
EQ = igual a 
LE <= menor ou igual a 
GE >= maior ou igual a 
NE ~= não é igual (diferente) 
NL não é menor 
NG não é maior 
IN esta no conjunto 
AND & e, ambos 
OR | ou, um ou outro 
NOT ~ não, negação 
 
Comando WHERE; 
 
• Tipo: Comando de execução; 
• Uso: Data Step, Proc Step e Opção de arquivos; 
• Comando que possui como única ação, selecionar registros, se uma condição for 
verdadeira; 
• Comando WHERE não pode ser utilizado com variáveis que estão sendo criadas no 
DATA Step por comandos de atribuição, ou pelo comando INPUT; 
• Além dos operadores de comparação e lógicos do comando IF, existem alguns 
operadores especiais no WHERE. 
ABC DO SAS FERNANDO BRITO LOPES 
 35
 
WHERE <expressão>; 
 
Expressão Combinação de variáveis com operadores de comparação, Operadores lógicos 
e/ou operadores especiais, que determinam uma condição. Se for verdadeira, o 
registro é Selecionado, processado e salvo. Se for falso o registro é descartado. 
 
 
Alguns operadores especiais 
 
BETWEEN-AND entre um e outro 
CONTAINS ? contém 
 
 
Exemplo 16 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO 5.; 
CARDS; 
ANTONIO JOSE 1000 
CARLOS SILVA 1900 
PAULO JOSE 1200 
FLAVIO DA SILVA 1000 
RICARDO SILVA 1100 
FERNANDO SILVA 2001 
SANDRA PIRES E SILVA 999 
RUN; 
PROC PRINT DATA = FUNCIONARIOS; 
WHERE NOME CONTAINS "SILVA" AND SALARIO BETWEEN 1000 AND 2000; 
RUN; 
 
 
 Obs NOME SALARIOObs NOME SALARIOObs NOME SALARIOObs NOME SALARIO 
 
 2 CARLOS SILVA 1900 
 4 FLAVIO DA SILVA 1000 
 5 RICARDO SILVA 1100 
 
 
 
Comandos DO/END 
 
• Tipo: Comando de execução; 
• Uso: Data Step 
• Comando que define a execução de um bloco de comandos do SAS; 
• Todos os comandos existentes entre o comando DO e o comando END, deverão ser 
executados imediatamente; 
• Comandos DO e END podem ser usados para executar um grupo de comandos 
quando se encontra uma condição, normalmente, para ampliar o comando IF-
THEN/ELSE. 
 
ABC DO SAS FERNANDO BRITO LOPES 
 36
IF <expressão> THEN DO; 
<comandos> ; 
END ; 
 
Exemplo 17 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO; 
CARDS; 
ANTONIO JOSE 1000 500 2 
CARLOS SILVA 1900 600 2 
PAULO JOSE 1200 450 1 
FLAVIO DA SILVA 1000 . 1 
RICARDO SILVA 1100 . 1 
FERNANDO SILVA 2001 800 2 
SANDRA PIRES E SILVA 999 950 2 
; 
RUN; 
PROC SORT DATA = FUNCIONARIOS; BY NOME; 
DATA FUNCIONARIOS2; SET FUNCIONARIOS; BY NOME; 
RETAIN ID_NO 0; 
 ID_NO = ID_NO + 1; 
IF DEP_NO = 2 THEN DO; 
 DEP = "VENDAS"; 
 SAL = COM + SALARIO; 
 END; 
ELSE DO; 
 DEP = "ADMINISTRATIVO"; 
 SAL = SALARIO; 
 END; 
RUN; 
PROC PRINT DATA = FUNCIONARIOS2 NOOBS; 
RUN; 
 
 
 NOME SALARIO COM DEP_NO ID_NO DEP SALNOME SALARIO COM DEP_NO ID_NO DEP SALNOME SALARIO COM DEP_NO ID_NO DEP SALNOME SALARIO COM DEP_NO ID_NO DEP SAL 
 
 ANTONIO JOSE 1000 500 2 1 VENDAS 1500 
 CARLOS SILVA 1900 600 2 2 VENDAS 2500 
 FERNANDO SILVA 2001 800 2 3 VENDAS 2801 
 FLAVIO DA SILVA 1000 . 1 4 ADMINI 1000 
 PAULO JOSE 1200 450 1 5 ADMINI 1200 
 RICARDO SILVA 1100 . 1 6 ADMINI 1100 
 SANDRA PIRES E SILVA 999 950 2 7 VENDAS 1949 
 
 
 
OBS: A adição do comando “NOOBS” retira a identificação numérica de cada observação, 
neste caso, ela teria a mesma função do “ID_NO”. 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 37
Comando LENGTH 
 
• Tipo: Comando de declaração; 
• Uso: Data Step; 
• Comando que define uma variável, o tipo e o tamanho em bytes. 
• Deve ser posicionado sempre antes da utilização da variável. 
 
LENGTH variável [$] tamanho 
 . . . 
 variável [$] tamanho ; 
 
Variável Nome da variável que deseja definir; 
$ Caractere opcional, que indica que a variável será alfanumérica.; 
Tamanho Tamanho em bytes da variável. 
 
Exemplo 18 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO; 
CARDS; 
ANTONIO JOSE 1000 500 2 
CARLOS SILVA 1900 600 2 
PAULO JOSE 1200 450 1 
FLAVIO DA SILVA 1000 . 2 
RICARDO SILVA 1100 . 1 
FERNANDO SILVA 2001 800 1 
SANDRA PIRES E SILVA 999 950 2 
; 
RUN; 
PROC SORT DATA = FUNCIONARIOS; BY NOME; 
DATA FUNCIONARIOS2; SET FUNCIONARIOS; BY NOME; 
LENGTH DEP $ 14; 
RETAIN ID_NO 0; 
 ID_NO = ID_NO + 1; 
IF DEP_NO = 2 THEN DO; 
 DEP = "VENDAS"; 
 SAL = COM + SALARIO; 
 END; 
ELSE DO; 
 DEP = "ADMINISTRATIVO"; 
 SAL = SALARIO; 
 END; 
IF SALARIO LT 1500 THEN DELETE; 
RUN; 
PROC PRINT DATA = FUNCIONARIOS2 NOOBS; 
RUN; 
 
 
 NOME SALARIO COMNOME SALARIO COMNOME SALARIO COMNOME SALARIO COM DEP_NO DEP ID_NO SALDEP_NO DEP ID_NO SALDEP_NO DEP ID_NO SALDEP_NO DEP ID_NO SAL 
 
 CARLOS SILVA 1900 600 2 VENDAS 2 2500 
 FERNANDO SILVA 2001 800 1 ADMINISTRATIVO 3 2001 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 38
 
Comandos DROP e KEEP 
 
• Tipo: Comandos de declaração; 
• Uso: Data step e Opção de arquivos; 
• O comando DROP, elimina as variáveis de um arquivo SAS; 
• O comando KEEP, mantém as variáveis em um arquivo SAS; 
• Pode ser posicionado em qualquer lugar de um Data Step; 
• Esses dois comandos são exclusivos, ou se usa o comando DROP, ou se usa o 
comando KEEP, na lógica de um programa SAS. 
 
DROP <variável> <variável> . . . ; 
KEEP <variável> <variável> . . . ; 
 
variável Nome de uma variável que será eliminada, ou será mantida em um arquivo 
SAS (Data Set). 
 
Exemplo 19 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO; 
CARDS; 
ANTONIO JOSE 1000 500 2 
CARLOS SILVA 1900 600 2 
PAULO JOSE 1200 450 1 
FLAVIO DA SILVA 1000 . 2 
RICARDO SILVA 1100 . 1 
FERNANDO SILVA 2001 800 1 
SANDRA PIRES E SILVA 999 950 2 
; 
RUN; 
DATA FUNCIONARIOS1; SET FUNCIONARIOS; 
KEEP NOME SALARIO; 
RUN; 
PROC PRINT DATA=FUNCIONARIOS1 NOOBS; 
RUN; 
DATA FUNCIONARIOS2; SET FUNCIONARIOS; 
DROP COM DEP_NO; 
RUN; 
PROC PRINT DATA=FUNCIONARIOS2NOOBS; 
RUN; 
 
 
 NOME SALARIONOME SALARIONOME SALARIONOME SALARIO 
 
 ANTONIO JOSE 1000 
 CARLOS SILVA 1900 
 PAULO JOSE 1200 
 FLAVIO DA SILVA 1000 
 RICARDO SILVA 1100 
 FERNANDO SILVA 2001 
 SANDRA PIRES E SILVA 999 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 39
OBS: Neste caso está sendo mostrado apenas uma saída, pois com o comando DROP, 
retirou-se as variáveis COM e DEP_NO, o mesmo efeito teve o comando KEEP, o qual 
manteve as variáveis NOME e SALARIO. 
 
Comando DELETE 
 
• Tipo: Comando de execução; 
• Uso: Data Step; 
• Comando que informa ao SAS, que deve ser parado o processamento do registro atual; 
não gravar os dados do registro no arquivo e retornar imediatamente para o início do 
Data Step para uma nova iteração; 
• Este comando não permite gravar o registro lido no arquivo SAS; 
• Normalmente esse comando é utilizado junto com o comando IF/THEN/ELSE, que 
determina uma condição para execução do comando DELETE. 
 
 
IF <expressão> THEN DELETE; 
 
 
Exemplo 19 
 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO; 
CARDS; 
ANTONIO JOSE 1000 500 2 
CARLOS SILVA 1900 600 2 
PAULO JOSE 1200 450 1 
FLAVIO DA SILVA 1000 . 2 
RICARDO SILVA 1100 . 1 
FERNANDO SILVA 2001 800 1 
SANDRA PIRES E SILVA 999 950 2 
; 
RUN; 
DATA FUNCIONARIOS1; SET FUNCIONARIOS; 
IF SALARIO LT 1500 THEN DELETE; 
RUN; 
PROC PRINT DATA=FUNCIONARIOS1 NOOBS; 
RUN; 
 
 
 
 
 NOME SALARIO COM DEP_NONOME SALARIO COM DEP_NONOME SALARIO COM DEP_NONOME SALARIO COM DEP_NO 
 
 CARLOS SILVA 1900 600 2 
 FERNANDO SILVA 2001 800 1 
 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 40
Comando OPTIONS 
 
• Tipo: Comando de declaração; 
• Uso: Livre; 
• Comando definição que altera e configura opções de performance, de impressão, de 
visualização do ambiente SAS, de comunicação, etc 
 
OPTIONS opt1 opt2 . . . optn ; 
Algumas opções: 
 
COMPRESS=NO Opção que especifica a compactação dos dados na geração de um 
arquivo Data set ( YES ou CHAR/BIN/NO ); 
DEVICE=WIN Opção que especifica um "driver" para impressão ou saída de relatório; 
OBS=MAX Opção que especifica qual será o último registro a ser processado; 
FIRSTOBS=1 Opção que especifica qual será o primeiro registro a ser processado; 
(NO)DATE Opção que determina a “impressão” ou não, da data nos relatórios; 
(NO)NUMBER Opção que determina a “impressão” ou não, do número da página; 
PAGENO= Opção que especifica a numeração inicial das paginas de “OUTPUT”, 
para cada execução; 
LINESIZE= Opção que especifica o tamanho da linha de “impressão” do relatório 
(número de colunas); 
PAGESIZE= Opção que especifica o tamanho da pagina de “impressão” (número de 
linhas); 
ERRORS=20 Opção que especifica o número máximo de erros a serem exibidos no 
“LOG”; 
(NO)REPLACE Opção que determina a sobreposição ou não, dos dados de um arquivo; 
SORTSIZE= Opção que especifica a quantidade de memória que o procedimento 
SORT poderá utilizar (em bytes). No windows: 66MBytes; 
MEMSIZE= Opção que especifica a quantidade de memória que o sistema SAS 
poderá utilizar para qualquer processamento. No windows: livre; 
 
 
Comando FORMAT 
 
• Tipo: Comando de declaração; 
• Uso: Data Step e Proc Step; 
• Comando de definição que serve para formatar as variáveis e melhorar a aparência dos 
dados num relatório; 
• DATA Step Permanente, armazenado na estrutura do arquivo; 
• PROC Step Temporário, apenas para a execução do procedimento. 
 
FORMAT <variável> <formatow.d> . . . ; 
 
variável Nome da variável que será formatada. 
formatow.d Nome do formato com o tamanho do campo (w) e número de casas decimais 
(d), criado pelo próprio usuário ou da biblioteca de formatos do SAS: 
COMMAXw.d Formata com pontos e vírgula (Padrão Brasil); 
DDMMYYw. Formata um campo data com “/”; 
ABC DO SAS FERNANDO BRITO LOPES 
 41
 
 
Exemplo20 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO ANIVERSARIO DDMMYY11. NASC; 
CARDS; 
ANTONIO JOSE 1000 500 2 09/10/1983 8682 
CARLOS SILVA 1900 600 2 02/05/1962 852 
PAULO JOSE 1200 450 1 11/12/1990 11302 
FLAVIO DA SILVA 1000 . 2 01/02/1988 10258 
RICARDO SILVA 1100 . 1 23/05/1978 6717 
FERNANDO SILVA 2001 800 1 12/04/1991 11424 
SANDRA PIRES E SILVA 999 950 2 09/09/1989 10844 
; 
RUN; 
PROC PRINT DATA=FUNCIONARIOS NOOBS; 
OPTIONS NODATE NONUMBER; 
FORMAT ANIVERSARIO DDMMYY10. 
 NASC DDMMYY10. 
 SALARIO COMMAX8.2; 
RUN; 
 
 
 The SAS SystemThe SAS SystemThe SAS SystemThe SAS System 
 
 NOME SALARIO COM DEP_NO ANIVERSARIO NASCNOME SALARIO COM DEP_NO ANIVERSARIO NASCNOME SALARIO COM DEP_NO ANIVERSARIO NASCNOME SALARIO COM DEP_NO ANIVERSARIO NASC 
 
 ANTONIO JOSE 1.000,00 500 2 09/10/1983 09/10/1983 
 CARLOS SILVA 1.900,00 600 2 02/05/1962 02/05/1962 
 PAULO JOSE 1.200,00 450 1 11/12/1990 11/12/1990 
 FLAVIO DA SILVA 1.000,00 . 2 01/02/1988 01/02/1988 
 RICARDO SILVA 1.100,00 . 1 23/05/1978 23/05/1978 
 FERNANDO SILVA 2.001,00 800 1 12/04/1991 12/04/1991 
 SANDRA PIRES E SILVA 999,00 950 2 09/09/1989 09/09/1989 
 
 
Comando ODS 
 
• Tipo: Comando de declaração; 
• Uso: Livre; 
• Output Delivery System (ODS), é um recurso especial para a manipulação dos 
resultados gerados pelos procedimentos SAS, permitindo a escolha de padrões de 
impressão e visualização, geração de arquivos e geração de documentos. 
 
ODS <padrão> [opções]; 
. . . 
ODS <padrão> CLOSE; 
 
padrões: 
 
HTML Gera os resultados no padrão “html”; 
PDF Gera os resultados no padrão “Adobe”; 
PS Gera os resultados no padrão “PostScript”; 
ABC DO SAS FERNANDO BRITO LOPES 
 42
RTF Gera os resultados no padrão “Rich Text”; 
 
 
 
opção genérica: 
 
FILE= Determina a localização e nome do arquivo gerado com o padrão. 
 
OBS: Cada padrão de visualização possui suas próprias opções. 
 
Exemplo20 
 
ODS HTML FILE = "C:\FUNCIONARIOS.HTML"; 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO ANIVERSARIO DDMMYY11. NASC; 
CARDS; 
ANTONIO JOSE 1000 500 2 09/10/1983 8682 
CARLOS SILVA 1900 600 2 02/05/1962 852 
PAULO JOSE 1200 450 1 11/12/1990 11302 
FLAVIO DA SILVA 1000 . 2 01/02/1988 10258 
RICARDO SILVA 1100 . 1 23/05/1978 6717 
FERNANDO SILVA 2001 800 1 12/04/1991 11424 
SANDRAPIRES E SILVA 999 950 2 09/09/1989 10844 
; 
RUN; 
PROC PRINT DATA=FUNCIONARIOS NOOBS; 
OPTIONS NODATE NONUMBER; 
FORMAT ANIVERSARIO DDMMYY10. 
 NASC DDMMYY10. 
 SALARIO COMMAX8.2; 
RUN; 
ODS HTML CLOSE; 
 
 
The SAS System 
NOME SALARIO COM DEP_NO ANIVERSARIO NASC 
ANTONIO JOSE 1.000,00 500 2 09/10/1983 09/10/1983 
CARLOS SILVA 1.900,00 600 2 02/05/1962 02/05/1962 
PAULO JOSE 1.200,00 450 1 11/12/1990 11/12/1990 
FLAVIO DA SILVA 1.000,00 . 2 01/02/1988 01/02/1988 
RICARDO SILVA 1.100,00 . 1 23/05/1978 23/05/1978 
FERNANDO SILVA 2.001,00 800 1 12/04/1991 12/04/1991 
SANDRA PIRES E SILVA 999,00 950 2 09/09/1989 09/09/1989 
 
 
OBS: Ao adicionar o comando “STYLE = MINIMAL”, após endereço de destino 
especificado no ODS, será criada uma tabela simples. 
ABC DO SAS FERNANDO BRITO LOPES 
 43
Comandos para rápida consulta de contagem 
 
Contagem 
 
Para verificar o domínio de um campo, podem ser usadas duas formas: 
 
Para validar somente um campo, a proc freq tem um resultado mais completo, mas se 
for necessária a análise de um conjunto de campos agrupados a proc sql é mais indicada, 
principalmente se o domínio tiver muitas possibilidades, já que a proc freq pode poluir muito 
a tela, por fazer uma grade de informações. 
Usando o dataset abaixo como exemplo, supondo que temos a necessidade de uma 
contagem no campo “tp” e a combinação dos campos grp + tp. 
 
 
Exemplo 21 
 
data contagem; 
 tp=1; grp=0; output; 
 tp=3; grp=1; output; 
 tp=1; grp=0; output; 
 tp=2; grp=2; output; 
run; 
 
 
 
 
Utilizando Proc Freq 
 
 
 
proc freq data=contagem; 
 tables tp; 
run; 
 
 
 The FREQ ProcedureThe FREQ ProcedureThe FREQ ProcedureThe FREQ Procedure 
 
 Cumulative Cumulative 
 tp Frequency Percent Frequency Percent 
 ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 
 1 2 50.00 2 50.00 
 2 1 25.00 3 75.00 
 3 1 25.00 4 100.00 
 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 44
Com Interação 
 
 
proc freq data=contagem; 
 tables grp * tp; 
run; 
 
 
 The FREQ ProcedureThe FREQ ProcedureThe FREQ ProcedureThe FREQ Procedure 
 
 Table of grp by tpTable of grp by tpTable of grp by tpTable of grp by tp 
 
 grp tp 
 
 Frequency‚ 
 Percent ‚ 
 Row Pct ‚ 
 Col Pct ‚ 1‚ 2‚ 3‚ Total 
 ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ 
 0 ‚ 2 ‚ 0 ‚ 0 ‚ 2 
 ‚ 50.00 ‚ 0.00 ‚ 0.00 ‚ 50.00 
 ‚ 100.00 ‚ 0.00 ‚ 0.00 ‚ 
 ‚ 100.00 ‚ 0.00 ‚ 0.00 ‚ 
 ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ 
 1 ‚ 0 ‚ 0 ‚ 1 ‚ 1 
 ‚ 0.00 ‚ 0.00 ‚ 25.00 ‚ 25.00 
 ‚ 0.00 ‚ 0.00 ‚ 100.00 ‚ 
 ‚ 0.00 ‚ 0.00 ‚ 100.00 ‚ 
 ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ 
 2 ‚ 0 ‚ 1 ‚ 0 ‚ 1 
 ‚ 0.00 ‚ 25.00 ‚ 0.00 ‚ 25.00 
 ‚ 0.00 ‚ 100.00 ‚ 0.00 ‚ 
 ‚ 0.00 ‚ 100.00 ‚ 0.00 ‚ 
 ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ 
 Total 2 1 1 4 
 50.00 25.00 25.00 100.00 
 
 
Agrupando com PROC SQL 
 
 
proc sql; 
 select grp, tp, count(*) as QTD 
 from contagem 
 group by grp, tp; 
quit; 
 
 
 The SAS SystemThe SAS SystemThe SAS SystemThe SAS System 
 grp tp QTD 
 ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 
 0 1 2 
 1 3 1 
 2 2 1 
 
ABC DO SAS FERNANDO BRITO LOPES 
 45
Funções Básicas 
 
Funções de Truncamento 
 
 
INT 
 
• Função que retorna com o valor inteiro de uma variável ou de uma expressão. 
 
<variável> = INT ( argumento ); 
 
variável Nome até 32 caracteres que armazenará o resultado do processamento da 
função. 
argumento Variável ou expressão numérica, da qual se deseja obter o valor inteiro. 
 
 
ROUND 
 
• Função que retorna um valor arredondado de uma variável ou expressão numérica. 
 
<variável> = ROUND ( arg1, [arg2] ); 
 
variável Nome até 32 caracteres que armazenará o resultado do processamento da 
função. 
arg1 Variável ou expressão numérica da qual se deseja arredondar. 
arg2 Argumento opcional, especifica o múltiplo do arredondamento e a posição 
numérica aonde será feita o arredondamento (1, 10, . . . ou 0.1, 0.01, . . .). Se 
não for especificado, a função arredondará para um valor inteiro. 
 
Exemplo 22 
 
DATA DADOS; 
INPUT X 7.; 
TRUNCA = INT(X); 
INTEIRO = ROUND(X,1); 
DEZENA = ROUND(X,10); 
CENTENA = ROUND(X,100); 
DECIMO = ROUND(X,0.1); 
CENTES = ROUND(X,0.01); 
MULT5=ROUND(X,5); 
DATALINES; 
 326.54 
1977.09 
 558.88 
1588.29 
; 
RUN; 
PROC PRINT; 
RUN; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 46
 
 
 The SAS SystemThe SAS SystemThe SAS SystemThe SAS System 
 
 Obs X TRUNCA INTEIRO DEZENA CENTENA DECIMO CENTES MULT5Obs X TRUNCA INTEIRO DEZENA CENTENA DECIMO CENTES MULT5Obs X TRUNCA INTEIRO DEZENA CENTENA DECIMO CENTES MULT5Obs X TRUNCA INTEIRO DEZENA CENTENA DECIMO CENTES MULT5 
 
 1 326.54 326 327 330 300 326.5 326.54 325 
 2 1977.09 1977 1977 1980 2000 1977.1 1977.09 1975 
 3 558.88 558 559 560 600 558.9 558.88 560 
 4 1588.29 1588 1588 1590 1600 1588.3 1588.29 1590 
 
 
Funções de Tratamento de Data e Hora 
 
MDY 
 
• Função que gera uma data a partir de valores de dia, mês e ano. 
 
<variável>=MDY(mm, dd, yyyy); 
 
variável Nome até 32 caracteres que armazenará o resultado do processamento da 
função; 
mm Valor numérico que representa o mês; 
dd Valor numérico que representa o dia; 
yyyy Valor numérico que representa o ano. 
 
DAY, MONTH , YEAR 
 
• Funções que extraem de uma datao dia, o mês e o ano respectivamente. 
 
<variável>=DAY(data); 
<variável>=MONTH(data); 
<variável>=YEAR(data); 
 
variável Nome até 32 caracteres que armazenará o resultado do processamento da 
função; 
data Valor que representa uma data SAS. 
 
TODAY 
 
• Função que retorna a data atual do ambiente de processamento. Não possui 
argumentos. 
 
<variável>=TODAY(); 
 
TIME 
 
• Função que retorna a hora atual do ambiente de processamento. Não possui 
argumentos. 
 
ABC DO SAS FERNANDO BRITO LOPES 
 47
<variável>=TIME(); 
HOUR, MINUTE e SECOND 
 
• Funções que extraem de um valor tempo a hora, minuto e segundo respectivamente. 
 
<variável>=HOUR(tempo); 
<variável>=MINUTE(tempo); 
<variável>=SECOND(tempo); 
 
variável Nome até 32 caracteres que armazenará o resultado do processamento da 
função; 
tempo Valor que representa o tempo no formato SAS. 
 
Exemplo 23 
 
DATA FUNCIONARIOS; 
INPUT NOME $ 20. @23 SALARIO COM DEP_NO ANIVERSARIO DDMMYY11. NASC; 
CARDS; 
ANTONIO JOSE 1000 500 2 09/10/1983 8682 
CARLOS SILVA 1900 600 2 02/05/1962 852 
PAULO JOSE 1200 450 1 11/12/1990 11302 
FLAVIO DA SILVA 1000 . 2 01/02/1988 10258 
RICARDO SILVA 1100 . 1 23/05/1978 6717 
FERNANDO SILVA 2001 800 1 12/04/1991 11424 
SANDRA PIRES E SILVA 999 950 2 09/09/1989 10844 
; 
RUN; 
DATA DATAS; SET FUNCIONARIOS; 
DROP SALARIO COM DEP_NO ANIVERSARIO; 
FORMAT NASC DDMMYY10.; 
DAY = DAY(ANIVERSARIO); 
MONTH = MONTH(ANIVERSARIO); 
YEAR = YEAR(ANIVERSARIO); 
TODAY = TODAY(); 
TIME = TIME(); 
HOUR = HOUR(ANIVERSARIO); 
MINUTE = MINUTE(ANIVERSARIO); 
SECOND = SECOND(ANIVERSARIO); 
RUN; 
PROC PRINT DATA=DATAS NOOBS; 
RUN; 
 
 
 The SAS SystemThe SAS SystemThe SAS SystemThe SAS System 
 
 NOME NASC DAY MONTH YEAR TODAY TIME HOUR MINUTE SECONDNOME NASC DAY MONTH YEAR TODAY TIME HOUR MINUTE SECONDNOME NASC DAY MONTH YEAR TODAY TIME HOUR MINUTE SECONDNOME NASC DAY MONTH YEAR TODAY TIME HOUR MINUTE SECOND 
 
 ANTONIO JOSE 09/10/1983 9 10 1983 16289 11646.73 2 24 42 
 CARLOS SILVA 02/05/1962 2 5 1962 16289 11646.73 0 14 12 
 PAULO JOSE 11/12/1990 11 12 1990 16289 11646.73 3 8 22 
 FLAVIO DA SILVA 01/02/1988 1 2 1988 16289 11646.73 2 50 58 
 RICARDO SILVA 23/05/1978 23 5 1978 16289 11646.73 1 51 57 
 FERNANDO SILVA 12/04/1991 12 4 1991 16289 11646.73 3 10 24 
 SANDRA PIRES E SILVA 09/09/1989 9 9 1989 16289 11646.73 3 0 44 
 
ABC DO SAS FERNANDO BRITO LOPES 
 48
Estatística Descritiva e Teste de Normalidade 
 
Após criação do arquivo de dados, pode-se desejar sumarizar estes dados através de 
medidas que descrevam seu comportamento. Estas medidas incluem parâmetros de posição 
como médias, modas, medianas, quartis e percentis, parâmetros de dispersão, como 
variâncias, desvios padrões, amplitude (range), e parâmetros que auxiliam na descrição da 
forma dos dados, como assimetria e curtose. 
Nos problemas que envolvem a Estatística Indutiva, os conjuntos de dados analisados 
são representados por amostras retiradas das populações de interesse. Sendo as amostras 
aleatórias, todos os seus elementos fornecerão valores aleatórios da variável em análise. Para 
caracterizar a distribuição dos diversos valores assumidos por uma variável aleatória, o 
conceito de distribuição de probabilidades deve ser utilizado e estendido às populações, ou 
seja, cada valor da amostra deve ser considerado como valor de uma variável aleatória cuja 
distribuição de probabilidade é a mesma da população no instante da retirada desse elemento 
da amostra. Os valores calculados, em função dos elementos da amostra, denominam-se 
estatísticas. Se estas estatísticas forem utilizadas para inferir informações a respeito de uma 
população, elas são consideradas como variáveis aleatórias, e terão, portanto uma distribuição 
de probabilidades, com uma média, uma variância, etc. Muitos métodos da análise estatística 
assumem que os dados da amostra provém de uma população com distribuição normal. A 
distribuição normal tem uma definição matemática precisa, com as seguintes características: 
 
1. Ser completamente definida por sua média e seu desvio padrão. 
2. Ser uma distribuição simétrica, ou seja, sua média coincide com sua moda, que por 
sua vez coincide com sua mediana. 
3. Ser uma distribuição regular. Do seu ponto central mais alto até suas extremidades não 
existe padrões irregulares. 
4. Ter curtose=0 (a curtose descreve o grau de achatamento de uma distribuição). 
 
Teste de normalidade 
 
Nos testes de normalidade é estabelecida a idéia de que uma amostra provém de uma 
distribuição normal. Através da amostra uma estatística é calculada e testada para checar essa 
idéia. Uma comparação é feita entre a forma da distribuição da amostra, com a forma de uma 
distribuição normal. Se não for encontrada nenhuma evidência para rejeitar a hipótese de 
normalidade, prossegue-se as análises baseando-se na suposição de que os dados da amostra 
são normalmente distribuídos (análise paramétrica). Quando os dados não são gerados por 
uma distribuição normal, a análise deve ser baseada em métodos não paramétricos. A 
distribuição normal é simétrica, com os valores distribuídos em forma de sino. 
Ao desempenhar um teste de hipótese tem-se sempre uma hipótese nula que descreve 
uma idéia sobre a população, e uma hipótese alternativa, que descreve uma idéia alternativa 
sobre a população. 
Nos testes para a normalidade, a hipótese nula é que os dados da amostra são gerados 
por uma distribuição normal. A hipótese alternativa é que eles são gerados por uma 
distribuição não normal. O método utilizado para testar hipóteses consiste num conteúdo de 
decisão onde a probabilidade de rejeitar a hipótese nula, sendo ela verdadeira (erro do tipo I), 
não excede um valor prefixado chamado de nível de significância α do teste. Ao menor nível 
de significância para o qual a hipótese nula é rejeitada denominamos probabilidade de 
significância (p-valor). Se p-valor > α há evidências de que a hipótese nula é verdadeira. 
ABC DO SAS FERNANDO BRITO LOPES 
 49
PROC UNIVARIATE 
 
A PROC UNIVARIATE é utilizada para a obtenção de estatísticas descritivas. Ela 
difere de outros procedimentos SAS por fornecer maiores detalhes das variáveis, tais como 
plots das distribuições, tabelas de freqüência e testes estatísticos para a normalidade. 
 
 
Forma geral: 
 
PROC UNIVARIATE DATA = arquivo de dados opções; 
VAR variáveis; 
BY variáveis; 
FREQ variável; 
ID variáveis; 
OUTPUT OUT = arquivo de dados palavra-chave = nomes; 
 
 
Opções disponíveis: 
 
FREQ gera uma tabela de freqüência com valores de freqüência, percentagens e 
percentagens acumuladas. 
NOPRINT suprime toda a informação do OUTPUT. Esta opção é utilizada geralmente 
na criação de um arquivo de dados de saída. 
NORMAL desempenha um teste para a hipótese nula de que os dados provém de uma 
distribuição normal. Dependendo do tamanho da amostra, o teste utilizado 
será baseado na estatística de Shapiro-Wilk (N<2000) ou na estatística de 
Kolmogorov’s D. (N>2000). 
PLOT produz plotes de probabilidade da distribuição normal e plotes em “box” que 
auxiliam na determinação da forma da distribuição dos dados investigados. 
 
 
Comandosselecionados: 
 
VAR lista as variáveis a serem sumarizadas no arquivo de dados. 
BY especifica subgrupos onde as estatísticas devem ser obtidas. Para usar este 
comando o arquivo já deverá estar ordenado pela variável de subgrupo . 
FREQ especifica variáveis de freqüência. 
ID especifica as variáveis que irão identificar os valores extremos. 
OUTPUT OUT cria arquivo de saída que irá gravar as estatísticas geradas. 
 
 
Estatísticas reservadas utilizadas na criação de um arquivo de saída: 
 
N NMISS Prob T 
MEAN VAR KURTOSIS 
STDMEAN CV MEDIAN 
SUM RANGE 
STD SKEWNESS 
 
ABC DO SAS FERNANDO BRITO LOPES 
 50
Exemplo24 - Dados de pesos de colmos de uma certa variedade de cana-de-açúcar. Calcular 
a média e a variância, construir o gráfico ramo-e-folhas e um histograma, testar se os dados 
têm distribuição normal. Interpretar os demais resultados. 
 
DATA COLMOS; 
INPUT PESO@@; 
CARDS; 
16.89 11.84 18.69 16.51 18.97 
15.21 17.90 17.38 12.56 13.73 
14.60 18.94 16.72 14.41 13.23 
16.65 15.73 16.86 17.87 15.45 
18.19 16.04 15.72 16.68 17.76 
12.03 14.00 14.74 16.68 12.39 
15.30 15.49 11.53 19.13 15.01 
13.47 16.83 15.47 11.63 16.22 
12.14 17.69 12.54 18.73 17.02 
17.03 16.44 13.58 10.46 16.89 
; 
RUN; 
PROC UNIVARIATE NORMAL PLOT; 
TITLE 'ESTATÍSTICA DESCRITIVA'; 
RUN; 
PROC CHART; 
TITLE 'HISTOGRAMA'; 
VBAR PESO; 
RUN; 
 
 
 Estatística descritivaEstatística descritivaEstatística descritivaEstatística descritiva 
 
 The UNIVARIATE ProcedureThe UNIVARIATE ProcedureThe UNIVARIATE ProcedureThe UNIVARIATE Procedure 
 Variable: PESO 
 
 Moments 
 
 N 50 Sum Weights 50 
 Mean 15.5394 Sum Observations 776.97 
 Std Deviation 2.26512099 Variance 5.1307731 
 Skewness -0.4188372 Kurtosis -0.7325527 
 Uncorrected SS 12325.0555 Corrected SS 251.407882 
 Coeff Variation 14.576631 Std Error Mean 0.32033648 
 
 Basic Statistical MeasuresBasic Statistical MeasuresBasic Statistical MeasuresBasic Statistical Measures 
 
 Location VariabilityLocation VariabilityLocation VariabilityLocation Variability 
 
 Mean 15.53940 Std Deviation 2.26512 
 Median 15.88500 Variance 5.13077 
 Mode 16.68000 Range 8.67000 
 Interquartile Range 3.29000 
 
 NOTE: The mode displayed is the smallest of 2 modes with a count of 2. 
 
 Tests for Location: Mu0=0Tests for Location: Mu0=0Tests for Location: Mu0=0Tests for Location: Mu0=0 
 
 Test -Statistic- -----p Value------ 
 
 Student's t t 48.50962 Pr > |t| <.0001 
 Sign M 25 Pr >= |M| <.0001 
 Signed Rank S 637.5 Pr >= |S| <.0001 
ABC DO SAS FERNANDO BRITO LOPES 
 51
 
 Tests for NormalityTests for NormalityTests for NormalityTests for Normality 
 
 Test Test Test Test --------StatisticStatisticStatisticStatistic------------ --------------------p Valuep Valuep Valuep Value------------------------ 
 
 Shapiro-Wilk W 0.956288 Pr < W 0.0622 
 Kolmogorov-Smirnov D 0.114535 Pr > D 0.0977 
 Cramer-von Mises W-Sq 0.118489 Pr > W-Sq 0.0644 
 Anderson-Darling A-Sq 0.712164 Pr > A-Sq 0.0618 
 
As análises acima fornecem estatísticas descritivas da variável PESO, além do teste 
para normalidade. O valor -0.4188372 de assimetria traduz a forma simétrica da distribuição. 
A estatística de curtose de -0.7325527 significa que a distribuição de valores é parcialmente 
achatada. O p-valor associado ao teste de normalidade, dado por Pr < W, mostra que existe 
622 chances em 10000 que se obtenha este mesmo resultado se os dados fossem oriundos de 
uma população Normal. Por esta razão são boas as chances de rejeitar a hipótese nula. Em 
geral, rejeita-se a hipótese nula de normalidade dos dados somente quando o p-valor for 
menor que 0.05 . 
 
Os quartis, percentis, a moda da distribuição, e os valores extremos estão relacionados 
a seguir: 
 
 Quantiles (Definition 5)Quantiles (Definition 5)Quantiles (Definition 5)Quantiles (Definition 5) 
 
 Quantile Quantile Quantile Quantile EstimateEstimateEstimateEstimate 
 
 100% Max 19.130 
 99% 19.130 
 95% 18.940 
 90% 18.440 
 75% Q3 17.020 
 50% Median 15.885 
 25% Q1 13.730 
 10% 12.085 
 5% 11.630 
 1% 10.460 
 0% Min 10.460 
 
 
 Extreme ObservationsExtreme ObservationsExtreme ObservationsExtreme Observations 
 
 --------------------LowestLowestLowestLowest---------------- ----------------HighestHighestHighestHighest---------------- 
 
 Value Obs Value ObsValue Obs Value ObsValue Obs Value ObsValue Obs Value Obs 
 
 10.46 49 18.69 3 
 11.53 33 18.73 44 
 11.63 39 18.94 12 
 11.84 2 18.97 5 
 12.03 26 19.13 34ABC DO SAS FERNANDO BRITO LOPES 
 52
O plote ‘stem leaf’ (ramos e folhas) mostra a distribuição dos valores observados. 
Entre estes plotes e o ‘boxplot’, há uma coluna que fornece a freqüência de observações em 
cada barra. O box plote indica o 25º e 75º percentil. A linha central indica a mediana (50º 
percentil). O sinal de (+) indica a média da distribuição, que está coincidindo com a mediana. 
 
 
 Stem Leaf # BoxplotStem Leaf # BoxplotStem Leaf # BoxplotStem Leaf # Boxplot 
 
 19 01 2 | 
 18 779 3 | 
 18 2 1 | 
 17 7899 4 | 
 17 004 3 +-----+ 
 16 567778999 9 | | 
 16 024 3 | | 
 15 5577 4 *--+--* 
 15 0234 4 | | 
 14 67 2 | | 
 14 04 2 | | 
 13 567 3 +-----+ 
 13 2 1 | 
 12 56 2 | 
 12 014 3 | 
 11 568 3 | 
 11 | 
 10 5 1 | 
 10 
 ----+----+----+----+ 
 
 
O plote a seguir mostra tantos sinais positivos quanto asteriscos. Os sinais de (+) 
formam uma linha reta. Os (*) representam os valores amostrais. Se a amostra é gerada por 
uma distribuição normal, os asteriscos devem formar uma linha reta e cobrir a maioria dos 
sinais positivos. A distribuição amostral aproxima-se da normalidade. 
 
 Normal Probability PlotNormal Probability PlotNormal Probability PlotNormal Probability Plot 
 
 19.25+ ++ * 
 | *+** * 
 | +*+ 
 | *** 
 | ** 
 | ***** 
 | ** ++ 
 | **++ 
 | **** 
 14.75+ **+ 
 | *+ 
 | ++* 
 | ++** 
 | ++ ** 
 | ++*** 
 | *+** 
 | +++ 
 | ++ 
 10.25+ ++* 
 +----+----+----+----+----+----+----+----+----+----+ 
 -2 -1 0 +1 +2 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 53
 O plote a seguir mostra a distribuição dos dados em relação à sua freqüência. Observa-
se uma leve tendência à normalidade. 
 
 HistogramaHistogramaHistogramaHistograma 
 
FrequencyFrequencyFrequencyFrequency 
 
14 ˆ ***** 
 ‚ ***** 
13 ˆ ***** 
 ‚ ***** 
12 ˆ ***** 
 ‚ ***** 
11 ˆ ***** ***** 
 ‚ ***** ***** 
10 ˆ ***** ***** 
 ‚ ***** ***** 
 9 ˆ ***** ***** 
 ‚ ***** ***** 
 8 ˆ ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** 
 7 ˆ ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** 
 6 ˆ ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** 
 5 ˆ ***** ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** ***** 
 4 ˆ ***** ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** ***** 
 3 ˆ ***** ***** ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** ***** ***** 
 2 ˆ ***** ***** ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** ***** ***** 
 1 ˆ ***** ***** ***** ***** ***** ***** ***** 
 ‚ ***** ***** ***** ***** ***** ***** ***** 
 Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 
 10.5 12.0 13.5 15.0 16.5 18.0 19.5 
 
 PESO MidpointPESO MidpointPESO MidpointPESO Midpoint 
 
Análise de Correlação e Regressão 
 
Existem numerosos procedimentos estatísticos para investigar relacionamentos 
bivariados (entre somente duas variáveis). Estes procedimentos podem fornecer um teste 
estatístico de significância, uma medida de associação, ou ambos. O teste estatístico objetiva 
testar hipóteses sobre o grau de relacionamento entre variáveis na população. Por exemplo, o 
coeficiente de correlação de Pearson. Num estudo para se testar a hipótese nula de que a 
correlação entre duas variáveis é zero na população, uma amostra de 200 observações 
determinou um coeficiente de correlação entre duas variáveis de 0.35. Com base nesta 
amostra, o resultado do teste forneceu uma probabilidade de significância de 0.001. Este p-
valor sugere que existe menos que uma chance em 1000 de se obter um valor igual ou 
superior à 0.35, para correlação amostral, se a hipótese nula fosse verdadeira. Rejeita-se 
portanto a hipótese nula, concluindo-se que a correlação é significativamente diferente dezero 
na população. 
A escolha apropriada da estatística a ser usada no estudo do relacionamento entre duas 
variável irá depender da natureza delas. Atenção particular deve ser dada aos níveis de 
ABC DO SAS FERNANDO BRITO LOPES 
 54
medidas usados para avaliar as duas variáveis. Uma breve discussão à este respeito é feita a 
seguir. 
Uma variável medida numa escala nominal representa classes que indicam o grupo ao 
qual pertence uma determinada observação. Por exemplo, SEXO é uma variável que está 
numa escala nominal. Uma observação pode ser classificada como sendo da classe 
"masculino" ou da classe "feminino". 
Uma variável medida numa escala ordinal representa valores num “rank” ordenado, ou 
seja, possui hierarquia. Por exemplo, se cada aluno de uma turma fosse avaliado a respeito de 
sua habilidade verbal. O melhor aluno foi avaliado com o valor 1, o segundo melhor com o 
valor 2, e assim por diante. Este “rank” de valores são ditos ordinais. Escalas ordinais de 
valores porém possuem uma limitação: iguais diferenças na escala de valores não tem 
necessariamente o mesmo significado quantitativo. Isto quer dizer que a diferença de 
habilidade verbal entre um aluno com grau 1 e um aluno com grau 2 não é necessariamente a 
mesma diferença existente entre as habilidades de um aluno com grau 2 e um com grau 3. 
Uma variável medida numa escala de intervalo significa que iguais diferenças entre 
valores da escala têm igual significado quantitativo. Um exemplo é a escala Fahrenheit de 
medição de temperatura. A diferença entre 70 e 75 graus é igual a diferença entre 75 e 80 
graus. As unidades de medidas são iguais através de todo o range da escala. A limitação 
existente nesta escala é que não existe um ponto zero real, ou seja, o zero da distribuição de 
temperaturas não indica que não haja nenhum calor presente no ambiente. 
Uma variável medida numa escala de razão é aquela que iguais diferenças entre 
valores da escala tem igual significado quantitativo. Neste caso, além deste fato, é possível 
interpretar a razão entre os valores da escala. Um valor para peso igual à zero indica nenhum 
peso corporal. Com isto, é possível estabelecer que o peso de uma criança com 20 Kg é o 
dobro de peso de uma criança com 10 kg. 
O quadro a seguir identifica as estatísticas apropriadas para avaliar o relacionamento 
de pares de variáveis nos seus respectivos níveis de medida. 
 
QUADRO COM ESTATÍSTICAS APROPRIADAS 
 
 Preditora (Independente) - Xi 
R
es
po
st
a
 Nominal Ordinal Intervalo razão 
Razão ANOVA Spearman Pearson ou Spearman Pearson ou Spearman 
Intervalo ANOVA Spearman Pearson ou Spearman — 
Ordinal Kruskal Wallis Spearman — — 
Nominal Chi-quadrado — — — 
 
Correlação de Pearson (PROC CORR) 
 
O estudo de medidas de associação reflete o grau da intensidade da relação entre 
variáveis. Se X e Y representam duas variáveis, ambas acessadas na escala de intervalo ou de 
razão, o diagrama de dispersão irá mostrar a localização dos pontos (x , y) em um sistema de 
coordenadas retangulares. Se os pontos desse diagrama se distribuírem nas proximidades de 
uma reta, como nas figuras (A) e (B) a seguir, a correlação é denominada linear. Se todos os 
pontos se distribuírem próximos de alguma curva, a correlação é denominada não linear, 
como pode ser visto na figura (C). Quando os pontos não apresentam nenhuma forma 
definida, figura (D), diz-se que as variáveis x e y são não correlacionadas. Quando o 
coeficiente de Pearson é utilizado para medir o grau de relacionamento entre duas variáveis 
com relacionamento não linear, ele normalmente subestima o verdadeiro valor. Por esta razão 
ABC DO SAS FERNANDO BRITO LOPES 
 55
é sempre prudente avaliar primeiro o diagrama de dispersão para as variáveis, usando para 
isso a PROC PLOT, que tem a seguinte forma geral: 
 
PROC PLOT DATA= ARQSAS; 
PLOT Y*X; 
RUN; 
 
Exemplo 25 
 
DATA HISTOGRAMA_A; 
DO X=0 TO 100 BY 2; 
Y=2.54-3.83*X; 
OUTPUT; 
END; 
RUN; 
PROC PLOT DATA= HISTOGRAMA_A; 
PLOT Y*X; 
RUN; 
DATA HISTOGRAMA_B; 
DO X=0 TO 100 BY 2; 
Y=2.54-3.83*X; 
OUTPUT; 
END; 
RUN; 
PROC PLOT DATA= HISTOGRAMA_B; 
PLOT Y*X; 
RUN; 
 
 
 Histograma Histograma Histograma Histograma (A)(A)(A)(A) 
 
 Plot of y*x. Plot of y*x. Plot of y*x. Plot of y*x. Legend: A = 1 obs, B = 2 obs, etc.Legend: A = 1 obs, B = 2 obs, etc.Legend: A = 1 obs, B = 2 obs, etc.Legend: A = 1 obs, B = 2 obs, etc. 
 
 yyyy ‚ 
 ‚ 
 385.54 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 308.94 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 232.34 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 155.74 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 79.14 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 2.54 ˆ A 
 ‚ 
 Šƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒ 
 0 20 40 60 80 100 
xxxx 
 
 Histograma (B)Histograma (B)Histograma (B)Histograma (B) 
 
ABC DO SAS FERNANDO BRITO LOPES 
 56
 
 
 Plot of y*x. Plot of y*x. Plot of y*x. Plot of y*x. Legend: A = 1 obs, B = 2 obs, etc.Legend: A = 1 obs, B = 2 obs, etc.Legend: A = 1 obs, B = 2 obs, etc.Legend: A = 1 obs, B = 2 obs, etc. 
 
 
 yyyy ‚ 
 ‚ 
 2.54 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 -74.06 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 -150.66 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 -227.26 ˆ AA 
 ‚AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 -303.86 ˆ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 ‚ AA 
 -380.46 ˆ A 
 ‚ 
 Šƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒ 
 0 20 40 60 80 100 
 xxxx 
 
DATA HISTOGRAMA_C; 
DO X=-6 TO 6 BY 0.2; 
Y=X-X**2; 
OUTPUT; 
END; 
RUN; 
PROC PLOT DATA= HISTOGRAMA_C; 
PLOT Y*X; 
RUN; 
 
DATA CONTORNOS_D; 
 FORMAT Z 5.1; 
 DO X=0 TO 400 BY 5; 
 DO Y=0 TO 350 BY 10; 
 Z=46.2+.09*X-.0005*X**2+.1*Y-.0005*Y**2+.0004*X*Y; 
 OUTPUT; 
 END; 
 END; 
RUN; 
PROC PLOT DATA = CONTORNOS_D; 
PLOT Y*X=Z / CONTOUR =10; 
 TITLE 'PLOTANDO CONTORNOS'; 
RUN; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 57
 
ABC DO SAS FERNANDO BRITO LOPES 
 58
 
 Histograma (Histograma (Histograma (Histograma (CCCC)))) 
 
 
 Plot of y*x. Legend: A = 1 obs, B = 2 obs, etc.Plot of y*x. Legend: A = 1 obs, B = 2 obs, etc.Plot of y*x. Legend: A = 1 obs, B = 2 obs, etc.Plot of y*x. Legend: A = 1 obs, B = 2 obs, etc. 
 
 
 y ‚ 
 ‚ 
 0 ˆ AAAAAAAAAA 
 ‚ AAA AAA 
 ‚ AA AA 
 ‚ A A 
 ‚ AA AA 
 ‚ A A 
 ‚ A A 
 -10 ˆ AA AA 
 ‚ A A 
 ‚ A A 
 ‚ A A 
 ‚ 
 ‚ A A 
 ‚ A A 
 -20 ˆ A A 
 ‚ A A 
 ‚ 
 ‚ A A 
 ‚ A A 
 ‚ A A 
 ‚ 
 -30 ˆ A A 
 ‚ 
 ‚ A 
 ‚ A 
 ‚ 
 ‚ A 
 ‚ 
 -40 ˆ A 
 ‚ A 
 ‚ 
 ‚ 
 ‚ 
 ‚ 
 ‚ 
 -50 ˆ 
 ‚ 
 Šƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒ 
 -6 -4 -2 0 2 4 6 
 
 x 
 
ABC DO SAS FERNANDO BRITO LOPES 
 59
 Histograma de ContornosHistograma de ContornosHistograma de ContornosHistograma de Contornos (D)(D)(D)(D) 
 
 
 Contour plot of Y*X.Contour plot of Y*X.Contour plot of Y*X.Contour plot of Y*X. 
 
 
 Y ‚ 
 350 ˆ ======++++++OOOOOOOOXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXOOOOOOOO 
 340 ˆ ====++++++OOOOOOOXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXOOOOOOO 
 330 ˆ =++++++OOOOOOOXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXOOOOO 
 320 ˆ +++++OOOOOOOXXXXXXXXWWWWWWWWWWWWWW********************WWWWWWWWWWWWWWXXXXXXXXXOOOO 
 310 ˆ +++OOOOOOXXXXXXXXWWWWWWWWWWWW*****************************WWWWWWWWWWWXXXXXXXXOOOO 
 300 ˆ +OOOOOOXXXXXXXXWWWWWWWWWW***********************************WWWWWWWWWWXXXXXXXXOOO 
 290 ˆ OOOOOXXXXXXXWWWWWWWWWW****************************************WWWWWWWWWXXXXXXXOOO 
 280 ˆ OOOXXXXXXXWWWWWWWWW********************####********************WWWWWWWWWXXXXXXXOO 
 270 ˆ OXXXXXXXWWWWWWWWW**************##################***************WWWWWWWWXXXXXXXOO 
 260 ˆ XXXXXXWWWWWWWW*************#########################************WWWWWWWWXXXXXXXOO 
 250 ˆ XXXXWWWWWWWW************#############################************WWWWWWWWXXXXXXOO 
 240 ˆ XXXWWWWWWW***********#################################***********WWWWWWWWXXXXXXOO 
 230 ˆ XWWWWWWWW**********####################################**********WWWWWWWXXXXXXXOO 
 220 ˆ WWWWWWW**********######################################**********WWWWWWWXXXXXXOOO 
 210 ˆ WWWWWW*********########################################**********WWWWWWWXXXXXXOOO 
 200 ˆ WWWWW*********#########################################*********WWWWWWWXXXXXXOOOO 
 190 ˆ WWW**********##########################################*********WWWWWWWXXXXXXOOOO 
 180 ˆ WW*********###########################################*********WWWWWWWXXXXXXOOOOO 
 170 ˆ W*********############################################*********WWWWWWWXXXXXXOOOOO 
 160 ˆ W*********###########################################*********WWWWWWWXXXXXXOOOOO+ 
 150 ˆ *********###########################################*********WWWWWWWXXXXXXOOOOO++ 
 140 ˆ ********###########################################*********WWWWWWWXXXXXXOOOOO+++ 
 130 ˆ ********##########################################*********WWWWWWWXXXXXXOOOOO++++ 
 120 ˆ ********########################################**********WWWWWWWXXXXXXOOOOO+++++ 
 110 ˆ ********#######################################**********WWWWWWWXXXXXXOOOOO+++++= 
 100 ˆ ********#####################################**********WWWWWWWXXXXXXOOOOOO+++++== 
 90 ˆ ********###################################**********WWWWWWWWXXXXXXOOOOO+++++==== 
 80 ˆ *********################################***********WWWWWWWXXXXXXXOOOOO+++++====- 
 70 ˆ **********############################************WWWWWWWWXXXXXXOOOOOO+++++====-- 
 60 ˆ ************######################**************WWWWWWWWXXXXXXXOOOOO+++++=====--- 
 50 ˆ ***************###############***************WWWWWWWWWXXXXXXXOOOOOO+++++====----' 
 40 ˆ W******************************************WWWWWWWWWXXXXXXXOOOOOO+++++=====----'' 
 30 ˆ WW**************************************WWWWWWWWWWXXXXXXXOOOOOO+++++=====----'''' 
 20 ˆ WWWW********************************WWWWWWWWWWWXXXXXXXXOOOOOO++++++====-----''''. 
 10 ˆ WWWWWW**************************WWWWWWWWWWWWWXXXXXXXXOOOOOO++++++=====----''''... 
 0 ˆ WWWWWWWWWW*****************WWWWWWWWWWWWWWWXXXXXXXXOOOOOOO++++++=====----'''''....Šƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒˆƒƒ 
 0 50 100 150 200 250 300 350 400 
 
 X 
 
 Symbol Z Symbol Z Symbol Z Symbol ZSymbol Z Symbol Z Symbol Z Symbol ZSymbol Z Symbol Z Symbol Z Symbol ZSymbol Z Symbol Z Symbol Z Symbol Z 
 
 ..... 2.2 - 8.1 ===== 19.9 - 25.8 XXXXX 37.6 - 43.5 ##### 55.4 - 61.3 
 ''''' 8.1 - 14.0 +++++ 25.8 - 31.7 WWWWW 43.5 - 49.4 
 ----- 14.0 - 19.9 OOOOO 31.7 - 37.6 ***** 49.4 - 55.4 
ABC DO SAS FERNANDO BRITO LOPES 
 60
Para o tratamento quantitativo do problema da dispersão dos dados amostrais é 
necessário estabelecer medidas de correlação. O coeficiente de correlação de Pearson, 
simbolizado por “r”, será utilizado para medir o relacionamento entre duas variáveis que 
estejam na escala de intervalo ou de razão. Outra consideração a ser feita ao usar esta medida 
de associação, é que ambas as amostras tenham sido retiradas de uma população Normal. 
Caso contrário, uma medida de associação não paramétrica deverá ser usada, tal como o 
coeficiente de correlação de Spearman. 
O range de “r” varia de -1 a 1. Se “r” for um valor próximo de 1 significa que as duas 
variáveis são correlacionadas positivamente, se for próximo de -1, significa que as variáveis 
são correlacionadas negativamente. Valores de “r” próximos de zero correspondem a uma 
dispersão de pontos que não mostra nem uma tendência crescente, nem decrescente, 
indicando uma baixa correlação entre as variáveis. 
 
 
PROC CORR 
 
A “procedure” CORR é utilizada para gerar coeficientes de correlação. Quando é 
utilizada sozinha, ela obtém coeficientes de Pearson para todas as variáveis numéricas do 
arquivo, além de estatísticas básicas como médias e desvios padrões da distribuição de dados. 
Outros coeficientes de correlacão podem ser obtidos como opção da PROC CORR. 
São eles: Kendall, Hoeffding e Spearman, que são medidas não paramétricas de associação. 
 
FORMA GERAL: 
 
PROC CORR opções; 
VAR variáveis; 
WITH variáveis; 
FREQ variáveis; 
BY variáveis; 
RUN; 
 
OPÇÕES DISPONÍVEIS: 
 
DATA= arquivo.sas arquivo com os dados a serem analisados. 
OUTP= arquivo.sas arquivo de saída - Pearson 
OUTS= arquivo.sas arquivo de saída - Sperman 
OUTK= arquivo.sas arquivo de saída - Kendall 
OUTH = arquivo.sas arquivo de saída - Hoeffding 
NOSIMPLE suprime a impressão das estatísticas descritivas básicas. 
 
COMANDOS DISPONÍVEIS: 
 
VAR variáveis especifica as variáveis a serem correlacionadas 
WITH variáveis especifica as variáveis que devem aparecer na lateral da matriz de 
correlação. 
FREQ variável especifica variáveis de freqüência 
BY variáveis especifica subgrupos onde a correlação deve ser obtida. Para usar o 
comando BY, o arquivo já deve estar ordenado pela variável de subgrupo. 
ABC DO SAS FERNANDO BRITO LOPES 
 61
Exemplo 26 - O tempo necessário para um trem parar depois que percebe um perigo é 
composto de tempo de reação e tempo de freagem. A variável DIST representa a distância de 
parada de um trem que está a uma velocidade VELOC no instante que o perigo é avistado. 
Analise o diagrama de dispersão e determine o coeficiente de correlação entre as duas 
variáveis. 
 
DATA PERIGO; 
INPUT VELOC DIST @@; 
CARDS; 
20 54 
30 90 
40 138 
50 206 
60 292 
70 396 
; 
PROC PLOT; 
PLOT DIST*VELOC; 
PROC CORR; 
VAR VELOC DIST; 
TITLE 'CORRELAÇAO ENTRE VELOCIDADE E DISTANCIA DE PARADA'; 
RUN; 
 
 
 Histograma de ContornosHistograma de ContornosHistograma de ContornosHistograma de Contornos 
 
 Plot of DIST*VELOC. Legend: A = 1 obs, B = 2 obs, etc.Plot of DIST*VELOC. Legend: A = 1 obs, B = 2 obs, etc.Plot of DIST*VELOC. Legend: A = 1 obs, B = 2 obs, etc.Plot of DIST*VELOC. Legend: A = 1 obs, B = 2 obs, etc. 
 DISTDISTDISTDIST 
 400 ˆ A 
 ‚ 
 ‚ 
 350 ˆ 
 ‚ 
 ‚ 
 300 ˆ 
 ‚ A 
 ‚ 
 250 ˆ 
 ‚ 
 ‚ A 
 200 ˆ 
 ‚ 
 ‚ 
 150 ˆ 
 ‚ A 
 ‚ 
 100 ˆ 
 ‚ A 
 ‚ 
 50 ˆ A 
 Šƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒ VELOCVELOCVELOCVELOC 
 20 30 40 50 60 70 
 
 O diagrama de dispersão ostra claramente uma tendência crescente da distribuição dos 
dados, ou seja, aumentando-se a velocidade do trem, aumenta-se a distância de parada. 
ABC DO SAS FERNANDO BRITO LOPES 
 62
 CORRELAÇAO ENTRE VELOCIDADE E DISTANCIA DE PARADACORRELAÇAO ENTRE VELOCIDADE E DISTANCIA DE PARADACORRELAÇAO ENTRE VELOCIDADE E DISTANCIA DE PARADACORRELAÇAO ENTRE VELOCIDADE E DISTANCIA DE PARADA 
 
 The CORR ProcedureThe CORR ProcedureThe CORR ProcedureThe CORR Procedure 
 
 2 Variables: VELOC DIST 
 
 Simple Statistics 
 
 Variable N Mean Std Dev Sum Minimum Maximum 
 VELOC 6 45.00000 18.70829 270.00000 20.00000 70.00000 
 DIST 6 196.00000 129.67652 1176 54.00000 396.00000 
 
 Pearson Correlation Coefficients, N = 6 
 Prob > |r| under H0: Rho=0 
 
 VELOC DIST 
 
 VELOC 1.00000 0.98268 
 
 DIST 0.98268 1.00000 
 0.0004 
 
O valor de 0.98268 mede o coeficiente de correlação entre as variáveis VELOC e 
DIST. Um p-valor de 0.0004 indica uma forte evidência que a correlação é não nula. O p-
valor é a probabilidade de significância para se testar a hipótese de que a verdadeira 
correlação da população em questão é zero. 
 
 
Regressão (Proc Reg) 
 
 Os coeficientes de correlação indicam somente a existência ou não de algum tipo de 
relacionamento entre variáveis. Para investigar a forma desse relacionamento, o método mais 
apropriado é a análise de regressão, onde a relação pode ser expressa sob forma matemática, 
por meio de uma equação que interligue as variáveis. 
Através do diagrama de dispersão é possível visualizar uma curva que se aproxime dos 
dados. Essa curva é denominada curva de ajustamento. 
Para fins de referência, a seguir encontram-se relacionados vários tipos comuns de 
curvas de ajustamento e suas equações. As variáveis independentes estão representadas pela 
letra X e as variáveis dependentes pela letra Y. As demais letras representam constantes. 
 
Função Linear xaay 10 += 
Função Quadrática 
2
210 xaxaay ++= 
Função Cúbica 
3
3
2
210 xaxaxaay +++= 
FunçãoExponencial 
xaby =
 
 
xaxbay 100 )(logloglog +=+= 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 63
 
 Para evitar o critério individual na construção de funções que se adaptem ao conjunto 
de dados, é necessário instituir uma definição da "melhor função de ajustamento". Uma 
medida da qualidade do ajustamento aos dados apresentados (aderência) é proporcionada a 
partir da distância dos pontos observados até a equação de regressão. De todas as equações 
que podem ser traçadas através do grupo de pontos no diagrama de dispersão, a função que 
melhor se ajusta é aquela com a menor soma dos quadrados das distâncias (Método dos 
Mínimos Quadrados). 
 Estas distâncias são designadas como desvios, erros ou resíduos, e podem ser 
positivas, negativas ou nulas, como é apresentado na figura a seguir: 
 
 
 
 
Modelo Linear: 
 
jjj xy εββ ++= 10 , onde: 
 
yj: variável resposta; 
xj: efeitos fixos; 
β0 e β1: parâmetros fixos desconhecidos; 
εj ~ N id (0,α²): resíduo. 
 
 
 Considerando a regressão como um particionamento da Soma Total dos Quadrados: 
 
 
( ) ( ) ( )222 ˆˆ ∑∑∑ −+−=− JJJJ YYYYYY 
 
ABC DO SAS 
 
onde: 
 
SST é a soma total dos quadrados;
SSM é a soma dos quadrados devido ao modelo (soma dos quadrados devido à 
regressão); 
SSE é a soma dos quadrados 
 
Do modelo, é necessário estimar:
 
• εj erro médio quadrático;
• β0 e β1 efeitos fixos.
 
• Testar as Hipóteses:
 
 H0: β1 = 0 
 β0 = 0 
 
• Obter valores preditos e limites de predição;
 
• Estimar a média da variável resposta Y, dado um 
estimativas por ponto como por intervalo.
 
Resíduos 
 
 Os resíduos representam o comportamento de Y (variável resposta), do qual as 
variáveis independentes não fazem a estimativa. Se for suposto que o modelo é correto, qu
não se tenha omitido nenhuma variável independente, e também que os resíduos são normais 
e independentemente distribuídos, com média zero e variância constante, pode
hipóteses, assinalar limites de confiança, predizer valores da variável depend
variáveis independentes e computar probabilidades de significância.
 Um plote dos resíduos sobres as variáveis independentes ou sobre os valores preditos 
pode ser gerado para avaliar a qualidade do ajuste. Se o modelo necessitar de algum 
termo, o plote dos resíduos sugere que tipo de termo pode ser adicionado ao modelo. Alguns 
modelos são mostrados a seguir:
 
 
 FERNANDO 
SSESSMSST +=
 
 
é a soma total dos quadrados; 
é a soma dos quadrados devido ao modelo (soma dos quadrados devido à 
é a soma dos quadrados devido ao erro , ou resíduo. 
Do modelo, é necessário estimar: 
erro médio quadrático; 
efeitos fixos. 
Testar as Hipóteses: 
 
 
Obter valores preditos e limites de predição; 
Estimar a média da variável resposta Y, dado um valor fixo X, determinando tanto as 
estimativas por ponto como por intervalo. 
Os resíduos representam o comportamento de Y (variável resposta), do qual as 
variáveis independentes não fazem a estimativa. Se for suposto que o modelo é correto, qu
não se tenha omitido nenhuma variável independente, e também que os resíduos são normais 
e independentemente distribuídos, com média zero e variância constante, pode
hipóteses, assinalar limites de confiança, predizer valores da variável depend
variáveis independentes e computar probabilidades de significância. 
Um plote dos resíduos sobres as variáveis independentes ou sobre os valores preditos 
pode ser gerado para avaliar a qualidade do ajuste. Se o modelo necessitar de algum 
termo, o plote dos resíduos sugere que tipo de termo pode ser adicionado ao modelo. Alguns 
modelos são mostrados a seguir: 
ERNANDO BRITO LOPES 
64
é a soma dos quadrados devido ao modelo (soma dos quadrados devido à 
valor fixo X, determinando tanto as 
Os resíduos representam o comportamento de Y (variável resposta), do qual as 
variáveis independentes não fazem a estimativa. Se for suposto que o modelo é correto, que 
não se tenha omitido nenhuma variável independente, e também que os resíduos são normais 
e independentemente distribuídos, com média zero e variância constante, pode-se provar 
hipóteses, assinalar limites de confiança, predizer valores da variável dependente a partir das 
Um plote dos resíduos sobres as variáveis independentes ou sobre os valores preditos 
pode ser gerado para avaliar a qualidade do ajuste. Se o modelo necessitar de algum outro 
termo, o plote dos resíduos sugere que tipo de termo pode ser adicionado ao modelo. Alguns 
 
ABC DO SAS FERNANDO BRITO LOPES 
 65
PROC REG 
 
A “procedure” REG é o procedimento SAS mais comum para análise da regressão. É 
um procedimento interativo, ou seja, o usuário pode dispor de seus comandos básicos para 
ajustar uma função, verificar a saída das estatísticas, e posteriormente adicionar mais 
comandos dando continuidade à suas análises sem necessidade de reinicializar o comando da 
PROC. Quando usado interativamente, o comando RUN não finaliza o procedimento. Para 
finalizá-lo o usuário deve estabelecer outro DATA STEP ou PROC STEP, ou usar o 
comando QUIT, que nunca deve ser acessado quando o procedimento estiver em curso. 
 
 
FORMA GERAL: 
 
PROC REG DATA = arquivo SAS opções; 
MODEL dependente = independente / opções; 
VAR variável; 
ID variável; 
OUTPUT OUT = novo arquivo 
P = nova variável R = nova variável 
U95 = nova variável L95 = nova variável 
U95M = nova variável L95M = nova variável; 
PLOT variável Y * variável X = 'símbolo'; 
PRINT opções; 
RUN; 
 
 
OPÇÕES DISPONÍVEIS NA PROC REG: 
 
SIMPLE Lista estatísticas descritiva para cada variável. 
OUTEST Cria um data set contendo as estimativas dos parâmetros do modelo de 
regressão. 
 
 
OPÇÕES DISPONÍVEIS NO COMANDO 
 
CLI Fornece limites de confiança superior e inferior a 95% para um valor 
particular predito da variável dependente. 
CLM Fornece limites de confiança superior e inferior a 95% para a média da 
variável dependente nos níveis da(s) variável(is) independentes para cada 
observação. 
P Fornece valores preditos a partir do modelo estimado para cada observação 
do arquivo a de entrada. 
R Fornece valores residuais (REAL-PREDITO) para cada observação e uma 
análise dos resíduos. 
SELECTION = método 
Especifica o método usado para seleção do modelo (Backward, Stepwise, 
MAXR, ADJRSQ, por exemplo). O default é NONE (usa o modelo 
completo). 
ADJRSQ Fornece o R-Square ajustado para o grau de liberdade, para cada modelo 
selecionado. 
ABC DO SAS FERNANDO BRITO LOPES 
 66
AIC Fornece o Critério de Informação de Akaike's. 
BIC Fornece o Critério de Informação Bayesiano de Sawa . 
MSE Fornece o erro médio quadrático para cada modelo. 
 
 
COMANDOS DISPONÍVEIS: 
 
MODEL especifica as variáveis dependentes e independentes. 
VAR lista a variável (ou variáveis) que possam vir a ser adicionadas no modelo 
durante o processo de análise. Este comando deve aparecer antes do 
primeiro comando RUN. 
ID especifica a variável que identifica as observações na saída do relatório, 
quando são solicitadas estimativas de valores individuais de uma variável 
independente (valores preditos), valores residuais, etc. 
 
OUTPUT especifica o arquivo de saída e os nomes das variáveis que irão conter os 
valores previstos, residuais, etc. 
PLOT gera plotes de dispersão com a variável y representando o eixo vertical e a 
variável x o eixo horizontal. Para plotar estatísticas utiliza-se as palavras 
chave (nomes reservados) disponíveis no comando OUTPUT. (Ex: plot 
y.*p;) 
PRINT Lista as opções disponíveis. 
 
 
Os seguintes nomes reservados são utilizados para especificar as estatísticas desejadas. 
Eles devem ser seguidos por um nome de variável: 
 
P. (ou PREDICTED) representaos valores preditos. 
R. (ou RESIDUAL) representa os valores residuais para cada observação. 
U95, L95 representam, respectivamente, os limites superior e inferior de predição para 
os valores observados. 
U95M, L95M representam, respectivamente os limites superior e inferior de confiança para 
a média da população. 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 67
Exemplo 27 
 
DATA OVINO; 
INPUT TRAT CONSUMO @@; 
TRAT2 = TRAT*TRAT; 
DATALINES; 
0 436 0 408 0 405 0 441 
 5 574 5 552 5 533 5 513 
13 868 13 880 13 856 13 848 
25 606 25 579 25 589 25 602 
47 481 47 431 47 495 47 501 
; 
RUN; 
PROC REG DATA=OVINO; 
VAR TRAT2; 
MODEL CONSUMO = TRAT; 
OUTPUT OUT = RESIDL1 R = RESIDUAL P = PREVISTO; 
PLOT CONSUMO * TRAT / VREF = 0; 
TITLE 'PLOTE DA FUNCAO LINEAR'; 
RUN; 
ADD TRAT2; 
PRINT; 
OUTPUT OUT = RESIDL2 R = RESIDUAL P = PREVISTO; 
PLOT CONSUMO * TRAT2 / VREF = 0; 
TITLE 'PLOTE DA FUNCAO QUADRATICA'; 
RUN; 
 
PROC GPLOT DATA = RESIDL1; 
PLOT RESIDUAL * PREVISTO / VREF = 0; 
SYMBOL I = L; 
TITLE 'PLOTE RESIDUAL PARA FUNCAO LINEAR'; 
RUN; 
 
PROC GPLOT DATA = RESIDL2; 
PLOT RESIDUAL * PREVISTO / VREF = 0; 
SYMBOL I = Q; 
TITLE 'PLOTE RESIDUAL PARA FUNCAO QUADRATICA'; 
RUN; 
 
PROC UNIVARIATE DATA=RESIDL1 NORMAL; 
VAR RESIDUAL; 
TITLE 'TESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO LINEAR'; 
RUN; 
 
PROC UNIVARIATE DATA=RESIDL2 NORMAL; 
VAR RESIDUAL; 
TITLE 'TESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO QUADRATICA'; 
RUN; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 68
 FUNCÃO LINEARFUNCÃO LINEARFUNCÃO LINEARFUNCÃO LINEAR 
 
 The REG ProcedureThe REG ProcedureThe REG ProcedureThe REG Procedure 
 Model: MODEL1Model: MODEL1Model: MODEL1Model: MODEL1 
 Dependent Variable: CONSUMODependent Variable: CONSUMODependent Variable: CONSUMODependent Variable: CONSUMO 
 
 
 Analysis of Variance 
 
 Sum of Mean 
 Source DF Squares Square F Value Pr > FPr > FPr > FPr > F 
 Model 1 2773.13636 2773.13636 0.11 0.74890.74890.74890.7489 
 Error 18 472665 26259 
 Corrected Total 19 475438 
 
 Root MSE 162.04675 RRRR----Square 0.0058Square 0.0058Square 0.0058Square 0.0058 
 Dependent Mean 579.90000 Adj R-Sq -0.0494 
 Coeff Var 27.94391 
 
 
 Parameter Estimates 
 
 Parameter Standard 
 Variable DF Estimate Error t Value Pr > |t|Pr > |t|Pr > |t|Pr > |t| 
 Intercept 1 592.53068 53.13760 11.15 <.0001<.0001<.0001<.0001 
 TRAT 1 -0.70170 2.15928 -0.32 0.74890.74890.74890.7489 
 
 
 
 FUNÇÃO QUADRÁTICAFUNÇÃO QUADRÁTICAFUNÇÃO QUADRÁTICAFUNÇÃO QUADRÁTICA 
 
 The REG ProcedureThe REG ProcedureThe REG ProcedureThe REG Procedure 
 Model: MODEL1.1Model: MODEL1.1Model: MODEL1.1Model: MODEL1.1 
 Dependent Variable: CONSUMODependent Variable: CONSUMODependent Variable: CONSUMODependent Variable: CONSUMO 
 
 
 Analysis of Variance 
 
 Sum of Mean 
 Source DF Squares Square F Value Pr > FPr > FPr > FPr > F 
 Model 2 248145 124073 9.28 0.00190.00190.00190.0019 
 Error 17 227292 13370 
 Corrected Total 19 475438 
 
 Root MSE 115.62932 RRRR----Square 0.5219Square 0.5219Square 0.5219Square 0.5219 
 Dependent Mean 579.90000 Adj R-Sq 0.4657 
 Coeff Var 19.93953 
 
 
 Parameter Estimates 
 
 Parameter Standard 
 Variable DF Estimate Error t Value Pr > |t|Pr > |t|Pr > |t|Pr > |t| 
 Intercept 1 467.08644 47.90747 9.75 <.0001<.0001<.0001<.0001 
 TRAT 1 22.86171 5.71211 4.00 0.00090.00090.00090.0009 
 TRAT2 1 -0.49323 0.11513 -4.28 0.00050.00050.00050.0005 
 
ABC DO SAS FERNANDO BRITO LOPES 
 69
 TESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO LINEARTESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO LINEARTESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO LINEARTESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO LINEAR 
 
 The UNIVARIATE ProcedureThe UNIVARIATE ProcedureThe UNIVARIATE ProcedureThe UNIVARIATE Procedure 
 VariaVariaVariaVariable: RESIDUAL (Residual)ble: RESIDUAL (Residual)ble: RESIDUAL (Residual)ble: RESIDUAL (Residual) 
 
 MomentsMomentsMomentsMoments 
 
 N 20 Sum Weights 20 
 Mean 0 Sum Observations 0 
 Std Deviation 157.724721 Variance 24877.0876 
 Skewness 0.95430424 Kurtosis Skewness 0.95430424 Kurtosis Skewness 0.95430424 Kurtosis Skewness 0.95430424 Kurtosis ----0.19714360.19714360.19714360.1971436 
 Uncorrected SS 472664.664 Corrected SS 472664.664 
 Coeff Variation . Std Error Mean 35.2683198 
 
 Basic Statistical MeasuresBasic Statistical MeasuresBasic Statistical MeasuresBasic Statistical Measures 
 
 LocationVariability 
 Mean 0.0000 Std Deviation 157.72472 
 Median -46.5222 Variance 24877 
 Mode . Range 484.12216 
 Interquartile Range 132.56250 
 
 Tests for Location: Mu0=0Tests for Location: Mu0=0Tests for Location: Mu0=0Tests for Location: Mu0=0 
 
 Test -Statistic- -----p Value------ 
 Student's t t 0 Pr > |t| 1.0000 
 Sign M -2 Pr >= |M| 0.5034 
 Signed Rank S -19 Pr >= |S| 0.4980 
 
 Tests for Normality 
 
 Test --Statistic--- -----p Value------ 
 ShapiroShapiroShapiroShapiro----Wilk W 0.849427 Pr < W 0.0052Wilk W 0.849427 Pr < W 0.0052Wilk W 0.849427 Pr < W 0.0052Wilk W 0.849427 Pr < W 0.0052 
 Kolmogorov-Smirnov D 0.222062 Pr > D 0.0104 
 Cramer-von Mises W-Sq 0.184354 Pr > W-Sq 0.0076 
 Anderson-Darling A-Sq 1.173404 Pr > A-Sq <0.0050 
 
 Quantiles (Definition 5)Quantiles (Definition 5)Quantiles (Definition 5)Quantiles (Definition 5) 
 
 Quantile Estimate 
 100% Max 296.5915 
 99% 296.5915 
 95% 290.5915 
 90% 278.5915 
 75% Q3 29.0119 
 50% Median -46.5222 
 25% Q1 -103.5506 
 10% -170.5307 
 5% -186.0307 
 1% -187.5307 
 0% Min -187.5307 
 
 Extreme ObservationsExtreme ObservationsExtreme ObservationsExtreme Observations 
 
 ------Lowest----- ------Highest----- 
 Value Obs Value Obs 
 -187.531 3 31.0119 13 
 -184.531 2 264.5915 12 
 -156.531 1 272.5915 11 
 -151.531 4 284.5915 9 
 -128.551 18 296.5915 10 
ABC DO SAS FERNANDO BRITO LOPES 
 70
 TESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO QUADRÁTICATESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO QUADRÁTICATESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO QUADRÁTICATESTE DE NORMALIDADE RESIDUAL DA FUNÇÃO QUADRÁTICA 
 
 The UNIVARIATE ProcedureThe UNIVARIATE ProcedureThe UNIVARIATE ProcedureThe UNIVARIATE Procedure 
 Variable: RESIDUAL (Residual)Variable: RESIDUAL (Residual)Variable: RESIDUAL (Residual)Variable: RESIDUAL (Residual) 
 
 MomentsMomentsMomentsMoments 
 
 N 20 Sum Weights 20 
 Mean 0 Sum Observations 0 
 Std Deviation 109.374388 Variance 11962.7568 
 Skewness 0.608828 Kurtosis Skewness 0.608828 Kurtosis Skewness 0.608828 Kurtosis Skewness 0.608828 Kurtosis ----0.51130150.51130150.51130150.5113015 
 Uncorrected SS 227292.379 Corrected SS 227292.379 
 Coeff Variation . Std Error Mean 24.4568567 
 
 Basic Statistical MeasuresBasic Statistical MeasuresBasic Statistical MeasuresBasic Statistical Measures 
 
 Location Variability 
 Mean 0.0000 Std Deviation 109.37439 
 Median -23.5694 Variance 11963 
 Mode . Range 350.42981 
 Interquartile Range 106.53415 
 
 Tests for Location: Mu0=0Tests for Location: Mu0=0Tests for Location: Mu0=0Tests for Location: Mu0=0 
 
 Test -Statistic- -----p Value------ 
 Student's t t 0 Pr > |t| 1.0000 
 Sign M -2 Pr >= |M| 0.5034 
 Signed Rank S -8 Pr >= |S| 0.7841 
 
 
 Tests for NormalityTests for NormalityTests for NormalityTests for Normality 
 
 Test --Statistic--- -----p Value------ 
 ShapiroShapiroShapiroShapiro----Wilk W 0.908434 Pr < W 0.0595Wilk W 0.908434 Pr < W 0.0595Wilk W 0.908434 Pr < W 0.0595Wilk W 0.908434 Pr < W 0.0595 
 Kolmogorov-Smirnov D 0.16199 Pr > D >0.1500 
 Cramer-von Mises W-Sq 0.100581 Pr > W-Sq 0.1035 
 Anderson-Darling A-Sq 0.676328 Pr > A-Sq 0.0692 
 
 Quantiles (Definition 5)Quantiles (Definition 5)Quantiles (Definition 5)Quantiles (Definition 5) 
 
 Quantile Estimate 
 100% Max 199.0664 
 99% 199.0664 
 95% 193.0664 
 90% 181.0664 
 75% Q3 45.9477 
 50% Median -23.5694 
 25% Q1 -60.5864 
 10% -134.8634 
 5% -146.3634 
 1% -151.3634 
 0% Min -151.3634Extreme ObservationsExtreme ObservationsExtreme ObservationsExtreme Observations 
 
 ------Lowest------ ------Highest----- 
 Value Obs Value Obs 
 -151.3634 14 48.9477 20 
 -141.3634 15 167.0664 12 
 -128.3634 16 175.0664 11 
 -124.3634 13 187.0664 9 
 -62.0864 3 199.0664 10 
ABC DO SAS FERNANDO BRITO LOPES 
 71
Gráficos das Funções Linear e Quadrática 
 
 
 
 
 
 
 
 
Plote da Função Linear
y = -0,7017x + 592,53
R2 = 0,0058
400
500
600
700
800
900
0 10 20 30 40 50
X
Y
Consumo Linear (Consumo)
Plote da Função Quadrática
y = -0,4932x2 + 22,862x + 467,09
R2 = 0,5219
400
500
600
700
800
900
0 10 20 30 40 50
X
Y
Consumo Polinômio (Consumo)
ABC DO SAS FERNANDO BRITO LOPES 
 72
Inferência Estatística 
 
Testes para igualdade de duas médias (PROC TTEST) 
 
Na prática freqüentemente nos vemos diante de situações onde uma decisão deva ser 
tomada acerca de populações, baseadas nas informações obtidas a partir das amostras. Este 
capítulo abordará testes de hipóteses, para o caso em que duas amostras são consideradas, em 
princípio de populações distintas, Com base nestas amostras, as médias equivalentes às 
populações envolvidas são comparadas. O teste t é apropriado quando a análise envolve uma 
única variável independente (preditora), medida na escala nominal e assumindo somente dois 
valores, e uma única variável resposta, medida na escala de razão ou de intervalo. O teste t é 
usualmente conhecido como teste de diferenças de grupos. 
 
 
PROC TTEST 
 
A PROC TTEST desempenha um teste de hipótese para checar se a média de duas 
populações são iguais. Uma estatística t para o teste é calculada, assumindo que as variâncias 
são iguais para os dois grupos. Uma estatística T aproximada é calculada, assumindo que as 
variâncias são diferentes. Para testar a igualdade das variâncias é calculada uma estatística F. 
Para cada uma das estatísticas T e F são associados os respectivos graus de liberdade e 
probabilidades de significância (p-valor). Se o p-valor é menor que o nível de significância 
associado ao teste, o resultado é estatisticamente significante, e a hipótese nula é rejeitada, ou 
seja, as médias para os dois grupos são significativamente diferentes. 
 
 
FORMA GERAL: 
 
PROC TTEST DATA = arquivo de dados; 
CLASS variável; 
VAR variável; 
RUN; 
 
 
COMANDOS DISPONÍVEIS: 
 
CLASS nomeia a variável que forma os grupos. Estes grupos podem assumir 
somente dois valores distintos, uma vez que o teste utilizado é para 
comparação de duas médias. 
VAR nomeia a variável cuja média será comparada. Se o comando VAR for 
omitido, todas as variáveis numéricas contidas no arquivo de entrada (exceto 
as que aparecem no comando CLASS) serão incluídas na análise. 
 
ABC DO SAS FERNANDO BRITO LOPES 
 73
Exemplo 28 - (Ivan Sampaio) Em um estudo visando determinar a conversão alimentar de 
aves, em um período de 0 a 21 dias, foram obtidos os seguintes valores 
segundo o sexo e o animal. Verifique se há diferença entre machos e fêmeas. 
 
DATA CONVERSAO; 
INPUT SEXO $ CA @@; 
CARDS; 
M 1.49 M 1.54 M 1.47 M 1.50 M 1.52 M 1.45 M 1.51 M 1.41 M 1.43 
F 1.59 F 1.61 F 1.63 F 1.54 F 1.64 F 1.62 F 1.66 F 1.63 F 1.35 
; 
RUN; 
PROC TTEST DATA=CONVERSAO; 
CLASS SEXO; 
VAR CA; 
TITLE 'TESTE PARA IGUALDADE DE MEDIAS'; 
RUN; 
 
 
 TESTE PARA IGUALDADE DE MEDIASTESTE PARA IGUALDADE DE MEDIASTESTE PARA IGUALDADE DE MEDIASTESTE PARA IGUALDADE DE MEDIAS 
 
 The TTEST ProcedureThe TTEST ProcedureThe TTEST ProcedureThe TTEST Procedure 
 
 StatisticsStatisticsStatisticsStatistics 
 
 Lower CL Upper CL Lower CL Upper CL 
Variable sexo N Mean Mean Mean Std Dev Std Dev Std Dev Std Err 
CA F 9 1.5127 1.5856 1.6584 0.064 0.0948 0.1815 0.0316 
CA M 9 1.4467 1.48 1.5133 0.0292 0.0433 0.083 0.0144 
CA Diff (1-2) 0.0319 0.1056 0.1792 0.0549 0.0737 0.1121 0.0347 
 
 TTTT----TestsTestsTestsTests 
 
 Variable Method Variances DF t Value Pr > |t| 
 CA Pooled Equal 16 3.04 0.0078 
 CA Satterthwaite Unequal 11.2 3.04 0.0110 
 
 
 Equality of VariancesEquality of VariancesEquality of VariancesEquality of Variances 
 
 Variable Method Num DF Den DF F Value Pr > F 
 CA Folded F 8 8 4.79 0.0400 
 
ABC DO SAS FERNANDO BRITO LOPES 
 74
Análise de Variância 
 
Dados balanceados (PROC ANOVA - GLM) 
 
Quando se deseja fazer inferências sobre um conjunto de mais que duas médias, 
utiliza-se a Análise de Variância. 
A Análise da Variância se resume na aplicação de um teste de hipóteses sobre um 
experimento projetado estatisticamente. Esta análise permite saber se há efeitos significativos 
de determinadas variáveis agindo sobre os resultados além do erro experimental. Neste 
capítulo, o termo ANOVA refere-se especificamente a uma análise paramétrica da variância, 
que é utilizada se algumas suposições sobre os dados observados forem atendidas. As 
suposições que envolvem uma análise da variância são: 
 
• As observações devem ser independentes: a medida para determinada observação não 
afeta a medida de outra observação. 
• As observações são geradas por uma distribuição normal. Se existe uma diferença entre os 
grupos, talvez exista uma distribuição normal específica para cada grupo. 
• As variâncias dos grupos são iguais. 
 
Quando o experimento consiste na análise de uma única variável (ou fator), com 
vários níveis, a análise é dita ANOVA a fator único. Para este tipo de análise, os 
procedimentos SAS não fazem distinção quanto ao tipo de dados utilizados: se balanceados 
ou não. Dados balanceados são aqueles cujos grupos experimentais tem o mesmo tamanho de 
amostra. Dados não balanceados, o tamanho da amostra difere para cada grupo. Ambos os 
procedimentos GLM e ANOVA, tratam estes dados na devida situação. 
 
 
PROC ANOVA 
 
A PROC ANOVA para análise da variância a fator único pode ser utilizada, como 
visto anteriormente, para ambos dados balanceados e não balanceados. Em geral, entretanto, 
não se utiliza a PROC ANOVA para dados não alanceados, neste caso, sugestiona-se a 
utilização do PROC GLM. 
 A PROC ANOVA pode ser utilizada interativamente. Uma vez especificado um 
modelo com o comando MODEL, que será visto a seguir, e rodar o procedimento com o 
comando RUN, outra variedade de comandos poderá ser executada sem que o procedimento 
recalculeas estatísticas do modelo geradas inicialmente. 
 
FORMA GERAL: 
 
PROC ANOVA DATA = arquivo SAS; 
CLASS variáveis; /*tratamentos*/ 
MODEL dependente = efeitos / opções; 
MANOVA H = variável / opções; 
MEANS efeitos / opções; 
OUTPUT OUT = arquivo SAS 
P= nova variável R = nova variável 
ABC DO SAS FERNANDO BRITO LOPES 
 75
L95 = nova variável U95 = nova variável 
L95M = nova variável U95M=nova variável; 
RUN; 
COMANDOS DISPONÍVEIS: 
 
CLASS nomeia as variáveis de classificação utilizadas para identificar os grupos 
para análise. Este comando tem que aparecer antes do comando MODEL. 
MODEL nomeia as variáveis dependentes e independentes do modelo. 
MANOVA se o comando MODEL inclui mais que uma variável dependente, este 
comando fornece estatísticas multivariadas. 
MEANS gera médias para cada nível das variáveis independentes e para a interação 
dos níveis, quando existir. 
OUTPUT gera arquivo de saída com as variáveis que irão conter os valores previstos, 
residuais, intervalos de confiança para um valor individual da variável 
dependente, e intervalos de confiança para o valor esperado (média) da 
variável dependente. 
 
 
OPÇÕES DISPONIVEIS NO COMANDO MODEL: 
 
INT requisita teste associado ao intercepto como parâmetro do modelo. Por 
“default”, ele é incluído no modelo, mas o teste associado não é listado. 
Com esta opção o teste associado é listado. 
NOINT requisita que o intercepto não seja usado no modelo. 
NOUNI suprimi estatísticas univariadas. 
 
 
OPÇÕES DISPONÍVEIS NO COMANDO MANOVA: 
 
H especifica efeitos no modelo para usar como matriz de hipóteses. 
PRINTH lista a matriz de hipóteses SSCP e a matriz de erro. A opção 
PRINTE também lista uma matriz de coeficientes de correlação parcial e é derivada 
da matiz de erros SSCP. Esta matriz de correlação representa a correlação 
das variáveis dependentes corrigidas para todos os fatores independentes 
definidos no comando MODEL. 
 
 
PRINCIPAIS OPÇÕES DISPONÍVEIS NO COMANDO MEANS: 
 
As opções especificam os testes utilizados para comparação múltipla e são aplicadas 
somente para os termos de efeitos principais. 
 
DUNCAN desempenha teste de múltiplos ranges para todas as médias dos efeitos 
principais especificados no comando MEANS. 
TUKEY desempenha teste de ranges de Student para todas as médias dos efeitos 
principais especificados no comando MEANS. 
ALPHA dá os níveis de significância para a comparação entre as médias. Por 
“default” Alpha=0.05. Para a opção DUNCAN, somente os valores 0.01, 
0.05 ou 0.1 são válidos. Nas demais opções que desempenham testes de 
comparação múltipla, valores entre 0.0001 e 0.9999 são válidos. 
ABC DO SAS FERNANDO BRITO LOPES 
 76
 
 
Teste de Duncan 
 
O teste de Duncan é usado na análise de variância para comparar todo e qualquer 
contraste entre duas médias de tratamentos. É menos rigoroso que o Teste de Tukey, pois 
detecta diferença significativa entre duas médias quando o o teste de Tukey não o faz. É um 
teste bastante usado em trabalhos de laboratórios, pode ser usado tanto para tratamentos com 
o mesmo número de repetições, quanto tratamentos com parcelas perdidas. 
 
 
Teste de Tukey 
 
O teste de Tukey é usado na análise de variância para comparar todo e qualquer 
contraste entre duas médias de tratamentos. É o teste de comparação de médias mais usado 
em experimentação, por ser bastante rigoroso e de fácil aplicação. Ele é mais exato quando os 
números de repetições das médias dos tratamentos forem iguais. 
Quando o Teste Tukey não der diferença significativa e o teste F for significativo, o 
mesmo poderá ser substituído pelo Teste de Duncan, por ser menos rigoroso, ou trocar o nível 
de significância para 10%, ou simplesmente aceitar a análise encontrada. 
 
 
Teste de Scheffé 
 
O teste de Schfeé é usado na análise de variância numa forma mais abrangente que o 
Teste de Duncan e de Tukey, pois permite julgar qualquer constraste, pode ser usado tanto 
para duas médias (contraste simples) como para mais de duas médias (contraste múltiplo), na 
qual ele é o mais indicado, por ser mais rigoroso que o Teste de Tukey. 
 
 
Análise dos Três Testes 
 
Quando o teste F da análise de variância não for significativo os três testes acima não 
terão efeito de aplicação (só se o teste F estiver próximo da significância). Para melhor 
visualizar a análise comparativa das médias, as médias dos tratamentos são colocadas em 
ordem crescente e para cada conjunto de médias que não diferem estatisticamente é atribuída 
uma mesma letra, ou seja, para letras iguais médias estatisticamente iguais, para letras 
diferentes médias estatisticamente diferentes. Para a análise usa-se um nível de significância 
de 5%. 
ABC DO SAS FERNANDO BRITO LOPES 
 77
Modelos Lineares Mistos em Ciências Agrárias 
 
Um modelo linear que apresenta somente fatores de efeitos fixos, além do erro 
experimental, que é sempre aleatório, é denominado modelo fixo. Esse tipo de modelo já foi 
amplamente estudado, existindo inúmeros livros abordando seus aspectos teóricos e 
aplicados, em vários níveis de complexidade, pode-se citar: SEARLE (1971), que enfatiza 
dados desbalanceados; RAO (1973), aspectos matemáticos; GRAYBILL (1976), dados 
balanceados; NETER, WASSERMAN e KUTNER (1985), dentre outros. 
Os modelos que apresentam apenas fatores de efeitos aleatórios, exceto a constante m, 
que é sempre fixa, é denominado modelo aleatório. 
Um modelo misto é aquele que apresenta tanto fatores de efeitos fixos como 
aleatórios, além do erro experimental e da constante µ. 
Quando um modelo é considerado misto, sua análise de variância apresenta algumas 
peculiaridades, como a composição das esperanças matemáticas dos quadrados médios, cujo 
conhecimento permite o estabelecimento correto dos testes de hipóteses, (HICKS, 1973). 
Caso o interesse do pesquisador resida na estimação dos componentes de variância, métodos 
adequados devem ser utilizados (HENDERSON,1953; CUNNINGHAM e HENDERSON, 
1968; THOMPSON,1969; PATERSSON e THOMPSON,1971). 
Outro motivo de se adotar um modelo linear misto é a possibilidade de se fazer a 
predição de efeitos aleatórios, na presença de efeitos fixos, através dos BLUP’s (best linear 
unbiased prediction) que são de grande valia em genética e melhoramentos. 
Para melhor compreensão das definições acima, considere o seguinte exemplo: 
suponha um experimento no qual são avaliados 5 híbridos de milho (a, b, c, d, e), em 3 
localidades no delineamento inteiramente casualizado com 4 repetições. Um modelo para 
análise deste experimento pode ser: 
 
ijkjiijky εγβµ +++= no qual, 
 
yijk é o valor observado da parcela que recebeu a k-ésima repetição do tratamento i, no 
local j; 
µ é uma constante inerente a todas as observações; 
βi é o efeito do híbrido i; 
γj é o efeito do local j; 
εijk é o erro aleatório associado a observação yijk . 
 
Supõem-se que βi e γj são independentes. 
 
Neste experimento estão sendo avaliados dois fatores: híbridos com cinco níveis e 
locais com três níveis. Os efeitos desses fatores podem ser classificados como fixos ou 
aleatórios, em função do interesse do pesquisador. Se um determinado fator é considerado de 
efeito fixo, naturalmente, o interesse do pesquisador será estimar e testar hipóteses sobre 
combinações lineares dos níveis do mesmo. Por outro lado, caso o efeito desse fator seja 
considerado aleatório, o interesse residirá na estimação de componentes de variâncias e 
covariâncias associada a esse fator, uma vez que seus níveis são considerados como sendo 
uma amostra aleatória de certa população, a qual se deseja avaliar. 
No intuito de ilustrar melhor esses conceitos, considere as seguintes situações 
referentes ao experimento em questão: 
 
ABC DO SAS FERNANDO BRITO LOPES78
1. O pesquisador deseja inferir qual, dentre os três locais estudados, apresenta melhor 
produtividade. Note que ele está interessado apenas nos três locais estudados, e quer saber 
qual deles é o melhor. Nesta situação, o efeito de locais é considerado fixo, sendo então 
estimadas e testadas hipóteses sobre combinações lineares dos níveis deste fator, como 
por exemplo: β1 - β2 = 0 (se estimável); 
2. Uma outra possibilidade a ser considerada é o caso do pesquisador estar interessado 
apenas em verificar se existe uma variabilidade entre os locais, em relação à produção de 
milho. Neste caso, os níveis estudados (três locais) são apenas uma amostra aleatória da 
população de locais nos quais poder-se-ia plantar milho. Nessa situação, o efeito de locais 
é considerado aleatório, não havendo portanto interesse em se testar combinações lineares 
de seus níveis, mas sim, estimar e testar sua variabilidade (por meio de seus componentes 
de variância). 
 
No exemplo anterior, suponha que o pesquisador esteja interessado em verificar qual o 
melhor dos híbridos avaliados e se existe uma variabilidade de sua produção em relação ao 
local onde foi cultivado, nesse caso ter-se-ia um modelo misto com híbridos fixo e locais 
aleatório. 
 
 
Experimentos com dados Balanceados 
 
Com a finalidade de exemplificar a metodologia de modelos lineares mistos, utilizar-
se-á quatro exemplos, cada qual com sua peculiaridade em função do experimento ser ou não 
completo com dados balanceados ou desbalanceados e na presença de caselas vazias. O 
pacote estatística SAS, versão 8, foi utilizado pa ra analisar os experimentos. 
Os dados a seguir referem-se à produtividade de grãos (kg/parcela de 18 m2) de cinco 
híbridos de milho avaliados no delineamento inteiramente casualizado com duas repetições 
em dois locais: 
 
Local Híbrido 1 2 3 4 5 
1 2.6 5.88 5.46 4.37 7.0 2.62 5.63 6.62 3.86 6.48 
2 5.5 7.17 9.83 3.38 9.35 7.2 7.49 10.74 7.02 8.15 
 
 
Para análise destes dados será considerado o seguinte modelo: 
 
( ) ijkijijijky εαββαµ ++++= , em que: 
 
yijk é o valor observado 
µ é uma constante inerente a todas as observações; 
αj é o efeito do j-ésimo local (j = 1,2) considerado fixo; 
βi é o efeito do i-ésimo híbrido (i=1,2, ...,5) , ti ~ NID (0, σ2t) 
(αβ )ij é o efeito da interação entre o i-ésimo híbrido e o j-ésimo local, (lt)ij ~ NID (0, σ2tl) 
εijk é o erro aleatório associado à observação yijk, εijk ~ NID (0, σ2) 
 
ABC DO SAS FERNANDO BRITO LOPES 
 79
 
Exemplo 29 – Híbridos... 
 
options nonumber nodate ps=60; 
data produtividade; 
input loc rep trat pg @@; 
cards; 
1 1 1 2.60 1 1 2 5.88 1 1 3 5.46 1 1 4 4.37 1 1 5 7.00 
1 2 1 2.62 1 2 2 5.63 1 2 3 6.62 1 2 4 3.86 1 2 5 6.48 
2 1 1 5.50 2 1 2 7.17 2 1 3 9.83 2 1 4 3.38 2 1 5 9.35 
2 2 1 7.20 2 2 2 7.49 2 2 3 10.48 2 2 4 7.02 2 2 5 8.15 
; 
run; 
 
proc glm data = produtividade; 
class loc rep trat; 
model pg=loc|trat; 
random trat trat*loc/test; 
lsmeans loc/pdiff; 
run; 
 
 
PROC GLM 
 
 The SAS System 
 The GLM Procedure 
 Class Level Information 
 
 Class Levels Values 
 loc 2 1 2 
 rep 2 1 2 
 trat 5 1 2 3 4 5 
 
 Number of observations 20 
 
 The GLM Procedure 
 
Dependent Variable: pg 
 
 Sum of 
 Source DF Squares Mean Square F Value Pr > F 
 Model 9 84.17054500 9.35228278 9.33 0.0008 
 Error 10 10.02175000 1.00217500 
 Corrected Total 19 94.19229500 
 
 R-Square Coeff Var Root MSE pg Mean 
 0.893603 15.87893 1.001087 6.304500 
 
 Source DF Type I SS Mean Square F Value Pr > F 
 loc 1 31.37512500 31.37512500 31.31 0.0002 
 trat 4 45.55177000 11.38794250 11.36 0.0010 
 loc*trat 4 7.24365000 1.81091250 1.81 0.2041 
 
 Source DF Type III SS Mean Square F Value Pr > F 
 loc 1 31.37512500 31.37512500 31.31 0.0002 
 trat 4 45.55177000 11.38794250 11.36 0.0010 
 loc*trat 4 7.24365000 1.81091250 1.81 0.2041 
 
ABC DO SAS FERNANDO BRITO LOPES 
 80
 
Observa-se que todas as somas de quadrados são idênticas no caso do balanceamento. 
Assim, as hipóteses testadas são equivalentes. 
 
 
 Source Type III Expected Mean Square 
 
 loc Var(Error) + 2 Var(loc*trat) + Q(loc) 
 trat Var(Error) + 2 Var(loc*trat) + 4 Var(trat) 
 loc*trat Var(Error) + 2 Var(loc*trat) 
 
Após o desdobramento dos graus de liberdade do modelo, vê-se que há evidência de 
diferença significativa entre os locais. Porém, o padrão do GLM utiliza como denominador 
para realização dos testes na análise de variância, para todos os efeitos, o quadrado médio do 
resíduo, cujo valor é: 1.002175, quando o quadrado médio apropriado deveria ser àquele 
associado à interação. Essa conclusão pode ser tirada pela simples análise das esperanças 
matemáticas dos quadrados médios. Destarte, em resumo, os quadrados médios apropriados 
para testar os efeitos deveriam ser: 
 
• Para o LOCAL, a interação LOC*TRAT; 
 
• Para TRATAMENTOS (híbridos), a interação LOC*TRAT; 
 
 
• Para a interação LOC*TRAT, o quadrado médio do resíduo. 
 
 
 Tests of Hypotheses for Mixed Model Analysis of VarianceTests of Hypotheses for Mixed Model Analysis of VarianceTests of Hypotheses for Mixed Model Analysis of VarianceTests of Hypotheses for Mixed Model Analysis of Variance 
 
Dependent Variable: pg 
 
 Source DF Type III SS Mean Square F Value Pr > F 
 loc 1 31.375125 31.375125 17.33 0.0141 
 trat 4 45.551770 11.387943 6.29 0.0513 
 Error: MS(loc*trat) 4 7.243650 1.810913 
 
 
 Source DF Type III SS Mean Square F Value Pr > F 
 loc*trat 4 7.243650 1.810913 1.81 0.2041 
 Error: MS(Error) 10 10.021750 1.002175 
 
Uma vez incluída na programação a opção TEST, nota-se que os quadrados médios 
utilizados como denominador coincidem com aqueles ditos apropriados. Mas, não se pode 
perder de vista que ao se utilizar o PROC GLM os efeitos aleatórios não são entendidos como 
aleatórios, mas como fixos. Motivo pelo qual o teste realizado no quadro de ANOVA não é 
correto. 
 Least Squares MeansLeast Squares MeansLeast Squares MeansLeast Squares Means 
 
 H0:LSMean1= 
 LSMean2 
 loc pg LSMEAN Pr > |t| 
 
 15.05200000 0.0002 
 2 7.55700000 
 
ABC DO SAS FERNANDO BRITO LOPES 
 81
PROC MIXED 
 
 The SAS SystemThe SAS SystemThe SAS SystemThe SAS System 
 The Mixed ProcedureThe Mixed ProcedureThe Mixed ProcedureThe Mixed Procedure 
 Model InformationModel InformationModel InformationModel Information 
 
 Data Set WORK.PRODUTIVIDADE 
 Dependent Variable pg 
 Covariance Structure Variance Components 
 Estimation Method REML 
 Residual Variance Method Profile 
 Fixed Effects SE Method Model-Based 
 Degrees of Freedom Method Containment 
 
 Class Level Information 
 
 Class Levels Values 
 loc 2 1 2 
 rep 2 1 2 
 trat 5 1 2 3 4 5 
 
 Dimensions 
 Covariance Parameters 3 
 Columns in X 3 
 Columns in Z 15 
 Subjects 1 
 Max Obs Per Subject 20 
 Observations Used 20 
 Observations Not Used 0 
 Total Observations 20 
 
 Iteration History 
 Iteration Evaluations -2 Res Log Like Criterion 
 0 1 78.18437773 
 1 1 67.81422769 0.00000000 
 
 Convergence criteria met.Convergence criteria met.Convergence criteria met.Convergence criteria met. 
 
Após a construção do sistema de equações, o método REML obtém as estimativas dos 
efeitos aleatórios que tem por base o método interativo de Newton-Raphson, utilizando como 
valores iniciais as estimativas fornecidas pelo MIVIQUEO. Vê-se que no presente exemplo 
houve a necessidade de apenas duas iterações para convergência. 
 
 
 Covariance Parameter Estimates 
 Standard Z 
 Cov Parm Estimate Error Value Pr Z Ord Z 
 trat 2.3943 2.0384 1.17 0.1201 0.0982 
 loc*trat 0.4044 0.6783 0.60 0.2755 0.4924 
 Residual 1.0022 0.4482 2.24 0.0127 0.0731 
 
É de fundamental importância perceber que o PROC MIXED, ao contrário do PROC 
GLM, aceita dentro de sua programação, os efeitos aleatórios como aleatórios. 
Sabe-se que os estimadores de máxima verossimilhança (ML) e de máxima 
verossimilhança restrita (REML) possuem distribuição assintoticamente normal e têm matriz 
de variância e covariância assintoticamente conhecida. Logo, é possível a construção de 
intervalos e testes de hipóteses sobre os parâmetros do modelo. A saída referente ao teste de 
efeitos aleatórios ilustra essa teoria. Testa-se se a estimativa fornecida pelo método REML 
ABC DO SAS FERNANDO BRITO LOPES 
 82
difere de zero. Pela análise dos p-value, conclui-se que não há evidência de tal diferença. 
Portanto, os efeitos de TRAT e LOC*TRAT devem permanecer no modelo. 
 
 Fit StatisticsFit StatisticsFit StatisticsFit Statistics 
 
 -2 Res Log Likelihood 67.8 
 AIC (smaller is better) 73.8 
 AICC (smaller is better) 75.5 
 BIC (smaller is better) 72.6 
 
Essa saída, pode ser utilizada para comparar modelos de efeitos fixos, dada uma 
estrutura de covariância, quando um modelo é um caso especial do outro. Dados dois 
modelos, conseqüentemente duas tabelas, pode-se analisá-las pelo valor de AIC. O modelo 
que possuir o maior valor será o escolhido. Detalhes em Perri (1998). 
Uma informação também advinda dessa tabela é que o teste da razão de 
verossimilhança pode ser construído se utilizando dos valores de -2 Res Log Likelihood dos 
dois modelos sob investigação. Sabe-se que -2 Res Log Likelihood tem distribuição 
assintoticamente χ2 com p graus de liberdade, sendo p o número de graus de liberdade 
associado a cada um dos modelos. 
 
 
 Solution for Random EffectsSolution for Random EffectsSolution for Random EffectsSolution for Random Effects 
 
 Std Err 
 Effect loc trat Estimate Pred DF t Value Pr > |t| Ord t 
 
 trat 1 -1.5344 0.8851 10 -1.73 0.1137 0.0917 
 trat 2 0.2002 0.8851 10 0.23 0.8257 0.3783 
 trat 3 1.5079 0.8851 10 1.70 0.1193 0.0958 
 trat 4 -1.3851 0.8851 10 -1.56 0.1487 0.1166 
 trat 5 1.2114 0.8851 10 1.37 0.2011 0.1513 
 loc*trat 1 1 -0.4053 0.5663 10 -0.72 0.4905 0.2956 
 loc*trat 1 2 0.2246 0.5663 10 0.40 0.7000 0.3571 
 loc*trat 1 3 -0.2322 0.5663 10 -0.41 0.6904 0.3550 
 loc*trat 1 4 0.2001 0.5663 10 0.35 0.7311 0.3634 
 loc*trat 1 5 0.2128 0.5663 10 0.38 0.7149 0.3602 
 loc*trat 2 1 0.1462 0.5663 10 0.26 0.8015 0.3751 
 loc*trat 2 2 -0.1908 0.5663 10 -0.34 0.7432 0.3657 
 loc*trat 2 3 0.4868 0.5663 10 0.86 0.4101 0.2629 
 loc*trat 2 4 -0.4340 0.5663 10 -0.77 0.4611 0.2842 
 loc*trat 2 5 -0.00823 0.5663 10 -0.01 0.9887 0.3891 
 
 As estimativas acima são os BLUP’s para os efeitos aleatórios, que são muito úteis no 
melhoramento genético. 
 
 
 Type 3 Tests of Fixed EffectsType 3 Tests of Fixed EffectsType 3 Tests of Fixed EffectsType 3 Tests of Fixed Effects 
 
 Num Den 
 Effect DF DF F Value Pr > F Ord F 
 loc 1 4 17.33 0.0141 0.0014Least Squares MeansLeast Squares MeansLeast Squares MeansLeast Squares Means 
 
 Standard 
 Effect loc Estimate Error DF t Value Pr > |t| Ord t 
 loc 1 5.0520 0.8124 4 6.22 0.0034 0.0010 
 loc 2 7.5570 0.8124 4 9.30 0.0007 0.0002 
ABC DO SAS FERNANDO BRITO LOPES 
 83
 
 Differences of Least Squares MeansDifferences of Least Squares MeansDifferences of Least Squares MeansDifferences of Least Squares Means 
 
 Standard 
 Effect loc _loc Estimate Error DF t Value Pr > |t| Ord t 
 loc 1 2 -2.5050 0.6018 4 -4.16 0.0141 0.0057 
 
Para esse exemplo em que não há desbalanceamento a análise realizada pelo PROC 
MIXED nos fornece os mesmos resultados obtidos pelo PROC GLM, após a indispensável 
inclusão da opção TEST. 
 Na área de genética e melhoramento é comum conduzir-se experimentos no intuito de 
avaliar o potencial genético de uma população para o melhoramento, nessas situações os 
materiais avaliados (genótipos) são por definição aleatórios e os demais fatores, como locais, 
por exemplo podem ser considerados de efeitos fixos. O procedimento usual nesse caso é de 
se realizar uma análise do experimento através de um modelo misto (genótipos aleatórios e 
locais fixo), testar a hipótese de que a variância genética entre estes materiais seja diferente de 
zero, o que pode ser realizado pelo PROC GLM. Caso esta hipótese seja rejeitada, o 
melhorista terá interesse em identificar quais são os melhores genótipos dentre os avaliados, 
para tanto utiliza-se de suas médias ou médias ajustadas. Neste ponto, o melhorista abandona 
a pressuposição de que o efeito de genótipos é aleatório e os considera fixos (pois suas médias 
não são estimáveis quando estes são considerados aleatórios) devendo refazer a análise para 
obtenção das estimativas destas médias. Uma outra opção seria utilizar a teoria de modelos 
mistos apresentada neste trabalho, e realizar a seleção dos materiais com base no BLUP e não 
nas médias, deste modo o melhorista não necessita de mudar suas pressuposições no decorrer 
da análise, além de obter todas as informações que necessita em um único procedimento SAS, 
pois o PROC MIXED fornece as estimativas dos componentes de variância, com seus 
respectivos testes, testes sobre os efeitos fixos do modelo, e BLUP’s. 
ABC DO SAS FERNANDO BRITO LOPES 
 84
Moledagem de Dados 
 
 Exitem várias formas de organização de dados, a qual depende, entre outros aspectos, 
da utilização deste. A modelagem realizade aqui destina-se a um tipo particular de aquisição 
de dados e sua tranasformação, com finalidades específicas. 
 A título de ilustração, um determinado pesquisador deseja analisar algumas 
características de desempenho ponderal e reprodutivas, sejam elas peso ao nascer (PN), 
pesoas padronizados aos 205, 365 e 550 dias de idade, e idade ao primeiro parto, intervalo 
entre partos e fertilidade real. A fim de se obter homogeneidade dentre grupos de animais, 
serão criados Gupos de Contemporâneos (GC), a qual agrupará os animais narcidos na mesma 
fazenda, nascidos na mesma estação e mesmo ano. Também serão determinadas as Ordem de 
Partos, uma vez que esta está intimamente relacionada com o desempenho dos animais. 
 Abaixo estão apresentadas partes banco de dados que serão utilizados para manipular e 
modelar os mesmos, de forma obter um arquivo com as características de interesse. O 
pesquisador recebeu, de determinada empresa do segmento agripecuário, três arquivos: 
 
1. Registro de genealogia dos animais; 
2. Registro das fazendas de origem dos animais; e, 
3. Registro dos pesos calculados às idades padrão. 
 
Registro de Genealogia 
 
23F244028/08/199522/10/199324/01/1993 NEL NEL NEL 31 
02M332718/02/200105/06/199918/02/1990 NEL NEL NEL 31 
27F362318/02/199010/01/198828/08/1988 NEL NEL NEL 31 
41M362529/09/200410/01/199801/10/2000 NEL NEL NEL 31 
43M342524/05/200608/02/200001/10/2000 NEL NEL NEL 31 
29F342724/01/199308/02/199018/02/1990 NEL NEL NEL 29 
25F312701/10/200005/11/199818/02/1990 NEL NEL NEL 37 
46F332309/10/200602/08/199928/08/1995 NEL NEL NEL 36 
47F282320/09/200711/10/199728/08/1995 NEL NEL NEL 29 
48M282920/09/200011/10/199724/01/1993 NEL NEL NEL 31 
 
 
Layout do Registro de genealogia 
 
01-02 ID do Animal ID_Animal 
03-03 Sexo do Animal Sexo 
04-05 ID do Pai ID_Pai 
06-07 ID da Mãe ID_Mae 
08-17 Dada de Nascimento do Animal Nasc_A 
18-27 Dada de Nascimento do Pai Nasc_P 
28-37 Dada de Nascimento da Mãe Nasc_M 
39-41 Raça do Animal RA 
43-45 Raça do Pai RP 
47-49 Raça da Mãe RM 
51-52 Peso ao Narcer do Animal PN 
 
ABC DO SAS FERNANDO BRITO LOPES 
 85
Registro das Fazendas 
 
01- 239-VALE DO BOI CARMOLANDIA TO 
02- 239-VALE DO BOI CARMOLANDIA TO 
15- 239-VALE DO BOI CARMOLANDIA TO 
42- 239-VALE DO BOI CARMOLANDIA TO 
43- 239-VALE DO BOI CARMOLANDIA TO 
44- 239-VALE DO BOI CARMOLANDIA TO 
45-28402-MARIANA GURUPI TO 
46-28161-CANAA WANDERLANDIA TO 
47- 239-VALE DO BOI CARMOLANDIA TO 
48- 239-VALE DO BOI CARMOLANDIA TO 
 
 
Layout das Fazendas 
 
01-02 ID do Animal 
04-08 Código da Propriedade 
10-20 Nome da Fazenda 
22-33 Município da Fazenda 
35-36 UF da Fazenda 
 
Registro dos Pesos Calculados 
 
23205127 
23365184 
23550289 
02205144 
02365255 
02550302 
27205165 
27365201 
27550402 
41205159 
41365238 
41550415 
43205135 
43365199 
43550358 
29205188 
29365279 
29550399 
25205178 
25365254 
25550321 
46205 98 
46365166 
46550287 
47205131 
47365281 
47550311 
48205148 
48365287 
48550420 
 
 
Layout dos Pesos Calculados 
 
01-02 ID do Animal 
03-05 Idade Padrão do Animal 
06-08 Peso às Idades Padrão dos Animais (205, 365 e 550 dias) 
 
 Para análise das caracteristicas produtivas os dados serão ordenados de acordo com o 
layout especificado abaixo: 
ABC DO SAS FERNANDO BRITO LOPES 
 86
Layout para Análise das Características Produtivas 
 
ID do Animal ID_Animal 
ID do Pai ID_Pai 
ID da Mãe ID_Mae 
Sexo Sexo 
Nascimento do Animal Nasc_Animal 
Nascimento do Pai Nasc_Pai 
Nascimento da Mãe Nasc_Mae 
Peso ao Nascimento PN 
Peso aos 205 dias P205 
Peso aos 365 dias P365 
Peso aos 550 dias P550 
Intervalo de Partos IDP 
Idade ao Primeiro Parto IPP 
Fertildade Real FR 
Grupo de Contemporâneos GC 
Ordem de Parto OP 
 
Modelagem em SAS 
 
 A priore, verificou-se que os dados de peso padronizados não estão de acordo com os 
dados dos demais arquivos, pois cada linha deve identificar apenas um animal. Dessa forma, 
como mostrado nos arquivos acima, todos devem possuir apenas dez linhas. 
 
Modelagem 01 
 
DATA PESAGENS; 
INPUT ID_ANIMAL 2. IDADE_PESOS 3. PESOS 3. +1 @@; 
IF ID_ANIMAL EQ . THEN DELETE; 
CARDS; 
23205127 23365184 23550289 
02205144 02365255 02550302 
27205165 27365201 27550402 
41205159 41365238 41550415 
43205135 43365199 43550358 
29205188 29365279 29550399 
25205178 25365254 25550321 
46205 98 46365166 46550287 
47205131 47365281 47550311 
48205148 48365287 48550420 
; 
RUN; 
PROC SORT DATA = PESAGENS; BY ID_ANIMAL; RUN; 
DATA P205; SET PESAGENS; BY ID_ANIMAL; P205 = PESOS; 
IF IDADE_PESOS NE 205 THEN DELETE; DROP IDADE_PESOS PESOS; RUN; 
DATA P365; SET PESAGENS; BY ID_ANIMAL; P365 = PESOS; 
IF IDADE_PESOS NE 365 THEN DELETE; DROP IDADE_PESOS PESOS; RUN; 
DATA P550; SET PESAGENS; BY ID_ANIMAL; P550 = PESOS; 
IF IDADE_PESOS NE 550 THEN DELETE; DROP IDADE_PESOS PESOS; RUN; 
PROC SORT DATA = P205; BY ID_ANIMAL; RUN; 
PROC SORT DATA = P365;BY ID_ANIMAL; RUN; 
PROC SORT DATA = P550; BY ID_ANIMAL; RUN; 
DATA PESOS_PADRAO; MERGE P205 P365 P550; BY ID_ANIMAL; 
RUN; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 87
 Todos os três arquivos, agora, possuem a mesma conformação em quantidade de 
linhas. O próximo passo concatenará estes arquivos. 
 
 Modelagem 02 – Loader do registro de genealogia 
 
DATA GENEALOGIA; 
INPUT ID_ANIMAL 2. 
 SEXO $ 1. 
 ID_PAI 2. 
 ID_MAE 2. 
 NASC_A DDMMYY10. 
 NASC_P DDMMYY10. 
 NASC_M DDMMYY10. +1 
 RA $ 3. +1 
 RP $ 3. +1 
 RM $ 3. +1 
 PN 2.; 
CARDS; 
23F242928/08/199722/10/199524/01/1994 NEL NEL NEL 31 
02M332718/02/199505/06/199927/08/1997 NEL NEL NEL 31 
27F362327/08/200010/01/199828/08/1997 NEL NEL NEL 31 
41M362529/09/200410/01/199801/10/2000 NEL NEL NEL 31 
43M342524/05/200608/02/200001/10/2000 NEL NEL NEL 31 
29F342724/01/199408/02/200027/08/1997 NEL NEL NEL 29 
25F312701/10/200005/11/199827/08/1997 NEL NEL NEL 37 
46F332309/10/200602/08/199928/08/1997 NEL NEL NEL 36 
47F282320/09/200711/10/199728/08/1997 NEL NEL NEL 29 
48M282920/09/200011/10/199724/01/1994 NEL NEL NEL 31 
; 
RUN; 
 
 
 
Modelagem 03 – Loader do registro de fazendas 
 
DATA REGISTROS; 
INPUT ID_ANIMAL 2. +1 
 COD_FAZENDA 5. +1 
 FAZENDA $ 11. +1 
 MUNICIPIO $ 13. 
 UF $ 2.; 
DATALINES; 
01- 239-VALE DO BOI CARMOLANDIA TO 
02- 239-VALE DO BOI CARMOLANDIA TO 
15- 239-VALE DO BOI CARMOLANDIA TO 
42- 239-VALE DO BOI CARMOLANDIA TO 
43- 239-VALE DO BOI CARMOLANDIA TO 
44- 239-VALE DO BOI CARMOLANDIA TO 
45-28402-MARIANA GURUPI TO 
46-28161-CANAA WANDERLANDIA TO 
47- 239-VALE DO BOI CARMOLANDIA TO 
48- 239-VALE DO BOI CARMOLANDIA TO 
; 
RUN; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 88
Modelagem 04 – Criação do Arquivo de genealogia com coluna de ordem de parto 
 
PROC SORT DATA = GENEALOGIA NODUPKEY; BY ID_MAE NASC_A; 
DATA GEN_OP; 
 SET GENEALOGIA; 
 RETAIN OP; 
 BY ID_MAE; 
 IF FIRST.ID_MAE THEN DO; 
 OP = 1; 
 END; 
 IF NOT(FIRST.ID_MAE) THEN DO; 
 OP +1; 
 END; 
RUN; 
 
 
 
 
Modelagem 05 – Concatenação dos registros de genealogia, fazendas e pesos 
 
PROC SORT DATA = PESOS_PADRAO; BY ID_ANIMAL; 
PROC SORT DATA = GEN_OP; BY ID_ANIMAL; 
PROC SORT DATA = REGISTROS; BY ID_ANIMAL; 
 
DATA ARQUIVO_01; MERGE GEN_OP PESOS_PADRAO REGISTROS; BY ID_ANIMAL; 
IF RA NE 'NEL' THEN DELETE; 
DROP RA RP RM FAZENDA MUNICIPIO UF; 
RUN; 
 
 
 
 Para determinação das características reprodutivas de IDP, IPP e FR, faz-se necessário 
execultar uma seqüência de rotinas, sejam elas: 
 
 
Modelagem 06 – Criação do cadastro de Mães 
 
PROC SORT DATA = ARQUIVO_01 OUT = CADMAE 
 (KEEP = ID_MAE NASC_A NASC_M RENAME = (NASC_A = PARTO)) NODUPKEY; 
 BY ID_MAE NASC_A; 
RUN; 
 
 
 
Modelagem 07 – Determinação do IDP e IPP, com utilização das Mães 
 
PROC SORT DATA = CADMAE; BY ID_MAE PARTO; RUN; 
 
DATA CADMAE; 
 SET CADMAE; 
 RETAIN NR_PARTO IPP IDP QTD_PARTOS DAT_PARTO1-DAT_PARTO4; 
 FORMAT DAT_PARTO1-DAT_PARTO4 DDMMYY10.; 
 BY ID_MAE; 
 IF FIRST.ID_MAE THEN DO; 
 DAT_PARTO1 = .; 
ABC DO SAS FERNANDO BRITO LOPES 
 89
 DAT_PARTO2 = .; 
 DAT_PARTO3 = .; 
 DAT_PARTO4 = .; 
 N = 1; 
 QTD_PARTOS = 0; 
 IPP = INTCK('MONTH', NASC_M, PARTO); 
 NR_PARTO = 1; 
 END; 
 IF N =1 THEN DAT_PARTO1 = PARTO; 
 IF N =2 THEN DAT_PARTO2 = PARTO; 
 IF N =3 THEN DAT_PARTO3 = PARTO; 
 IF N =4 THEN DAT_PARTO4 = PARTO; 
 N+1; 
 QTD_PARTOS + 1; 
 IF QTD_PARTOS = 1 THEN IDP = .; 
 IF QTD_PARTOS = 2 THEN DO; 
 IDP = DAT_PARTO2-DAT_PARTO1; 
END; 
 IF QTD_PARTOS = 3 THEN DO; 
 IDP = DAT_PARTO3-DAT_PARTO2; 
END; 
 IF QTD_PARTOS = 4 THEN DO; 
 IDP = DAT_PARTO4-DAT_PARTO3; 
END; 
 IF NOT(FIRST.ID_MAE) THEN DO; 
 IPP = .; 
 NR_PARTO +1; 
 END; 
 OUTPUT; 
RUN; 
 
 
 
 
Modelagem 08– Batimento das bases das mãe ecriação do resgistro com filhos 
 
PROC SORT DATA = CADMAE; 
 BY ID_MAE; 
RUN; 
 
PROC SORT DATA = CADFILHO; 
 BY ID_MAE; 
RUN; 
 
DATA CADFINAL; 
 MERGE CADFILHO (IN = A) 
 CADMAE (IN = B); 
 BY ID_MAE; 
 IF A; 
 FORMAT NASC_A DDMMYY10. 
PARTO DDMMYY10. 
NASC_M DDMMYY10. 
NASC_P DDMMYY10.; 
RUN; 
 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 90
Modelagem 09 – Criação do arquivo para características produtivas 
 
PROC SORT DATA = ARQUIVO_01; BY ID_ANIMAL; RUN; 
DATA PRODUTIVAS; 
SET ARQUIVO_01; 
 H = COD_FAZENDA; 
 Y = YEAR(NASC_A); 
 M = MONTH(NASC_A); 
 IF M GE 5 AND M LE 10 THEN DO; S = 1; END; ELSE DO; S = 2; END; 
 IF SEXO EQ 'M' THEN DO; SEXO = 1; END; ELSE DO; SEXO = 2; END; 
 HYSS =(H*1000000)+(Y*100)+(S*10)+SEXO; 
 GC = HYSS; 
 KEEP ID_ANIMAL ID_PAI ID_MAE GC OP PN P205 P365 P550; 
RUN; 
OPTION NODATE NONUMBER; 
PROC PRINT DATA = PRODUTIVAS NOOBS; 
TITLE 'ARQUIVO DE REGISTROS PRODUTIVOS'; 
RUN; 
 
 
 ARQUIVO DE REGISTROS PRODUTIVOSARQUIVO DE REGISTROS PRODUTIVOSARQUIVO DE REGISTROS PRODUTIVOSARQUIVO DE REGISTROS PRODUTIVOS 
 
 ID_ANIMAL ID_PAIID_ANIMAL ID_PAIID_ANIMAL ID_PAIID_ANIMAL ID_PAI ID_MAE PN OP P205 P365 P550 GCID_MAE PN OP P205 P365 P550 GCID_MAE PN OP P205 P365 P550 GCID_MAE PN OP P205 P365 P550 GC 
 
 2 33 27 31 3 144 255 302 239200121 
 23 24 40 31 1 127 184 289 239199512 
 25 31 27 37 2 178 254 321 28402200012 
 27 36 23 31 1 165 201 402 239199022 
 29 34 27 29 1 188 279 399 239199322 
 41 36 25 31 1 159 238 415 239200411 
 43 34 25 31 2 135 199 358 239200611 
 46 33 23 36 2 98 166 287 28161200612 
 47 28 23 29 3 131 281 311 239200712 
 48 28 29 31 1 148 287 420 239200011 
 
 
 
Modelagem 08 – Criação do arquivo para características reprodutivas 
 
PROC SORT DATA = CADFINAL; BY ID_MAE NASC_A; RUN; 
PROC SORT DATA = GENEALOGIA; BY ID_MAE NASC_A; RUN; 
 
DATA REPRO_01; 
 MERGE GENEALOGIA CADFINAL; 
 RETAIN OP; 
 IF FIRST.ID_MAE THEN DO; 
 BY ID_MAE NASC_A; 
 OP = 1; 
 END; 
 IF NOT(FIRST.ID_MAE) THEN DO; 
 OP +1; 
 END; 
 FORMAT NASC_A DDMMYY10. 
PARTO DDMMYY10. 
NASC_M DDMMYY10. 
NASC_P DDMMYY10.; 
RUN; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 91
PROC SORT DATA = REGISTROS; BY ID_ANIMAL; RUN; 
PROC SORT DATA = REPRO_01; BY ID_ANIMAL; RUN; 
PROC SORT DATA = PESOS_PADRAO; BY ID_ANIMAL; RUN; 
 
DATA REPRODUTIVAS; 
 MERGE REGISTROS REPRO_01 PESOS_PADRAO; 
 BY ID_ANIMAL; 
 H = COD_FAZENDA; 
 Y = YEAR(NASC_A); 
 M = MONTH(NASC_A); 
 IF M GE 5 AND M LE 10 THEN DO; S = 1; END; ELSE DO; S = 2; END; 
 HYS =(H*100000)+(Y*10)+S; 
 GC = HYS; 
 FR=ROUND(((P205*365)/IDP),0.01); 
 IF SEXO EQ 'M' THEN DELETE; 
 KEEP ID_ANIMAL ID_PAI ID_MAE GC OP IDP IPP FR; 
RUN; 
OPTION NODATE NONUMBER; 
PROC PRINT DATA = REPRODUTIVAS NOOBS; 
TITLE 'ARQUIVO DE REGISTROS REPRODUTIVOS'; 
RUN; 
 
 
 ARQUIVO DE REGISTROS REPRODUTIVOSARQUIVO DE REGISTROS REPRODUTIVOSARQUIVO DE REGISTROS REPRODUTIVOSARQUIVO DE REGISTROS REPRODUTIVOS 
 
 IDIDIDID_ANIMAL ID_PAIID_MAE IPP IDP OP GC FR_ANIMAL ID_PAI ID_MAE IPP IDP OP GC FR_ANIMAL ID_PAI ID_MAE IPP IDP OP GC FR_ANIMAL ID_PAI ID_MAE IPP IDP OP GC FR 
 
 23 24 40 31 . 1 23919951 . 
 25 31 27 . 2807 2 2840220001 23.15 
 27 36 23 18 . 1 23919902 . 
 29 34 27 35 . 1 23919932 . 
 46 33 23 . 6077 2 2816120061 5.89 
 47 28 23 . 346 3 23920071 138.19 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 92
Renumeração de Pedigree 
 
 Em alguns casos podem existir registros de animais, cuja identificação é inferior à de 
seus pais. Portanto, faz-se necessário renumerar estes registros, uma vez que um animal deve 
ter seu registro com numeração maior que as de seus pais. Partindo do princípio de que o 
banco de dados analisado possui um registro de informações consistente, o modelo de 
renumeração a seguir, se faz preciso e eficaz. 
 
 
Criação de um Banco de Dados Fictício 
 
DATA NELORE; 
INPUT ANIMAL 
 FAZENDA 
 NASC_A DDMMYY6. 
 PAI NASC_P DDMMYY6. 
 MAE NASC_M DDMMYY6. 
 SEXO $ 
 PN; 
FORMAT NASC_A DDMMYY9. 
 NASC_P DDMMYY9. 
 NASC_M DDMMYY9.; 
 ANO = SUBSTR(PUT(YEAR(NASC_A),z4.),3,2); 
 MES = MONTH(NASC_A); 
 IF MES GE 4 AND MES LE 9 THEN EST=1; ELSE EST=2; 
 IF SEXO ='M' THEN SEXO = 1; ELSE SEXO = 2; 
 GC = FAZENDA*10000+ANO*100+EST*10+SEXO; 
CARDS; 
409 26 050693 371 010586 200 030591 M 29 
127 15 010283 511 070778 126 010280 M 31 
200 26 030591 371 010586 407 030589 F 31 
128 15 010284 511 070778 126 010280 F 32 
126 15 010280 511 070778 600 050273 F 31 
370 26 020585 127 010283 126 010280 M 27 
015 31 020595 371 010586 200 030591 F 30 
012 31 091096 127 010283 200 030591 M 29 
921 57 091070 . . . . M . 
922 57 230469 . . . . F . 
407 26 030589 371 010586 128 010284 F 28 
371 26 020586 127 010283 128 010284 M 28 
372 26 030587 370 020585 126 010280 M 26 
001 15 010175 921 020570 922 091169 M 27 
511 31 070778 001 010175 600 050273 M 33 
232 15 010577 001 010175 600 050273 F 27 
333 26 020780 511 070778 600 050273 M 31 
222 15 010583 333 020780 126 010280 F 27 
111 15 100790 127 010283 126 010280 F 29 
099 15 010194 372 030587 200 030591 F 27 
600 57 050273 921 020570 922 091169 F 29 
; 
RUN; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 93
Criação da variável Ordem de Parto "OP" 
 
PROC SORT DATA = NELORE; 
BY MAE; 
DATA REBANHO_1; 
 SET NELORE; 
 RETAIN OP; 
 BY MAE; 
 IF FIRST.MAE THEN DO; 
 OP = 1; 
 END; 
 IF NOT(FIRST.MAE) THEN DO; 
 OP +1; 
 END; 
run; 
 
 
Numeração Animal Única 01 para o Pai 
 
DATA REBANHO_2; 
SET REBANHO_1; 
IF ANIMAL = '.' THEN DELETE; 
ANIMAL = PAI; 
NASC_A = '0'; 
PAI = '99'; 
MAE = '99'; 
RUN; 
PROC SORT DATA=REBANHO_2; BY ANIMAL NASC_A; 
 
 
Separação dos Ultimos Pais em função do PAI 
 
DATA SORT_2; 
SET REBANHO_2; 
IF LAST.ANIMAL; 
BY ANIMAL NASC_A; 
RUN; 
 
 
Numeração Animal Única 02 para a Mãe 
 
DATA REBANHO_3; 
SET REBANHO_1; 
IF ANIMAL = '.' THEN DELETE; 
ANIMAL = MAE; 
NASC_A = '0'; 
PAI = '99'; 
MAE = '99'; 
RUN; 
PROC SORT DATA=REBANHO_3; BY ANIMAL NASC_A; 
 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 94
Separação dos Ultimos Pais em função da Mãe 
 
DATA SORT_3; 
SET REBANHO_3; 
IF LAST.ANIMAL; 
BY ANIMAL NASC_A; 
RUN; 
PROC SORT DATA=SORT_3; BY ANIMAL NASC_A; 
 
 
Concatenação do arquivo original com os dos últimos Pais 
 
DATA PRIMEIRO; 
SET REBANHO_1 SORT_2 SORT_3; 
IF PAI = '0' THEN PAI = '.'; 
IF MAE = '0' THEN MAE = '.'; 
IF NASC_A NE 0 THEN BDATE = JULDATE(BDATE); 
RUN; 
PROC SORT DATA=PRIMEIRO; BY ANIMAL NASC_A; 
 
 
Numeração Animal Única 03 
 
DATA SEGUNDO; 
SET PRIMEIRO; 
IF LAST.ANIMAL; 
BY ANIMAL; 
RUN; 
PROC SORT DATA=SEGUNDO; BY NASC_A; 
 
 
Renumeração dos Animais: CRIAÇÃO DAS NOVAS IDENTIFICAÇÕES 
 
DATA INDICE (KEEP=ANIMAL NOVO_ID); 
SET SEGUNDO; 
RETAIN NOVO_ID 1; 
NOVO_ID = NOVO_ID + 1; 
RUN; 
 
 
Nova Identificação do Animal 
 
DATA TERCEIRO; 
MERGE SEGUNDO (IN=INA) INDICE (IN=INB); 
IF INA; 
RUN; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 95
Nova Identificação do Pai 
 
DATA INDICE_PAI (KEEP=PAI ID_PAI); 
SET INDICE; 
PAI = ANIMAL; 
ID_PAI = NOVO_ID; 
RUN; 
PROC SORT; BY PAI; 
PROC SORT DATA=TERCEIRO; BY PAI; 
 
DATA QUARTO; 
MERGE TERCEIRO (IN=INA) INDICE_PAI (IN=INB); BY PAI; 
IF INA; 
RUN; 
 
 
Nova Identificação da Mãe 
 
DATA INDICE_MAE (KEEP=MAE ID_MAE); 
SET INDICE; 
MAE = ANIMAL; 
ID_MAE = NOVO_ID; 
RUN; 
PROC SORT; BY MAE; 
PROC SORT DATA=QUARTO; BY MAE; 
 
DATA QUINTO; 
MERGE QUARTO (IN=INA) INDICE_MAE (IN=INB); BY MAE; 
IF INA; 
RUN; 
PROC SORT; BY NOVO_ID; 
 
DATA SEXTO; 
SET QUINTO; 
IF ID_PAI = '.' THEN ID_PAI = '0'; 
IF ID_MAE = '.' THEN ID_MAE = '0'; 
IF ID_PAI NE '.' THEN ID_PAI = ID_PAI-1; 
IF ID_MAE NE '.' THEN ID_MAE = ID_MAE-1; 
IF ANIMAL = '.' THEN DELETE; 
NOVO_ID = NOVO_ID - 1; 
RUN; 
PROC SORT; BY NOVO_ID; 
 
 
Criação do Registro de Animais Renumerado, Editado e Sorteado por ANIMAL 
 
DATA REGISTRO; 
SET SEXTO; 
IF PAI = '99' THEN DELETE; 
IF MAE = '99' THEN DELETE; 
KEEP NOVO_ID ID_PAI ID_MAE PN GC OP; 
RENAME NOVO_ID=ANIMAL ID_PAI=PAI ID_MAE=MAE; 
RUN; 
 
 
ABC DO SAS FERNANDO BRITO LOPES 
 96
 Após formatação dos arquivos, faz-se necessário exportá-los. O procedimento a baixo 
cria um arquivo, em diretório pré-estabelecido. A ordenação indicada no PUT será a mesma 
do arquivo gerado pelo procedimento descrito. 
 
 
Criação de arquivo TXT 
 
FILENAME E 'C:\PEDIGREE.TXT'; 
DATA _NULL_; 
SET REGISTRO; 
FILE E; 
PUT ANIMAL 2.0 +1 
 PAI 2.0 +1 
 MAE 2.0 +1 
 OP 1.0 +1 
 GC 6.0 +1 
 PN 2.0; 
RUN; 
ABC DO SAS FERNANDO BRITO LOPES 
 97
Referências Bibliográficas 
 
CUNNINGHAM,E.P. ; HENDERSON,C.R. An iterative procedure for estimating fixed 
effects and variance components in mixed model situations.Biometrics. 24:13-25, 1968. 
 
FILHO, J. A. C. Nota Metodológica sobre Modelos Lineares Mistos. UFPR: Curitiba, 
2003. 
 
FILHO, J. A. C. Uma Aplicação de Modelos Lineares Mistos. UFPR: Curitiba, 2003. 
 
GRAYBIL,F.A. Theory and application of the linear model. Duxbury, North State, 
Massachusetts, 1976, 
 
HENDERSON,C.R. Estimation of variance and covariance components. Biometrics. 17:226-
52, 1953 
 
HICKS,C.R. Fundamental concepts in the design of experimen. 2nd ed. New York, Holt, 
Rinehart and Winston, 1973. 349p. 
 
KÜSEL, R. A. M. SAS PROGRAMAÇÃO I. UEC: Centro Nacional de Processamento de 
Alto Desempenho – SP, 2008. 
 
LOPES, L. F. TREINAMENTO SISTEMA – S.A.S. UFSA, Santa Maria – RS, 2006. 
 
NETER,J.;WASSERMAN,W.; KUTNER,M.H. Applied linear statistical models, 
regression, analysis of variance and experimental designs. Richard D. Irwing, Inc. 1985, 
1127p. 
 
PATTERSON,H.D. ; THOMPSON,R. Recovery of inter-block information when block sizes 
are unequal. Biometrika, 58(3): 545-54, 1971. 
 
PERRI, S. H . V., Ajuste de Modelos Mistos de Classificação Dupla: Procedimentos do 
Sistema Estatístico “SAS”. Tese apresentada à Escola Superior de Agricultura “Luiz de 
Queiroz”, 1998. 
 
RAO,C.R. Linear statistical inference and its applications. 2nd ed. New York, John Wiley 
& Sons, 1973. 
 
SAS Institute Inc. Statistical Analysis System user’s guide. Version 9.0 ed. Cary: SAS 
Institute, USA, 2002 
 
SEARLE, S.R. Another lookat Henderson’s methods of estimating variance components. 
Biometrics, 24, p. 749-78, 1968. 
 
SLAUGHTER, S. J. & DEKEICHE, L. D. The Little SAS Book: a primer. 2ª ed. Cary, NY: 
SAS Institute Inc., 1998. 288 p. 
 
THOMPSON, R. Iterative estimation of variance components for non-orthogonal data. 
Biometrics, 26: 767-73, 1969. 
ABC DO SAS FERNANDO BRITO LOPES 
 98
Nota 
 
Método dos Quadrados Mínimos em Avaliação Genética 
 
A Tabela 1 abaixo mostra o ganho de peso de novilhos Nelore de acordo com o 
regime alimentar e a ordem de parto de sua mãe 
 
Tabela 1 – Ganho médio de peso de novilhos Nelore sob manejo alimentar diferenciado. 
Novilho Regime1 Ordem de parto Ganho de peso (GP) 
1 1 4 795 
2 1 5 645 
3 3 3 899 
4 3 2 890 
5 2 3 883 
6 1 1 669 
7 2 3 876 
8 1 5 613 
9 3 2 804 
10 2 4 980 
11 1 4 895 
12 3 5 893 
13 2 1 590 
14 1 1 580 
15 3 2 822 
16 2 4 999 
17 1 2 752 
18 3 5 922 
19 3 3 800 
20 2 3 895 
21 1 2 694 
22 2 1 698 
23 1 2 884 
24 3 3 881 
25 1 1 631 
1
 pasto=1, semi-confinado=2, confinado=3 
 
Com base nos resultados da Tabela 1, resolva as questões abaixo: 
 
1) Defina o modelo estatístico adequado para a análise do ganho de peso. 
2) Realize a análise de variância para verificar se os fatores Regime e Ordem de Parto 
exerceram efeitos significativos sobre o ganho de peso. Considere os efeitos lineares e 
quadráticos da ordem de parto. 
3) Utilizar o Método dos Quadrados Mínimos (QM) para estimar o efeito de Regime, assim 
como estimar os coeficientes de regressão para Ordem de Parto. 
4) Calcule as médias ajustadas por QM do Ganho de Peso para cada Regime Alimentar. 
ABC DO SAS FERNANDO BRITO LOPES 
 99
5) Ajustar Ganho de Peso para os efeitos ambientais usando o método do QM. 
6) Considerando a herdabilidade para GP igual a 0,45, estime o valor genético de cada animal. 
7) Houve mudança na classificação dos animais, para GP, após esta característica ter sido 
ajustada para os efeitos ambientais que as afetavam? Em caso positivo quais os animais que 
mudaram de posto? 
8) Calcule a DEP (Diferença Espera na Progênie) para o GP dos novilhos. 
 
 
 
 O primeiro passo é passo será a utilização do PROC MEANS e PROC GLM para 
determinar a média para a característica Ordem de Parto, e verificar se está possui efeito 
quadrático sifnigicativo. 
 
 
Nota 01 - Criação do arquivo para análise em SAS 
 
DATA NOVILHO; 
INPUT RA OP GP; 
OP2 = OP**2; 
O1 = OP-2.84; 
O2 = (OP-2.84)**2; 
CARDS; 
1 4 795 
1 5 645 
3 3 899 
3 2 890 
2 3 883 
1 1 669 
2 3 876 
1 5 613 
3 2 804 
2 4 980 
1 4 895 
3 5 893 
2 1 590 
1 1 580 
3 2 822 
2 4 999 
1 2 752 
3 5 922 
3 3 800 
2 3 895 
1 2 694 
2 1 698 
2 2 884 
3 3 881 
2 1 631 
; 
RUN; 
 
 
OBS: Os dados hachurados foram obtidos após calculo das médias pelo MEANS Procedure. 
ABC DO SAS FERNANDO BRITO LOPES 
 100
Procedures MEANS e GLM 
 
Nota 02 – Determinação da média e verificação dos efeitos linear e quadrático para ordem 
de parto. 
 
PROC MEANS DATA=NOVILHO MEAN; 
VAR OP; 
RUN; 
 
PROC GLM DATA=NOVILHO; 
CLASS RA; 
MODEL GP = RA OP OP2; 
RUN; 
QUIT; 
 
 
IML Procedure 
 
PROC IML;; 
RESET PRINT; 
USE NOVILHO; 
READ ALL VAR{GP RA OP OP2 O1 O2}; 
CLOSE; 
/* M G1 G2 */ 
K = {1 1 0, 
 1 1 0, 
 1 -1 -1, 
 1 -1 -1, 
 1 0 1, 
 1 1 0, 
 1 0 1, 
 1 1 0, 
 1 -1 -1, 
 1 0 1, 
 1 1 0, 
 1 -1 -1, 
 1 0 1, 
 1 1 0, 
 1 -1 -1, 
 1 0 1, 
 1 1 0, 
 1 -1 -1, 
 1 -1 -1, 
 1 0 1, 
 1 1 0, 
 1 0 1, 
 1 1 0, 
 1 -1 -1, 
 1 1 0}; 
 
ABC DO SAS FERNANDO BRITO LOPES 
 101
• Criação da Matriz "X" com valor exato dos coeficientes de regressão de 
OP 
 
X = (K || O1 || O2); 
 
 
• Vetor com valores das médias QM, Coeficientes dos "Regimes" e 
Coeficiente de Regressão 
 
BETA = INV(X` * X) * (X` * GP); 
 
 
• Ajustes do GP em função dos efeitos ambientais 
 
GP2 = X * BETA; 
 
 
• Resíduo (e = y - X*Beta) 
 
e = GP - GP2; 
 
 
• Índices de GP médio e ajustados para cada Regime Alimentar 
 
M = 873.97901; 
R1 = M + (-59.9268); 
R2 = M + (29.22475); 
R3 = M + (-(-59.9268)-29.22475); 
 
 
• Estimação do Valor Genético do Animal 
 
A = 0.45 * GP2; 
 
 
• Estimação da DEP (Diferença Esperada na Progênie) do Animal, após 
ajustes dos GPs 
 
DEP = 2*A; 
RUN; 
QUIT; 
 
 
OBS: Os valores hachurados foram obtidos através do calculo de “Beta”, ou seja, dos efeitos 
que incidem sobre a característica analisada.