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.