SAS - Guia Rápido
SAS apoia Statistical Analysis Software. Foi criado no ano de 1960 pelo SAS Institute. A partir de 1º de janeiro de 1960, o SAS foi usado para gerenciamento de dados, inteligência de negócios, análise preditiva, análise descritiva e prescritiva, etc. Desde então, muitos novos procedimentos estatísticos e componentes foram introduzidos no software.
Com a introdução do JMP (Jump) para estatísticas, o SAS tirou proveito do Graphical user Interfaceque foi introduzido pelo Macintosh. O Jump é usado basicamente para aplicações como Six Sigma, projetos, controle de qualidade e análise de engenharia e científica.
O SAS é independente de plataforma, o que significa que você pode executar o SAS em qualquer sistema operacional Linux ou Windows. SAS é conduzido por programadores SAS que usam várias sequências de operações nos conjuntos de dados SAS para fazer relatórios adequados para análise de dados.
Ao longo dos anos, a SAS adicionou várias soluções ao seu portfólio de produtos. Possui solução para Governança de Dados, Qualidade de Dados, Big Data Analytics, Text Mining, Gerenciamento de Fraudes, Ciências da Saúde etc. Podemos assumir com segurança que o SAS tem uma solução para cada domínio de negócio.
Para dar uma olhada na lista de produtos disponíveis, você pode visitar SAS Components
Por que usamos SAS
SAS é basicamente trabalhado em grandes conjuntos de dados. Com a ajuda do software SAS, você pode realizar várias operações nos dados, como -
- Gestão de dados
- Análise Estatística
- Formação de relatórios com gráficos perfeitos
- Planejamento de negócios
- Pesquisa operacional e gerenciamento de projetos
- Melhoria da Qualidade
- Desenvolvimento de aplicações
- Extração de dados
- Transformação de dados
- Atualização e modificação de dados
Se falamos sobre os componentes do SAS, então mais de 200 componentes estão disponíveis no SAS.
Sr. Não. | Componente SAS e seu uso |
---|---|
1 | Base SAS É um componente central que contém facilidade de gerenciamento de dados e uma linguagem de programação para análise de dados. É também o mais utilizado. |
2 | SAS/GRAPH Crie gráficos, apresentações para melhor compreensão e apresentação do resultado em um formato adequado. |
3 | SAS/STAT Realizar análise estatística com a análise de variância, regressão, análise multivariada, análise de sobrevivência e análise psicométrica, análise de modelo misto. |
4 | SAS/OR Pesquisa operacional. |
5 | SAS/ETS Econometria e análise de séries temporais. |
6 | SAS/IML C Linguagem de matriz interativa. |
7 | SAS/AF Instalação de aplicativos. |
8 | SAS/QC Controle de qualidade. |
9 | SAS/INSIGHT Mineração de dados. |
10 | SAS/PH Análise de ensaios clínicos. |
11 | SAS/Enterprise Miner Mineração de dados. |
Tipos de software SAS
- Windows ou PC SAS
- SAS EG (guia empresarial)
- SAS EM (Enterprise Miner, ou seja, para análise preditiva)
- SAS significa
- SAS Stats
Geralmente usamos o Window SAS na organização e também no instituto de treinamento. Algumas organizações usam Linux, mas não há interface gráfica com o usuário, portanto, você deve escrever o código para cada consulta. Mas na janela SAS há muitos utilitários disponíveis que ajudam muito os programadores e também reduzem o tempo de escrita dos códigos.
Uma janela SaS possui 5 partes.
Sr. Não. | Janela SAS e seu uso |
---|---|
1 | Log Window Uma janela de log é como uma janela de execução onde podemos verificar a execução do programa SAS. Nesta janela também podemos verificar os erros. É muito importante verificar sempre a janela de log após a execução do programa. Para que possamos ter um entendimento adequado sobre a execução do nosso programa. |
2 | Editor Window
A janela do editor é a parte do SAS onde escrevemos todos os códigos. É como um bloco de notas. |
3 | Output Window A janela de saída é a janela de resultados onde podemos ver a saída de nosso programa. |
4 | Result Window É como um índice para todas as saídas. Todos os programas que executamos em uma sessão do SAS estão listados lá e você pode abrir a saída clicando no resultado da saída. Mas eles são mencionados apenas em uma sessão do SAS. Se fecharmos o software e depois abri-lo, a janela de resultados ficará vazia. |
5 | Explore Window Aqui estão todas as bibliotecas listadas. Você também pode navegar pelos arquivos compatíveis com SAS do sistema a partir daqui. |
Bibliotecas no SAS
Bibliotecas são como armazenamento em SAS. Você pode criar uma biblioteca e salvar todos os programas semelhantes nessa biblioteca. SAS fornece a você a facilidade de criar várias bibliotecas. Uma biblioteca SAS tem apenas 8 caracteres.
Existem dois tipos de bibliotecas disponíveis no SAS -
Sr. Não. | Janela SAS e seu uso |
---|---|
1 | Temporary or Work Library Esta é a biblioteca padrão do SAS. Todos os programas que criamos são armazenados nesta biblioteca de trabalho, se não atribuirmos nenhuma outra biblioteca a eles. Você pode verificar esta biblioteca de trabalho na janela de exploração. Se você criar um programa SAS e não tiver atribuído nenhuma biblioteca permanente a ele, se você encerrar a sessão depois disso novamente, você iniciará o software, então este programa não estará na biblioteca de trabalho. Porque só estará lá na biblioteca de trabalho enquanto durar a sessão. |
2 | Permanent Library Estas são as bibliotecas permanentes do SAS. Podemos criar uma nova biblioteca SAS usando utilitários SAS ou escrevendo os códigos na janela do editor. Essas bibliotecas são nomeadas como permanentes porque se criarmos um programa no SAS e salvá-lo nessas bibliotecas permanentes, elas estarão disponíveis pelo tempo que quisermos. |
SAS Institute Inc. lançou um gratuito SAS University Editiono que é bom o suficiente para aprender programação SAS. Ele fornece todos os recursos que você precisa aprender na programação BASE SAS que, por sua vez, permite que você aprenda qualquer outro componente SAS.
O processo de download e instalação do SAS University Edition é muito direto. Ele está disponível como uma máquina virtual que precisa ser executada em um ambiente virtual. Você precisa ter um software de virtualização já instalado em seu PC antes de executar o software SAS. Neste tutorial, usaremosVMware. Abaixo estão os detalhes das etapas para baixar, configurar o ambiente SAS e verificar a instalação.
Baixar SAS University Edition
SAS University Editionestá disponível para download no URL SAS University Edition . Role para baixo para ler os requisitos do sistema antes de iniciar o download. A tela a seguir aparece ao visitar este URL.
Software de virtualização de configuração
Role para baixo na mesma página para localizar a instalação stpe-1. Esta etapa fornece os links para obter o software de virtualização adequado para você. Caso você já tenha algum desses softwares instalados em seu sistema, pode pular esta etapa.
Software de virtualização de início rápido
Caso você seja totalmente novo no ambiente de virtualização, familiarize-se com ele, consultando os seguintes guias e vídeos disponíveis na etapa 2. Novamente, você pode pular esta etapa caso já esteja familiarizado.
Baixe o arquivo Zip
Na etapa 3, você pode escolher a versão apropriada do SAS University Edition compatível com o ambiente de virtualização que você possui. Ele é baixado como um arquivo zip com nome semelhante a unvbasicvapp__9411005__vmx__en__sp0__1.zip
Descompacte o arquivo zip
O arquivo zip acima precisa ser descompactado e armazenado em um diretório apropriado. Em nosso caso, escolhemos o arquivo zip VMware que mostra os seguintes arquivos após a descompactação.
Carregando a máquina virtual
Inicie o VMware player (ou estação de trabalho) e abra o arquivo que termina com a extensão .vmx. A tela abaixo é exibida. Observe as configurações básicas como memória e espaço no disco rígido alocado para a VM.
Ligue a máquina virtual
Clique no Power on this virtual machineao lado da marca de seta verde para iniciar a máquina virtual. A tela a seguir é exibida.
A tela abaixo aparece quando o SAS vm está no estado de carregamento, após o qual o VM em execução fornece um prompt para ir para um local de URL que abrirá o ambiente SAS.
Iniciando SAS Studio
Abra uma nova guia do navegador e carregue o URL acima (que difere de um PC para outro). A tela abaixo aparece indicando que o ambiente SAS está pronto.
O ambiente SAS
Ao clicar no Start SAS Studio obtemos o ambiente SAS que, por padrão, abre no modo de programador visual, conforme mostrado abaixo.
Também podemos alterá-lo para o modo de programador SAS clicando no menu suspenso.
Agora estamos prontos para escrever programas SAS.
Os programas SAS são criados usando uma interface de usuário conhecida como SAS Studio.
Abaixo está uma descrição de várias janelas e seu uso.
Janela Principal SAS
Esta é a janela que você vê ao entrar no ambiente SAS. Na esquerda está oNavigation Paneusado para navegar por vários recursos de programação. À direita está oWork Area que é usado para escrever o código e executá-lo.
Preenchimento Automático de Código
Este é um recurso muito poderoso que ajuda a obter a sintaxe correta das palavras-chave do SAS, bem como fornece um link para a documentação dessa palavra-chave.
Execução do Programa
A execução do código é feita pressionando o ícone de execução, que é o primeiro ícone da esquerda ou o botão F3.
Log do programa
O log do código executado está disponível no Logaba. Descreve os erros, avisos ou notas sobre a execução do programa. Esta é a janela onde você obtém todas as dicas para solucionar problemas de seu código.
Resultado do programa
O resultado da execução do código é visto na guia RESULTADOS. Por padrão, eles são formatados como tabelas html.
Guias de programa
A área de navegação contém recursos para criar e gerenciar programas. Ele também fornece as funcionalidades predefinidas para serem usadas com seu programa.
Arquivos e pastas do servidor
Nesta guia, podemos criar programas adicionais, importar dados a serem analisados e consultar os dados existentes. Ele também pode ser usado para criar atalhos de pasta.
Tarefas
A guia Tarefas fornece recursos para usar programas SAS integrados, fornecendo apenas as variáveis de entrada. Por exemplo, na pasta de estatísticas, você pode encontrar um programa SAS para fazer regressão linear, fornecendo apenas o nome do conjunto de dados SAS e os nomes das variáveis.
Trechos
A guia snippets fornece recursos para escrever macro SAS e gerar arquivos do conjunto de dados existente
Bibliotecas de programas
SAS armazena os conjuntos de dados em bibliotecas SAS. A biblioteca temporária está disponível apenas para uma única sessão e é denominada WORK. Mas as bibliotecas permanentes estão sempre disponíveis.
Atalhos de arquivo
Esta guia é usada para acessar arquivos armazenados fora do ambiente SAS. Os atalhos para esses arquivos são armazenados nesta guia.
A Programação SAS envolve primeiro a criação / leitura dos conjuntos de dados na memória e, em seguida, a análise desses dados. Precisamos entender o fluxo no qual um programa é escrito para conseguir isso.
Estrutura do programa SAS
O diagrama abaixo mostra as etapas a serem escritas na sequência fornecida para criar um Programa SAS.
Cada programa SAS deve ter todas essas etapas para completar a leitura dos dados de entrada, analisando os dados e fornecendo a saída da análise. Também oRUN declaração no final de cada etapa é necessária para concluir a execução dessa etapa.
Etapa DATA
Esta etapa envolve o carregamento do conjunto de dados necessário na memória SAS e a identificação das variáveis (também chamadas de colunas) do conjunto de dados. Também captura os registros (também chamados de observações ou assuntos). A sintaxe para a instrução DATA é a seguinte.
Sintaxe
DATA data_set_name; #Name the data set.
INPUT var1,var2,var3; #Define the variables in this data set.
NEW_VAR; #Create new variables.
LABEL; #Assign labels to variables.
DATALINES; #Enter the data.
RUN;
Exemplo
O exemplo a seguir mostra um caso simples de nomear o conjunto de dados, definir as variáveis, criar novas variáveis e inserir os dados. Aqui, as variáveis de string têm um $ no final e os valores numéricos estão sem ele.
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
comm = SALARY*0.25;
LABEL ID = 'Employee ID' comm = 'COMMISION';
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC Step
Esta etapa envolve a chamada de um procedimento integrado do SAS para analisar os dados.
Sintaxe
PROC procedure_name options; #The name of the proc.
RUN;
Exemplo
O exemplo abaixo mostra o uso do MEANS procedimento para imprimir os valores médios das variáveis numéricas no conjunto de dados.
PROC MEANS;
RUN;
A Etapa OUTPUT
Os dados dos conjuntos de dados podem ser exibidos com instruções de saída condicionais.
Sintaxe
PROC PRINT DATA = data_set;
OPTIONS;
RUN;
Exemplo
O exemplo a seguir mostra o uso da cláusula where na saída para produzir apenas alguns registros do conjunto de dados.
PROC PRINT DATA = TEMP;
WHERE SALARY > 700;
RUN;
O Programa SAS completo
Abaixo está o código completo para cada uma das etapas acima.
Resultado do programa
RESULTSComo qualquer outra linguagem de programação, a linguagem SAS tem suas próprias regras de sintaxe para criar os programas SAS.
Os três componentes de qualquer programa SAS - declarações, variáveis e conjuntos de dados seguem as regras de sintaxe abaixo.
Declarações SAS
As declarações podem começar em qualquer lugar e terminar em qualquer lugar. Um ponto e vírgula no final da última linha marca o final da declaração.
Muitas instruções SAS podem estar na mesma linha, com cada instrução terminando com um ponto-e-vírgula.
O espaço pode ser usado para separar os componentes em uma instrução de programa SAS.
As palavras-chave do SAS não diferenciam maiúsculas de minúsculas.
Cada programa SAS deve terminar com uma instrução RUN.
Nomes de variáveis SAS
As variáveis no SAS representam uma coluna no conjunto de dados SAS. Os nomes das variáveis seguem as regras abaixo.
Pode ter no máximo 32 caracteres.
Não pode incluir espaços em branco.
Deve começar com as letras de A a Z (sem distinção entre maiúsculas e minúsculas) ou um sublinhado (_).
Pode incluir números, mas não como o primeiro caractere.
Os nomes das variáveis não diferenciam maiúsculas de minúsculas.
Exemplo
# Valid Variable Names
REVENUE_YEAR
MaxVal
_Length
# Invalid variable Names
Miles Per Liter #contains Space.
RainfFall% # contains apecial character other than underscore.
90_high # Starts with a number.
Conjunto de dados SAS
A instrução DATA marca a criação de um novo conjunto de dados SAS. As regras para a criação do conjunto de DADOS são as seguintes.
Uma única palavra após a instrução DATA indica um nome de conjunto de dados temporário. O que significa que o conjunto de dados é apagado no final da sessão.
O nome do conjunto de dados pode ser prefixado com um nome de biblioteca, o que o torna um conjunto de dados permanente. O que significa que o conjunto de dados persiste após o término da sessão.
Se o nome do conjunto de dados SAS for omitido, o SAS criará um conjunto de dados temporário com um nome gerado pelo SAS como - DATA1, DATA2 etc.
Exemplo
# Temporary data sets.
DATA TempData;
DATA abc;
DATA newdat;
# Permanent data sets.
DATA LIBRARY1.DATA1
DATA MYLIB.newdat;
Extensões de arquivo SAS
Os programas SAS, arquivos de dados e os resultados dos programas são salvos com várias extensões no Windows.
*.sas - Representa o arquivo de código SAS que pode ser editado usando o Editor SAS ou qualquer editor de texto.
*.log - Representa o arquivo de log do SAS, ele contém informações como erros, avisos e detalhes do conjunto de dados para um programa SAS enviado.
*.mht / *.html −Representa o arquivo de resultados do SAS.
*.sas7bdat −Representa o arquivo de dados SAS que contém um conjunto de dados SAS incluindo nomes de variáveis, rótulos e resultados de cálculos.
Comentários no SAS
Os comentários no código SAS são especificados de duas maneiras. Abaixo estão esses dois formatos.
*mensagem; digite comentário
Um comentário na forma de *message;não pode conter ponto-e-vírgula ou aspas sem correspondência dentro dele. Além disso, não deve haver nenhuma referência a quaisquer instruções macro dentro de tais comentários. Ele pode se estender por várias linhas e ter qualquer comprimento. A seguir está um exemplo de comentário de uma única linha -
* This is comment ;
A seguir está um exemplo de comentário de várias linhas -
* This is first line of the comment
* This is second line of the comment;
/ * mensagem * / tipo de comentário
Um comentário na forma de /*message*/é usado com mais frequência e não pode ser aninhado. Mas pode abranger várias linhas e ter qualquer comprimento. A seguir está um exemplo de comentário de uma única linha -
/* This is comment */
A seguir está um exemplo de comentário de várias linhas -
/* This is first line of the comment
* This is second line of the comment */
Os dados que estão disponíveis para um programa SAS para análise são chamados de Conjunto de dados SAS. Ele é criado usando a etapa DATA.SAS pode ler uma variedade de arquivos como suas fontes de dados comoCSV, Excel, Access, SPSS and also raw data. Ele também tem muitas fontes de dados embutidas disponíveis para uso.
Os conjuntos de dados são chamados temporary Data Set se forem usados pelo programa SAS e, em seguida, descartados após a execução da sessão.
Mas se for armazenado permanentemente para uso futuro, é chamado de permanent Data set. Todos os conjuntos de dados permanentes são armazenados em uma biblioteca específica.
O conjunto de dados SAS é armazenado na forma de linhas e colunas e também conhecido como tabela de dados SAS. A seguir, vemos os exemplos de conjuntos de dados permanentes que são embutidos, bem como vermelhos de fontes externas.
Conjuntos de dados integrados SAS
Esses conjuntos de dados já estão disponíveis no software SAS instalado. Eles podem ser explorados e usados na formulação de expressões de amostra para análise de dados. Para explorar esses conjuntos de dados, vá paraLibraries -> My Libraries -> SASHELP. Ao expandi-lo, vemos a lista de nomes de todos os conjuntos de dados integrados disponíveis.
Vamos rolar para baixo para localizar um conjunto de dados chamado CARS.Clique duas vezes neste conjunto de dados para abri-lo no painel direito da janela, onde podemos explorá-lo ainda mais. Também podemos minimizar o painel esquerdo usando o botão maximizar visualização sob o painel direito.
Podemos rolar para a direita usando a barra de rolagem na parte inferior para explorar todas as colunas e seus valores na tabela.
Importando conjuntos de dados externos
Podemos exportar nossos próprios arquivos como conjuntos de dados usando o recurso de importação disponível no SAS Studio. Mas esses arquivos devem estar disponíveis nas pastas do servidor SAS. Portanto, temos que fazer o upload dos arquivos de dados de origem para a pasta SAS usando a opção de upload noServer Files and Folders.
Em seguida, usamos o arquivo acima em um programa SAS, importando-o. Para fazer isso, usamos a opçãoTasks -> Utilities -> Import data como mostrado abaixo. Dê um duplo clique no botão Importar Dados que abre a janela à direita para escolher o arquivo para o Conjunto de Dados.
Próximo clique no Select Filesbotão sob o programa de importação de dados no painel direito. A seguir está a lista dos tipos de arquivo que podem ser importados.
Escolhemos o arquivo "employee.txt" armazenado no sistema local e importamos o arquivo conforme mostrado abaixo.
Ver os dados importados
Podemos ver os dados importados executando o código de importação padrão gerado usando a opção Executar
Podemos importar qualquer outro tipo de arquivo usando a mesma abordagem acima e usá-lo em vários programas SAS.
Em geral, as variáveis no SAS representam os nomes das colunas das tabelas de dados que está analisando. Mas também pode ser usado para outros fins, como usá-lo como contador em um loop de programação. No capítulo atual, veremos o uso de variáveis SAS como nomes de colunas do conjunto de dados SAS.
Tipos de variáveis SAS
O SAS tem três tipos de variáveis, conforme abaixo -
Variáveis Numéricas
Este é o tipo de variável padrão. Essas variáveis são usadas em expressões matemáticas.
Sintaxe
INPUT VAR1 VAR2 VAR3; #Define numeric variables in the data set.
Na sintaxe acima, a instrução INPUT mostra a declaração de variáveis numéricas.
Exemplo
INPUT ID SALARY COMM_PERCENT;
Variáveis de personagem
Variáveis de caracteres são usadas para valores que não são usados em expressões matemáticas. Eles são tratados como texto ou strings. Uma variável se torna uma variável de caractere adicionando um $ sing com um espaço no final do nome da variável.
Sintaxe
INPUT VAR1 $ VAR2 $ VAR3 $; #Define character variables in the data set.
Na sintaxe acima, a instrução INPUT mostra a declaração de variáveis de caracteres.
Exemplo
INPUT FNAME $ LNAME $ ADDRESS $;
Variáveis de Data
Essas variáveis são tratadas apenas como datas e precisam estar em formatos de data válidos. Uma variável se torna uma variável de data adicionando um formato de data com um espaço no final do nome da variável.
Sintaxe
INPUT VAR1 DATE11. VAR2 MMDDYY10. ; #Define date variables in the data set.
Na sintaxe acima, a instrução INPUT mostra a declaração das variáveis de data.
Exemplo
INPUT DOB DATE11. START_DATE MMDDYY10. ;
Uso de variáveis no programa SAS
As variáveis acima são usadas no programa SAS, conforme mostrado nos exemplos abaixo.
Exemplo
O código a seguir mostra como os três tipos de variáveis são declarados e usados em um programa SAS
DATA TEMP;
INPUT ID NAME $ SALARY DEPT $ DOJ DATE9. ;
FORMAT DOJ DATE9. ;
DATALINES;
1 Rick 623.3 IT 02APR2001
2 Dan 515.2 OPS 11JUL2012
3 Michelle 611 IT 21OCT2000
4 Ryan 729 HR 30JUL2012
5 Gary 843.25 FIN 06AUG2000
6 Tusar 578 IT 01MAR2009
7 Pranab 632.8 OPS 16AUG1998
8 Rasmi 722.5 FIN 13SEP2014
;
PROC PRINT DATA = TEMP;
RUN;
No exemplo acima, todas as variáveis de caracteres são declaradas seguidas por um sinal $ e as variáveis de data são declaradas seguidas por um formato de data. A saída do programa acima é a seguinte.
Usando as Variáveis
As variáveis são muito úteis na análise dos dados. Eles são usados em expressões nas quais a análise estatística é aplicada. Vejamos um exemplo de análise do conjunto de dados integrado denominadoCARS que está presente sob Libraries → My Libraries → SASHELP. Clique duas vezes nele para explorar as variáveis e seus tipos de dados.
A seguir, podemos produzir estatísticas resumidas de algumas dessas variáveis usando as opções de Tarefas no SAS Studio. Vamos paraTasks -> Statistics -> Summary Statisticse clique duas vezes nele para abrir a janela conforme mostrado abaixo. Escolha o conjunto de dadosSASHELP.CARSe selecione as três variáveis - MPG_CITY, MPG_Highway e Weight nas Variáveis de Análise. Segure a tecla Ctrl enquanto seleciona as variáveis clicando. Clique em executar.
Clique na guia de resultados após as etapas acima. Mostra o resumo estatístico das três variáveis escolhidas. A última coluna indica o número de observações (registros) usados na análise.
Strings no SAS são os valores colocados entre um par de aspas simples. Além disso, as variáveis de string são declaradas adicionando um espaço e o sinal $ no final da declaração da variável. SAS tem muitas funções poderosas para analisar e manipular strings.
Declarando Variáveis de String
Podemos declarar as variáveis de string e seus valores conforme mostrado abaixo. No código a seguir, declaramos duas variáveis de caracteres de comprimentos 6 e 5. A palavra-chave LENGTH é usada para declarar variáveis sem criar múltiplas observações.
data string_examples;
LENGTH string1 $ 6 String2 $ 5;
/*String variables of length 6 and 5 */
String1 = 'Hello';
String2 = 'World';
Joined_strings = String1 ||String2 ;
run;
proc print data = string_examples noobs;
run;
Ao executar o código acima, obtemos a saída que mostra os nomes das variáveis e seus valores.
Funções de String
Abaixo estão os exemplos de algumas funções SAS que são usadas com frequência.
SUBSTRN
Esta função extrai uma substring usando as posições inicial e final. No caso de nenhuma posição final ser mencionada, ele extrai todos os caracteres até o final da string.
Sintaxe
SUBSTRN('stringval',p1,p2)
A seguir está a descrição dos parâmetros usados -
- stringval é o valor da variável string.
- p1 é a posição inicial de extração.
- p2 é a posição final de extração.
Exemplo
data string_examples;
LENGTH string1 $ 6 ;
String1 = 'Hello';
sub_string1 = substrn(String1,2,4) ;
/*Extract from position 2 to 4 */
sub_string2 = substrn(String1,3) ;
/*Extract from position 3 onwards */
run;
proc print data = string_examples noobs;
run;
Ao executar o código acima, obtemos a saída que mostra o resultado da função substrn.
TRIMN
Esta função remove o espaço à direita de uma string.
Sintaxe
TRIMN('stringval')
A seguir está a descrição dos parâmetros usados -
- stringval é o valor da variável string.
data string_examples;
LENGTH string1 $ 7 ;
String1='Hello ';
length_string1 = lengthc(String1);
length_trimmed_string = lengthc(TRIMN(String1));
run;
proc print data = string_examples noobs;
run;
Ao executar o código acima, obtemos a saída que mostra o resultado da função TRIMN.
Matrizes no SAS são usadas para armazenar e recuperar uma série de valores usando um valor de índice. O índice representa a localização em uma área de memória reservada.
Sintaxe
No SAS, uma matriz é declarada usando a seguinte sintaxe -
ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES
Na sintaxe acima -
ARRAY é a palavra-chave do SAS para declarar uma matriz.
ARRAY-NAME é o nome da matriz que segue a mesma regra dos nomes de variáveis.
SUBSCRIPT é o número de valores que a matriz irá armazenar.
($) é um parâmetro opcional a ser usado apenas se a matriz for armazenar valores de caracteres.
VARIABLE-LIST é a lista opcional de variáveis que ocupam o lugar dos valores da matriz.
ARRAY-VALUESsão os valores reais armazenados na matriz. Eles podem ser declarados aqui ou podem ser lidos de um arquivo ou dataline.
Exemplos de declaração de matriz
Os arrays podem ser declarados de várias maneiras usando a sintaxe acima. Abaixo estão os exemplos.
# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);
# Declare an array of length 5 named COUNTRIES with values starting at index 0.
ARRAY COUNTRIES(0:8) A B C D E F G H I;
# Declare an array of length 5 named QUESTS which contain character values.
ARRAY QUESTS(1:5) $ Q1-Q5;
# Declare an array of required length as per the number of values supplied.
ARRAY ANSWER(*) A1-A100;
Acessando Valores de Matriz
Os valores armazenados em uma matriz podem ser acessados usando o printprocedimento conforme mostrado abaixo. Após serem declarados usando um dos métodos acima, os dados são fornecidos usando a instrução DATALINES.
DATA array_example;
INPUT a1 $ a2 $ a3 $ a4 $ a5 $; ARRAY colours(5) $ a1-a5;
mix = a1||'+'||a2;
DATALINES;
yello pink orange green blue
;
RUN;
PROC PRINT DATA = array_example;
RUN;
Quando executamos o código acima, ele produz o seguinte resultado -
Usando o operador OF
O operador OF é usado ao analisar os dados que formam uma matriz para realizar cálculos em toda a linha de uma matriz. No exemplo abaixo, aplicamos a Soma e a Média dos valores em cada linha.
DATA array_example_OF;
INPUT A1 A2 A3 A4;
ARRAY A(4) A1-A4;
A_SUM = SUM(OF A(*));
A_MEAN = MEAN(OF A(*));
A_MIN = MIN(OF A(*));
DATALINES;
21 4 52 11
96 25 42 6
;
RUN;
PROC PRINT DATA = array_example_OF;
RUN;
Quando executamos o código acima, ele produz o seguinte resultado -
Usando o operador IN
O valor em uma matriz também pode ser acessado usando o operador IN, que verifica a presença de um valor na linha da matriz. No exemplo abaixo verificamos a disponibilidade da cor "Amarelo" nos dados. Este valor diferencia maiúsculas de minúsculas.
DATA array_in_example;
INPUT A1 $ A2 $ A3 $ A4 $;
ARRAY COLOURS(4) A1-A4;
IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No';
DATALINES;
Orange pink violet yellow
;
RUN;
PROC PRINT DATA = array_in_example;
RUN;
Quando executamos o código acima, ele produz o seguinte resultado -
O SAS pode lidar com uma ampla variedade de formatos de dados numéricos. Ele usa esses formatos no final dos nomes das variáveis para aplicar um formato numérico específico aos dados. SAS usa dois tipos de formatos numéricos. Um para ler formatos específicos dos dados numéricos que é chamadoinformat e outro para exibir os dados numéricos em formato específico chamado de output format.
Sintaxe
A sintaxe para uma informação numérica é -
Varname Formatnamew.d
A seguir está a descrição dos parâmetros usados -
Varname é o nome da variável.
Formatname é o nome do nome do formato numérico aplicado à variável.
w é o número máximo de colunas de dados (incluindo dígitos após decimal e o próprio ponto decimal) permitido para ser armazenado para a variável.
d é o número de dígitos à direita do decimal.
Leitura de formatos numéricos
Abaixo está uma lista de formatos usados para ler os dados no SAS.
Formatos numéricos de entrada
Formato | Usar |
---|---|
n. | Número máximo "n" de colunas sem casa decimal. |
n.p | Número máximo "n" de colunas com casas decimais "p". |
COMMAn.p | Número máximo de "n" colunas com casas decimais "p" que remove qualquer vírgula ou cifrão. |
COMMAn.p | Número máximo de "n" colunas com casas decimais "p" que remove qualquer vírgula ou cifrão. |
Exibindo formatos numéricos
Semelhante à aplicação de formato durante a leitura dos dados, a seguir está uma lista de formatos usados para exibir os dados na saída de um programa SAS.
Formatos numéricos de saída
Formato | Usar |
---|---|
n. | Escreva o número máximo "n" de dígitos sem casa decimal. |
n.p | Escreva o número máximo "np" de colunas com casas decimais "p". |
DOLLARn.p | Escreva o número máximo "n" de colunas com p casas decimais, o cifrão à esquerda e uma vírgula na milésima casa. |
Observe -
Se o número de dígitos após o ponto decimal for menor que o especificador de formato, entãozeros will be appended no fim.
Se o número de dígitos após o ponto decimal for maior que o especificador de formato, o último dígito será rounded off.
Exemplos
Os exemplos abaixo ilustram os cenários acima.
DATA MYDATA1;
input x 6.; /*maxiiuum width of the data*/
format x 6.3;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA1;
RUN;
DATA MYDATA2;
input x 6.; /*maximum width of the data*/
format x 5.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA2;
RUN;
DATA MYDATA3;
input x 6.; /*maximum width of the data*/
format x DOLLAR10.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA3;
RUN;
Quando executamos o código acima, ele produz o seguinte resultado -
# MYDATA1.
Obs x
1 8722.0 # Display 6 columns with zero appended after decimal.
2 93.200 # Display 6 columns with zero appended after decimal.
3 0.112 # No integers before decimal, so display 3 available digits after decimal.
4 15.116 # Display 6 columns with 3 available digits after decimal.
# MYDATA2
Obs x
1 8722 # Display 5 columns. Only 4 are available.
2 93.20 # Display 5 columns with zero appended after decimal.
3 0.11 # Display 5 columns with 2 places after decimal.
4 15.12 # Display 5 columns with 2 places after decimal.
# MYDATA3
Obs x
1 $8,722.00 # Display 10 columns with leading $ sign, comma at thousandth place and zeros appended after decimal.
2 $93.20 # Only 2 integers available before decimal and one available after the decimal. 3 $0.11 # No integers available before decimal and two available after the decimal.
4 $15.12 # Only 2 integers available before decimal and two available after the decimal.
Um operador no SAS é um símbolo que é usado em uma expressão matemática, lógica ou de comparação. Esses símbolos são integrados à linguagem SAS e muitos operadores podem ser combinados em uma única expressão para fornecer uma saída final.
Abaixo está uma lista de categorias de operadoras SAS.
- Operadores aritméticos
- Operadores lógicos
- Operadores de comparação
- Operadores mínimos / máximos
- Operador de concatenação
Veremos cada um um por um. Os operadores são sempre usados com variáveis que fazem parte dos dados que estão sendo analisados pelo programa SAS.
Operadores aritméticos
A tabela abaixo descreve os detalhes dos operadores aritméticos. Vamos supor duas variáveis de dadosV1 e V2com valores 8 e 4 respectivamente.
Operador | Descrição | Exemplo |
---|---|---|
+ | Adição | V1 + V2 = 12 |
- | Subtração | V1-V2 = 4 |
* | Multiplicação | V1 * V2 = 32 |
/ | Divisão | V1 / V2 = 2 |
** | Exponenciação | V1 ** V2 = 4096 |
Exemplo
DATA MYDATA1;
input @1 COL1 4.2 @7 COL2 3.1;
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11 11
;
PROC PRINT DATA = MYDATA1;
RUN;
Ao executar o código acima, obtemos a seguinte saída.
Operadores lógicos
A tabela abaixo descreve os detalhes dos operadores lógicos. Esses operadores avaliam o valor Truth de uma expressão. Portanto, o resultado dos operadores lógicos é sempre 1 ou 0. Vamos assumir duas variáveis de dadosV1 e V2com valores 8 e 4 respectivamente.
Operador | Descrição | Exemplo |
---|---|---|
E | O operador AND. Se ambos os valores de dados forem avaliados como verdadeiros, o resultado será 1, caso contrário, será 0. | (V1> 2 e V2> 3) dá 0. |
| | O operador OR. Se qualquer um dos valores de dados for avaliado como verdadeiro, o resultado será 1, caso contrário, será 0. | (V1> 9 e V2> 3) é 1. |
~ | O operador NOT. O resultado do operador NOT na forma de uma expressão cujo valor é FALSE ou um valor ausente é 1, caso contrário, é 0. | NÃO (V1> 3) é 1. |
Exemplo
DATA MYDATA1;
input @1 COL1 5.2 @7 COL2 4.1;
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11 11.4
;
PROC PRINT DATA = MYDATA1;
RUN;
Ao executar o código acima, obtemos a seguinte saída.
Operadores de comparação
A tabela abaixo descreve os detalhes dos operadores de comparação. Esses operadores comparam os valores das variáveis e o resultado é um valor verdade apresentado por 1 para TRUE e 0 para False. Vamos supor duas variáveis de dadosV1 e V2com valores 8 e 4 respectivamente.
Operador | Descrição | Exemplo |
---|---|---|
= | O operador EQUAL. Se ambos os valores dos dados forem iguais, o resultado será 1, caso contrário, será 0. | (V1 = 8) dá 1. |
^ = | O operador NOT EQUAL. Se ambos os valores de dados forem desiguais, o resultado será 1, caso contrário, será 0. | (V1 ^ = V2) dá 1. |
< | O MENOS QUE O operador. | (V2 <V2) dá 1. |
<= | MENOS OU IGUAL AO Operador. | (V2 <= 4) dá 1. |
> | O MAIOR DO QUE O operador. | (V2> V1) dá 1. |
> = | O MAIOR DO QUE OU IGUAL AO Operador. | (V2> = V1) dá 0. |
DENTRO | O operador IN. Se o valor da variável for igual a qualquer um dos valores em uma determinada lista de valores, ela retorna 1, caso contrário, retorna 0. | V1 em (5,7,9,8) dá 1. |
Exemplo
DATA MYDATA1;
input @1 COL1 5.2 @7 COL2 4.1;
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11 11.4
;
PROC PRINT DATA = MYDATA1;
RUN;
Ao executar o código acima, obtemos a seguinte saída.
Operadores mínimos / máximos
A tabela abaixo descreve os detalhes dos operadores Mínimo / Máximo. Esses operadores comparam os valores das variáveis em uma linha e o valor mínimo ou máximo da lista de valores nas linhas é retornado.
Operador | Descrição | Exemplo |
---|---|---|
MIN | O operador MIN. Ele retorna o valor mínimo da lista de valores na linha. | MIN (45,2,11,6,15,41) dá 11,6 |
MAX | O operador MAX. Ele retorna o valor máximo da lista de valores na linha. | MAX (45,2,11,6,15,41) dá 45,2 |
Exemplo
DATA MYDATA1;
input @1 COL1 5.2 @7 COL2 4.1 @12 COL3 6.3;
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11 11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;
Ao executar o código acima, obtemos a seguinte saída.
Operador de concatenação
A tabela abaixo descreve os detalhes do operador Concatenação. Este operador concatena dois ou mais valores de string. Um único valor de caractere é retornado.
Operador | Descrição | Exemplo |
---|---|---|
|| | O operador concatenar. Ele retorna a concatenação de dois ou mais valores. | 'Olá' || ' World 'dá Hello World |
Exemplo
DATA MYDATA1;
input COL1 $ COL2 $ COL3 $;
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;
Ao executar o código acima, obtemos a seguinte saída.
Precedência de operadores
A precedência do operador indica a ordem de avaliação dos vários operadores presentes na expressão complexa. A tabela abaixo descreve a ordem de precedência em um grupo de operadores.
Grupo | Ordem | Símbolos |
---|---|---|
Grupo I | Direita para esquerda | ** + - NÃO MIN MÁX |
Grupo II | Da esquerda para direita | * / |
Grupo III | Da esquerda para direita | + - |
Grupo IV | Da esquerda para direita | || |
Grupo V | Da esquerda para direita | <<= => => |
Você pode encontrar situações em que um bloco de código precise ser executado várias vezes. Em geral, as instruções são executadas sequencialmente - a primeira instrução em uma função é executada primeiro, seguida pela segunda e assim por diante. Mas quando você deseja que o mesmo conjunto de instruções seja executado repetidamente, precisamos da ajuda de Loops.
No SAS, o loop é feito usando a instrução DO. Também é chamadoDO Loop. A seguir está a forma geral de instruções de loop DO no SAS.
Diagrama de fluxo
A seguir estão os tipos de loops DO no SAS.
Sr. Não. | Tipo de Loop e Descrição |
---|---|
1 | Índice DO. O loop continua do valor inicial até o valor final da variável de índice. |
2 | FAZER ENQUANTO. O loop continua até que a condição while se torne falsa. |
3 | FAÇA ATÉ. O loop continua até que a condição UNTIL se torne verdadeira. |
As estruturas de tomada de decisão requerem que o programador especifique uma ou mais condições a serem avaliadas ou testadas pelo programa, juntamente com uma instrução ou instruções a serem executadas se a condição for determinada como truee, opcionalmente, outras instruções a serem executadas se a condição for determinada como false.
A seguir está a forma geral de uma estrutura típica de tomada de decisão encontrada na maioria das linguagens de programação -
O SAS fornece os seguintes tipos de declarações de tomada de decisão. Clique nos links a seguir para verificar seus detalhes.
Sr. Não. | Tipo e descrição da declaração |
---|---|
1 | Declaração IF. A if statementconsiste em uma condição. Se a condição for verdadeira, os dados específicos são buscados. |
2 | Declaração IF-THEN-ELSE. A if statement seguida pela instrução else, que é executada quando a condição booleana é falsa. |
3 | Declaração IF-THEN-ELSE-IF. A if statement seguida pela instrução else, que é novamente seguida por outro par de instruções IF-THEN. |
4 | Instrução IF-THEN-DELETE. A if statement consiste em uma condição que, quando verdadeira, exclui os dados específicos das observações. |
SAS tem uma grande variedade de funções integradas que ajudam na análise e processamento dos dados. Essas funções são usadas como parte das instruções DATA. Eles pegam as variáveis de dados como argumentos e retornam o resultado que é armazenado em outra variável. Dependendo do tipo de função, o número de argumentos que leva pode variar. Algumas funções aceitam nenhum argumento, enquanto outras aceitam um número fixo de variáveis. Abaixo está uma lista de tipos de funções que o SAS oferece.
Sintaxe
A sintaxe geral para usar uma função no SAS é a seguinte.
FUNCTIONNAME(argument1, argument2...argumentn)
Aqui, o argumento pode ser uma constante, variável, expressão ou outra função.
Categorias de Função
Dependendo de seu uso, as funções no SAS são categorizadas conforme abaixo.
- Mathematical
- Data e hora
- Character
- Truncation
- Miscellaneous
Funções Matemáticas
Estas são as funções usadas para aplicar alguns cálculos matemáticos aos valores das variáveis.
Exemplos
O programa SAS abaixo mostra o uso de algumas funções matemáticas importantes.
data Math_functions;
v1=21; v2=42; v3=13; v4=10; v5=29;
/* Get Maximum value */
max_val = MAX(v1,v2,v3,v4,v5);
/* Get Minimum value */
min_val = MIN (v1,v2,v3,v4,v5);
/* Get Median value */
med_val = MEDIAN (v1,v2,v3,v4,v5);
/* Get a random number */
rand_val = RANUNI(0);
/* Get Square root of sum of the values */
SR_val= SQRT(sum(v1,v2,v3,v4,v5));
proc print data = Math_functions noobs;
run;
Quando o código acima é executado, obtemos a seguinte saída -
Funções de data e hora
Estas são as funções usadas para processar os valores de data e hora.
Exemplos
O programa SAS abaixo mostra o uso das funções de data e hora.
data date_functions;
INPUT @1 date1 date9. @11 date2 date9.;
format date1 date9. date2 date9.;
/* Get the interval between the dates in years*/
Years_ = INTCK('YEAR',date1,date2);
/* Get the interval between the dates in months*/
months_ = INTCK('MONTH',date1,date2);
/* Get the week day from the date*/
weekday_ = WEEKDAY(date1);
/* Get Today's date in SAS date format */
today_ = TODAY();
/* Get current time in SAS time format */
time_ = time();
DATALINES;
21OCT2000 16AUG1998
01MAR2009 11JUL2012
;
proc print data = date_functions noobs;
run;
Quando o código acima é executado, obtemos a seguinte saída -
Funções de personagem
Estas são as funções usadas para processar valores de caracteres ou texto.
Exemplos
O programa SAS abaixo mostra o uso de funções de caracteres.
data character_functions;
/* Convert the string into lower case */
lowcse_ = LOWCASE('HELLO');
/* Convert the string into upper case */
upcase_ = UPCASE('hello');
/* Reverse the string */
reverse_ = REVERSE('Hello');
/* Return the nth word */
nth_letter_ = SCAN('Learn SAS Now',2);
run;
proc print data = character_functions noobs;
run;
Quando o código acima é executado, obtemos a seguinte saída -
Funções de truncamento
Essas são as funções usadas para truncar valores numéricos.
Exemplos
O programa SAS abaixo mostra o uso de funções de truncamento.
data trunc_functions;
/* Nearest greatest integer */
ceil_ = CEIL(11.85);
/* Nearest greatest integer */
floor_ = FLOOR(11.85);
/* Integer portion of a number */
int_ = INT(32.41);
/* Round off to nearest value */
round_ = ROUND(5621.78);
run;
proc print data = trunc_functions noobs;
run;
Quando o código acima é executado, obtemos a seguinte saída -
Funções Diversas
Vamos agora entender as funções diversas do SAS com alguns exemplos.
Exemplos
O programa SAS abaixo mostra o uso de funções diversas.
data misc_functions;
/* Nearest greatest integer */
state2=zipstate('01040');
/* Amortization calculation */
payment = mort(50000, . , .10/12,30*12);
proc print data = misc_functions noobs;
run;
Quando o código acima é executado, obtemos a seguinte saída -
Os métodos de entrada são usados para ler os dados brutos. Os dados brutos podem ser de uma fonte externa ou de linhas de dados in stream. A instrução de entrada cria uma variável com o nome que você atribui a cada campo. Portanto, você deve criar uma variável na declaração de entrada. A mesma variável será mostrada na saída do SAS Dataset. Abaixo estão os diferentes métodos de entrada disponíveis no SAS.
- Método de entrada da lista
- Método de entrada nomeado
- Método de entrada de coluna
- Método de entrada formatado
Os detalhes de cada método de entrada são descritos a seguir.
Método de entrada da lista
Neste método, as variáveis são listadas com os tipos de dados. Os dados brutos são analisados cuidadosamente para que a ordem das variáveis declaradas corresponda aos dados. O delimitador (geralmente espaço) deve ser uniforme entre qualquer par de colunas adjacentes. Quaisquer dados ausentes causarão problemas na saída, pois o resultado estará errado.
Exemplo
O código a seguir e a saída mostram o uso do método de entrada de lista.
DATA TEMP;
INPUT EMPID ENAME $ DEPT $ ;
DATALINES;
1 Rick IT
2 Dan OPS
3 Tusar IT
4 Pranab OPS
5 Rasmi FIN
;
PROC PRINT DATA = TEMP;
RUN;
Ao executar o código bove, obtemos a seguinte saída.
Método de entrada nomeado
Neste método, as variáveis são listadas com os tipos de dados. Os dados brutos são modificados para que os nomes das variáveis sejam declarados antes dos dados correspondentes. O delimitador (geralmente espaço) deve ser uniforme entre qualquer par de colunas adjacentes.
Exemplo
O código a seguir e a saída mostram o uso do Método de entrada nomeada.
DATA TEMP;
INPUT
EMPID= ENAME= $ DEPT= $ ;
DATALINES;
EMPID = 1 ENAME = Rick DEPT = IT
EMPID = 2 ENAME = Dan DEPT = OPS
EMPID = 3 ENAME = Tusar DEPT = IT
EMPID = 4 ENAME = Pranab DEPT = OPS
EMPID = 5 ENAME = Rasmi DEPT = FIN
;
PROC PRINT DATA = TEMP;
RUN;
Ao executar o código bove, obtemos a seguinte saída.
Método de entrada de coluna
Neste método, as variáveis são listadas com os tipos de dados e largura das colunas que especificam o valor de uma única coluna de dados. Por exemplo, se o nome de um funcionário contiver no máximo 9 caracteres e cada nome de funcionário começar na 10ª coluna, a largura da coluna para a variável do nome do funcionário será 10-19.
Exemplo
O código a seguir mostra o uso do Método de entrada de coluna.
DATA TEMP;
INPUT EMPID 1-3 ENAME $ 4-12 DEPT $ 13-16;
DATALINES;
14 Rick IT
241Dan OPS
30 Sanvi IT
410Chanchal OPS
52 Piyu FIN
;
PROC PRINT DATA = TEMP;
RUN;
Quando executamos o código acima, ele produz o seguinte resultado -
Método de entrada formatado
Neste método, as variáveis são lidas de um ponto de partida fixo até que um espaço seja encontrado. Como toda variável tem um ponto de partida fixo, o número de colunas entre qualquer par de variáveis torna-se a largura da primeira variável. O caractere '@n' é usado para especificar a posição inicial da coluna de uma variável como a enésima coluna.
Exemplo
O código a seguir mostra o uso do Método de entrada formatado
DATA TEMP;
INPUT @1 EMPID $ @4 ENAME $ @13 DEPT $ ;
DATALINES;
14 Rick IT
241 Dan OPS
30 Sanvi IT
410 Chanchal OPS
52 Piyu FIN
;
PROC PRINT DATA = TEMP;
RUN;
Quando executamos o código acima, ele produz o seguinte resultado -
SAS tem um poderoso recurso de programação chamado Macroso que nos permite evitar seções repetitivas de código e usá-las novamente e novamente quando necessário. Também ajuda a criar variáveis dinâmicas dentro do código que podem assumir valores diferentes para diferentes instâncias de execução do mesmo código. As macros também podem ser declaradas para blocos de código que serão reutilizados várias vezes de maneira semelhante às variáveis de macro. Veremos ambos nos exemplos abaixo.
Variáveis macro
Essas são as variáveis que contêm um valor a ser usado repetidamente por um programa SAS. Eles são declarados no início de um programa SAS e chamados posteriormente no corpo do programa. Eles podem ser globais ou locais em escopo.
Variável macro global
Elas são chamadas de variáveis de macro globais porque podem ser acessadas por qualquer programa SAS disponível no ambiente SAS. Em geral, são as variáveis atribuídas pelo sistema que são acessadas por vários programas. Um exemplo geral é a data do sistema.
Exemplo
Abaixo está um exemplo da variável SAS chamada SYSDATE que representa a data do sistema. Considere um cenário para imprimir a data do sistema no título do relatório SAS todos os dias em que o relatório é gerado. O título mostrará a data e o dia atuais sem codificarmos nenhum valor para eles. Usamos o conjunto de dados SAS integrado denominado CARS, disponível na biblioteca SASHELP.
proc print data = sashelp.cars;
where make = 'Audi' and type = 'Sports' ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
Quando o código acima é executado, obtemos a seguinte saída.
Variável macro local
Essas variáveis podem ser acessadas por programas SAS nos quais são declaradas como parte do programa. Eles são normalmente usados para fornecer variáveis diferentes às mesmas declarações SAS, de modo que podem processar diferentes observações de um conjunto de dados.
Sintaxe
As variáveis locais são decaladas com a sintaxe abaixo.
% LET (Macro Variable Name) = Value;
Aqui, o campo Valor pode assumir qualquer valor numérico, texto ou data, conforme exigido pelo programa. O nome da variável Macro é qualquer variável SAS válida.
Exemplo
As variáveis são usadas pelas declarações SAS usando o & caractere anexado no início do nome da variável. O programa abaixo nos mostra todas as observações da marca 'Audi' e do tipo 'Esportes'. Caso queiramos o resultado dedifferent make, precisamos mudar o valor da variável make_namesem alterar qualquer outra parte do programa. No caso de programas trazer, essa variável pode ser referenciada repetidamente em quaisquer instruções SAS.
%LET make_name = 'Audi';
%LET type_name = 'Sports';
proc print data = sashelp.cars;
where make = &make_name and type = &type_name ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
Quando o código acima é executado, obtemos a mesma saída do programa anterior. Mas vamos mudar otype name para 'Wagon'e execute o mesmo programa. Iremos obter o resultado abaixo.
Programas Macro
Macro é um grupo de instruções SAS que é referido por um nome e para usá-lo no programa em qualquer lugar, usando esse nome. Ele começa com uma instrução% MACRO e termina com a instrução% MEND.
Sintaxe
As variáveis locais são declaradas com a sintaxe abaixo.
# Creating a Macro program.
%MACRO <macro name>(Param1, Param2,….Paramn);
Macro Statements;
%MEND;
# Calling a Macro program.
%MacroName (Value1, Value2,…..Valuen);
Exemplo
O programa abaixo decalifica um grupo de membros do SAT sob uma macro chamada 'show_result'; Esta macro está sendo chamada por outras instruções SAS.
%MACRO show_result(make_ , type_);
proc print data = sashelp.cars;
where make = "&make_" and type = "&type_" ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
%MEND;
%show_result(BMW,SUV);
Quando o código acima é executado, obtemos a seguinte saída.
Macros comumente usados
SAS tem muitas instruções MACRO que são embutidas na linguagem de programação SAS. Eles são usados por outros programas SAS sem declará-los explicitamente. Os exemplos comuns são - encerrar um programa quando alguma condição for atendida ou capturar o valor de tempo de execução de uma variável no log do programa. Abaixo estão alguns exemplos.
Macro% PUT
Esta instrução de macro grava informações de texto ou variável de macro no log do SAS. No exemplo abaixo, o valor da variável 'hoje' é escrito no log do programa.
data _null_;
CALL SYMPUT ('today',
TRIM(PUT("&sysdate"d,worddate22.)));
run;
%put &today;
Quando o código acima é executado, obtemos a seguinte saída.
Macro% RETURN
A execução desta macro causa o encerramento normal da macro atualmente em execução quando certa condição é avaliada como verdadeira. No exemplo a seguir, quando o valor da variável"val" torna-se 10, a macro termina, caso contrário, continua.
%macro check_condition(val);
%if &val = 10 %then %return;
data p;
x = 34.2;
run;
%mend check_condition;
%check_condition(11) ;
Quando o código acima é executado, obtemos a seguinte saída.
Macro% END
Esta definição de macro contém um %DO %WHILEloop que termina, conforme necessário, com uma instrução% END. No exemplo a seguir, a macro chamada test obtém uma entrada do usuário e executa o loop DO usando este valor de entrada. O fim do loop DO é alcançado por meio da instrução% end, enquanto o fim da macro é alcançado por meio da instrução% mend.
%macro test(finish);
%let i = 1;
%do %while (&i <&finish);
%put the value of i is &i;
%let i=%eval(&i+1);
%end;
%mend test;
%test(5)
Quando o código acima é executado, obtemos a seguinte saída.
As datas do IN SAS são um caso especial de valores numéricos. Cada dia é atribuído um valor numérico específico a partir de 1º de janeiro de 1960. A esta data é atribuído o valor de data 0 e a próxima data tem um valor de data de 1 e assim por diante. Os dias anteriores a esta data são representados por -1, -2 e assim por diante. Com esta abordagem, o SAS pode representar qualquer data no futuro e qualquer data no passado.
Quando o SAS lê os dados de uma fonte, ele converte os dados lidos em um formato de data específico conforme especificado no formato de data. A variável para armazenar o valor da data é declarada com as informações adequadas necessárias. A data de saída é mostrada usando os formatos de dados de saída.
SAS Data Informat
Os dados de origem podem ser lidos corretamente usando informações de datas específicas conforme mostrado abaixo. O dígito no final da informação indica a largura mínima da string de data a ser lida completamente usando a informação. Uma largura menor dará resultado incorreto. com SAS V9, existe um formato de data genéricoanydtdte15. que pode processar qualquer entrada de data.
Data de entrada | Largura da data | Informat |
---|---|---|
11/03/2014 | 10 | mmddyy10. |
11/03/14 | 8 | mmddyy8. |
11 de dezembro de 2012 | 20 | worddate20. |
14mar2011 | 9 | data9. |
14-mar-2011 | 11 | date11. |
14-mar-2011 | 15 | anydtdte15. |
Exemplo
O código abaixo mostra a leitura de diferentes formatos de data. Observe que todos os valores de saída são apenas números, pois não aplicamos nenhuma instrução de formato aos valores de saída.
DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10. ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Formato de saída de data SAS
As datas, depois de lidas, podem ser convertidas para outro formato conforme exigido pelo display. Isso é obtido usando a instrução de formato para os tipos de data. Eles assumem os mesmos formatos das informações.
Exemplo
No exemplo a seguir, a data é lida em um formato, mas exibida em outro formato.
DATA TEMP;
INPUT @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format DOJ1 date11. DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998
;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
O SAS pode ler dados de várias fontes, incluindo muitos formatos de arquivo. Os formatos de arquivo usados no ambiente SAS são discutidos abaixo.
- Conjunto de dados ASCII (texto)
- Dados Delimitados
- Dados Excel
- Dados Hierárquicos
Leitura do conjunto de dados ASCII (texto)
Estes são os arquivos que contêm os dados em formato de texto. Os dados geralmente são delimitados por um espaço, mas também pode haver diferentes tipos de delimitadores que o SAS pode manipular. Vamos considerar um arquivo ASCII contendo os dados do funcionário. Lemos este arquivo usando oInfile declaração disponível no SAS.
Exemplo
No exemplo abaixo, lemos o arquivo de dados denominado emp_data.txt do ambiente local.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt';
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Lendo Dados Delimitados
Estes são os arquivos de dados nos quais os valores da coluna são separados por um caractere delimitador, como uma vírgula ou pipeline, etc. Neste caso, usamos o dlm opção no infile declaração.
Exemplo
No exemplo a seguir, lemos o arquivo de dados denominado emp.csv do ambiente local.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=",";
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Leitura de dados do Excel
O SAS pode ler diretamente um arquivo Excel usando o recurso de importação. Conforme visto no capítulo conjuntos de dados SAS, ele pode lidar com uma ampla variedade de tipos de arquivos, incluindo MS Excel. Supondo que o arquivo emp.xls esteja disponível localmente no ambiente SAS.
Exemplo
FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;
PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;
O código acima lê os dados do arquivo Excel e fornece a mesma saída dos dois tipos de arquivo acima.
Lendo Arquivos Hierárquicos
Nestes arquivos, os dados estão presentes em formato hierárquico. Para uma dada observação, há um registro de cabeçalho abaixo do qual muitos registros de detalhes são mencionados. O número de registros de detalhes pode variar de uma observação para outra. Abaixo está uma ilustração de um arquivo hierárquico.
No arquivo abaixo, estão listados os detalhes de cada funcionário de cada departamento. O primeiro registro é o registro de cabeçalho mencionando o departamento e o próximo registro alguns registros começando com DTLS são o registro de detalhes.
DEPT:IT
DTLS:1:Rick:623
DTLS:3:Mike:611
DTLS:6:Tusar:578
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452
Exemplo
Para ler o arquivo hierárquico, usamos o código abaixo, no qual identificamos o registro de cabeçalho com uma cláusula IF e usamos um loop do para processar o registro de detalhes.
data employees(drop = Type);
length Type $ 3 Department
empID $ 3 empName $ 10 Empsal 3 ;
retain Department;
infile
'/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
input Type $ @; if Type = 'DEP' then input Department $;
else do;
input empID empName $ Empsal ;
output;
end;
run;
PROC PRINT DATA = employees;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Semelhante à leitura de conjuntos de dados, o SAS pode gravar conjuntos de dados em diferentes formatos. Ele pode gravar dados de arquivos SAS em arquivo de texto normal. Esses arquivos podem ser lidos por outros programas de software. SAS usaPROC EXPORT para escrever conjuntos de dados.
PROC EXPORT
É um procedimento embutido no SAS usado para exportar os conjuntos de dados SAS para gravar os dados em arquivos de diferentes formatos.
Sintaxe
A sintaxe básica para escrever o procedimento no SAS é -
PROC EXPORT
DATA = libref.SAS data-set (SAS data-set-options)
OUTFILE = "filename"
DBMS = identifier LABEL(REPLACE);
A seguir está a descrição dos parâmetros usados -
SAS data-seté o nome do conjunto de dados que está sendo exportado. O SAS pode compartilhar os conjuntos de dados de seu ambiente com outros aplicativos, criando arquivos que podem ser lidos por diferentes sistemas operacionais. Ele usa a função EXPORT embutida para enviar os arquivos do conjunto de dados em uma variedade de formatos. Neste capítulo, veremos a gravação de conjuntos de dados SAS usandoproc export junto com as opções dlm e dbms.
SAS data-set-options é usado para especificar um subconjunto de colunas a serem exportadas.
filename é o nome do arquivo no qual os dados são gravados.
identifier é usado para mencionar o delimitador que será gravado no arquivo.
LABEL opção é usada para mencionar o nome das variáveis gravadas no arquivo.
Exemplo
Usaremos o conjunto de dados SAS denominado cars disponíveis na biblioteca SASHELP. Nós o exportamos como um arquivo de texto delimitado por espaço com o código mostrado no programa a seguir.
proc export data = sashelp.cars
outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.txt'
dbms = dlm;
delimiter = ' ';
run;
Ao executar o código acima, podemos ver a saída como um arquivo de texto e clicar com o botão direito do mouse para ver seu conteúdo conforme mostrado abaixo.
Gravando um arquivo CSV
Para escrever um arquivo delimitado por vírgulas, podemos usar a opção dlm com um valor "csv". O código a seguir grava o arquivo car_data.csv.
proc export data = sashelp.cars
outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.csv'
dbms = csv;
run;
Ao executar o código acima, obtemos a saída abaixo.
Gravando um arquivo delimitado por tabulação
Para escrever um arquivo delimitado por tabulação, podemos usar o dlmopção com um valor "tab". O código a seguir grava o arquivocar_tab.txt.
proc export data = sashelp.cars
outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_tab.txt'
dbms = csv;
run;
Os dados também podem ser gravados como arquivo HTML, que veremos no capítulo do sistema de entrega de saída.
Vários conjuntos de dados SAS podem ser concatenados para fornecer um único conjunto de dados usando o SETdeclaração. O número total de observações no conjunto de dados concatenados é a soma do número de observações nos conjuntos de dados originais. A ordem das observações é sequencial. Todas as observações do primeiro conjunto de dados são seguidas por todas as observações do segundo conjunto de dados e assim por diante.
Idealmente, todos os conjuntos de dados combinados têm as mesmas variáveis, mas no caso de terem um número diferente de variáveis, então no resultado todas as variáveis aparecem, com valores perdidos para o conjunto de dados menor.
Sintaxe
A sintaxe básica para a instrução SET no SAS é -
SET data-set 1 data-set 2 data-set 3.....;
A seguir está a descrição dos parâmetros usados -
data-set1,data-set2 são nomes de conjuntos de dados escritos um após o outro.
Exemplo
Considere os dados de funcionários de uma organização que estão disponíveis em dois conjuntos de dados diferentes, um para o departamento de TI e outro para o departamento não relacionado à TI. Para obter os detalhes completos de todos os funcionários, concatenamos os dois conjuntos de dados usando a instrução SET mostrada abaixo.
DATA ITDEPT;
INPUT empid name $ salary ;
DATALINES;
1 Rick 623.3
3 Mike 611.5
6 Tusar 578.6
;
RUN;
DATA NON_ITDEPT;
INPUT empid name $ salary ;
DATALINES;
2 Dan 515.2
4 Ryan 729.1
5 Gary 843.25
7 Pranab 632.8
8 Rasmi 722.5
RUN;
DATA All_Dept;
SET ITDEPT NON_ITDEPT;
RUN;
PROC PRINT DATA = All_Dept;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Cenários
Quando temos muitas variações nos conjuntos de dados para concatenação, o resultado das variáveis pode ser diferente, mas o número total de observações no conjunto de dados concatenados é sempre a soma das observações em cada conjunto de dados. Consideraremos a seguir muitos cenários dessa variação.
Número diferente de variáveis
Se um dos conjuntos de dados originais tiver mais número de variáveis do que outro, os conjuntos de dados ainda serão combinados, mas no conjunto de dados menor essas variáveis aparecem como ausentes.
Exemplo
No exemplo a seguir, o primeiro conjunto de dados possui uma variável extra chamada DOJ. No resultado, o valor de DOJ para o segundo conjunto de dados aparecerá como ausente.
DATA ITDEPT;
INPUT empid name $ salary DOJ date9. ;
DATALINES;
1 Rick 623.3 02APR2001
3 Mike 611.5 21OCT2000
6 Tusar 578.6 01MAR2009
;
RUN;
DATA NON_ITDEPT;
INPUT empid name $ salary ;
DATALINES;
2 Dan 515.2
4 Ryan 729.1
5 Gary 843.25
7 Pranab 632.8
8 Rasmi 722.5
RUN;
DATA All_Dept;
SET ITDEPT NON_ITDEPT;
RUN;
PROC PRINT DATA = All_Dept;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Nome de variável diferente
Neste cenário, os conjuntos de dados têm o mesmo número de variáveis, mas um nome de variável difere entre eles. Nesse caso, uma concatenação normal produzirá todas as variáveis no conjunto de resultados e dará resultados ausentes para as duas variáveis que diferem. Embora não possamos alterar o nome da variável nos conjuntos de dados originais, podemos aplicar a função RENAME no conjunto de dados concatenado que criamos. Isso produzirá o mesmo resultado de uma concatenação normal, mas é claro com um novo nome de variável no lugar de dois nomes de variáveis diferentes presentes no conjunto de dados original.
Exemplo
No exemplo a seguir, o conjunto de dados ITDEPT tem o nome da variável ename enquanto o conjunto de dados NON_ITDEPT tem o nome da variável empname.Mas ambas as variáveis representam o mesmo tipo (personagem). Nós aplicamos oRENAME função na instrução SET conforme mostrado abaixo.
DATA ITDEPT;
INPUT empid ename $ salary ;
DATALINES;
1 Rick 623.3
3 Mike 611.5
6 Tusar 578.6
;
RUN;
DATA NON_ITDEPT;
INPUT empid empname $ salary ;
DATALINES;
2 Dan 515.2
4 Ryan 729.1
5 Gary 843.25
7 Pranab 632.8
8 Rasmi 722.5
RUN;
DATA All_Dept;
SET ITDEPT(RENAME =(ename = Employee) ) NON_ITDEPT(RENAME =(empname = Employee) );
RUN;
PROC PRINT DATA = All_Dept;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Comprimentos variáveis diferentes
Se os comprimentos das variáveis nos dois conjuntos de dados forem diferentes, o conjunto de dados concatenados terá valores nos quais alguns dados serão truncados para a variável com comprimento menor. Isso acontece se o primeiro conjunto de dados tiver um comprimento menor. Para resolver isso, aplicamos o comprimento maior a ambos os conjuntos de dados, conforme mostrado abaixo.
Exemplo
No exemplo abaixo, a variável enametem comprimento 5 no primeiro conjunto de dados e 7 no segundo. Ao concatenar, aplicamos a instrução LENGTH no conjunto de dados concatenados para definir o comprimento do ename como 7.
DATA ITDEPT;
INPUT empid 1-2 ename $ 3-7 salary 8-14 ;
DATALINES;
1 Rick 623.3
3 Mike 611.5
6 Tusar 578.6
;
RUN;
DATA NON_ITDEPT;
INPUT empid 1-2 ename $ 3-9 salary 10-16 ; DATALINES; 2 Dan 515.2 4 Ryan 729.1 5 Gary 843.25 7 Pranab 632.8 8 Rasmi 722.5 RUN; DATA All_Dept; LENGTH ename $ 7 ;
SET ITDEPT NON_ITDEPT ;
RUN;
PROC PRINT DATA = All_Dept;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Vários conjuntos de dados SAS podem ser mesclados com base em uma variável comum específica para fornecer um único conjunto de dados. Isso é feito usando oMERGE declaração e BYdeclaração. O número total de observações no conjunto de dados mesclado é frequentemente menor que a soma do número de observações nos conjuntos de dados originais. É porque as variáveis de ambos os conjuntos de dados são mescladas como um registro com base quando há uma correspondência no valor da variável comum.
Existem dois pré-requisitos para mesclar conjuntos de dados fornecidos abaixo -
- os conjuntos de dados de entrada devem ter pelo menos uma variável comum para se fundir.
- os conjuntos de dados de entrada devem ser classificados pelas variáveis comuns que serão usadas para a fusão.
Sintaxe
A sintaxe básica para a instrução MERGE e BY no SAS é -
MERGE Data-Set 1 Data-Set 2
BY Common Variable
A seguir está a descrição dos parâmetros usados -
Data-set1,Data-set2 são nomes de conjuntos de dados escritos um após o outro.
Common Variable é a variável baseada em cujos valores correspondentes os conjuntos de dados serão mesclados.
Mesclagem de dados
Vamos entender a fusão de dados com a ajuda de um exemplo.
Exemplo
Considere dois conjuntos de dados SAS, um contendo a ID do funcionário com nome e salário e outro contendo a ID do funcionário com ID do funcionário e departamento. Neste caso, para obter as informações completas de cada funcionário, podemos mesclar esses dois conjuntos de dados. O conjunto de dados final ainda terá uma observação por funcionário, mas conterá as variáveis de salário e departamento.
# Data set 1
ID NAME SALARY
1 Rick 623.3
2 Dan 515.2
3 Mike 611.5
4 Ryan 729.1
5 Gary 843.25
6 Tusar 578.6
7 Pranab 632.8
8 Rasmi 722.5
# Data set 2
ID DEPT
1 IT
2 OPS
3 IT
4 HR
5 FIN
6 IT
7 OPS
8 FIN
# Merged data set
ID NAME SALARY DEPT
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
O resultado acima é obtido usando o código a seguir, no qual a variável comum (ID) é usada na instrução BY. Observe que as observações em ambos os conjuntos de dados já estão classificadas na coluna ID.
DATA SALARY;
INPUT empid name $ salary ; DATALINES; 1 Rick 623.3 2 Dan 515.2 3 Mike 611.5 4 Ryan 729.1 5 Gary 843.25 6 Tusar 578.6 7 Pranab 632.8 8 Rasmi 722.5 ; RUN; DATA DEPT; INPUT empid dEPT $ ;
DATALINES;
1 IT
2 OPS
3 IT
4 HR
5 FIN
6 IT
7 OPS
8 FIN
;
RUN;
DATA All_details;
MERGE SALARY DEPT;
BY (empid);
RUN;
PROC PRINT DATA = All_details;
RUN;
Valores ausentes na coluna de correspondência
Pode haver casos em que alguns valores da variável comum não coincidam entre os conjuntos de dados. Em tais casos, os conjuntos de dados ainda são mesclados, mas fornecem valores ausentes no resultado.
Exemplo
ID NAME SALARY DEPT
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 . . IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 .
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
Mesclando apenas as correspondências
Para evitar os valores perdidos no resultado, podemos considerar manter apenas as observações com valores correspondentes para a variável comum. Isso é conseguido usando oINdeclaração. A instrução de mesclagem do programa SAS precisa ser alterada.
Exemplo
No exemplo abaixo, o IN= valor mantém apenas as observações onde os valores de ambos os conjuntos de dados SALARY e DEPT partida.
DATA All_details;
MERGE SALARY(IN = a) DEPT(IN = b);
BY (empid);
IF a = 1 and b = 1;
RUN;
PROC PRINT DATA = All_details;
RUN;
Após a execução do programa SAS acima com a parte alterada acima, obtemos a seguinte saída.
1 Rick 623.3 IT
2 Dan 515.2 OPS
4 Ryan 729.1 HR
5 Gary 843.25 FIN
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
Subconjunto de um conjunto de dados SAS significa extrair uma parte do conjunto de dados, selecionando menos número de variáveis ou menos número de observações ou ambos. Enquanto o subconjunto de variáveis é feito usandoKEEP e DROP declaração, a subconfiguração de observações é feita usando DELETE declaração.
Além disso, os dados resultantes da operação de subconjunto são mantidos em um novo conjunto de dados que pode ser usado para análise posterior. A configuração secundária é usada principalmente com o propósito de analisar uma parte do conjunto de dados sem usar as variáveis ou observações que podem não ser relevantes para a análise.
Subsetting Variables
Neste método, extraímos apenas algumas variáveis de todo o conjunto de dados.
Sintaxe
A sintaxe básica para variáveis de subconfiguração no SAS é -
KEEP var1 var2 ... ;
DROP var1 var2 ... ;
A seguir está a descrição dos parâmetros usados -
var1 and var2 são os nomes das variáveis do conjunto de dados que precisam ser mantidos ou eliminados.
Exemplo
Considere o conjunto de dados SAS abaixo contendo os detalhes dos funcionários de uma organização. Se estivermos interessados apenas em obter os valores de Nome e Departamento do conjunto de dados, podemos usar o código abaixo.
DATA Employee;
INPUT empid ename $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
DATA OnlyDept;
SET Employee;
KEEP ename DEPT;
RUN;
PROC PRINT DATA = OnlyDept;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
O mesmo resultado pode ser obtido eliminando as variáveis que não são necessárias. O código a seguir ilustra isso.
DATA Employee;
INPUT empid ename $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
DATA OnlyDept;
SET Employee;
DROP empid salary;
RUN;
PROC PRINT DATA = OnlyDept;
RUN;
Subsetting Observations
Neste método, extraímos apenas algumas observações de todo o conjunto de dados.
Sintaxe
Usamos PROC FREQ, que mantém o controle das observações selecionadas para o novo conjunto de dados.
A sintaxe para observações de subconfiguração é -
IF Var Condition THEN DELETE ;
A seguir está a descrição dos parâmetros usados -
Var é o nome da variável com base em cujo valor as observações serão excluídas usando a condição especificada.
Exemplo
Considere o conjunto de dados SAS abaixo contendo os detalhes dos funcionários de uma organização. Se estivermos interessados apenas em obter os dados de funcionários com salário superior a 700, usamos o código abaixo.
DATA Employee;
INPUT empid name $ salary DEPT $ ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
DATA OnlyDept;
SET Employee;
IF salary < 700 THEN DELETE;
RUN;
PROC PRINT DATA = OnlyDept;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Às vezes, preferimos mostrar os dados analisados em um formato diferente do formato em que já estão presentes no conjunto de dados. Por exemplo, queremos adicionar o cifrão e duas casas decimais a uma variável que tem informações de preço. Ou podemos querer mostrar uma variável de texto, tudo em maiúsculas. Podemos usarFORMAT para aplicar os formatos SAS embutidos e PROC FORMATé aplicar formatos definidos pelo usuário. Além disso, um único formato pode ser aplicado a várias variáveis.
Sintaxe
A sintaxe básica para a aplicação de formatos SAS embutidos é -
format variable name format name
A seguir está a descrição dos parâmetros usados -
variable name é o nome da variável usado no conjunto de dados.
format name é o formato de dados a ser aplicado na variável.
Exemplo
Vamos considerar o conjunto de dados SAS abaixo contendo os detalhes dos funcionários de uma organização. Queremos mostrar todos os nomes em maiúsculas. oformatstatement é usado para conseguir isso.
DATA Employee;
INPUT empid name $ salary DEPT $ ;
format name $upcase9. ;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
RUN;
PROC PRINT DATA = Employee;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Usando PROC FORMAT
Nós também podemos usar PROC FORMATpara formatar dados. No exemplo abaixo, atribuímos novos valores à variável DEPT, estendendo o nome do departamento.
DATA Employee;
INPUT empid name $ salary DEPT $ ; DATALINES; 1 Rick 623.3 IT 2 Dan 515.2 OPS 3 Mike 611.5 IT 4 Ryan 729.1 HR 5 Gary 843.25 FIN 6 Tusar 578.6 IT 7 Pranab 632.8 OPS 8 Rasmi 722.5 FIN ; proc format; value $DEP 'IT' = 'Information Technology'
'OPS'= 'Operations' ;
RUN;
PROC PRINT DATA = Employee;
format name $upcase9. DEPT $DEP.;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
O SAS oferece amplo suporte para a maioria dos bancos de dados relacionais populares usando consultas SQL dentro de programas SAS. A maioria dosANSI SQLsintaxe é suportada. O procedimentoPROC SQLé usado para processar as instruções SQL. Este procedimento não pode apenas retornar o resultado de uma consulta SQL, mas também pode criar tabelas e variáveis SAS. O exemplo de todos esses cenários é descrito abaixo.
Sintaxe
A sintaxe básica para usar PROC SQL no SAS é -
PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;
A seguir está a descrição dos parâmetros usados -
a consulta SQL é escrita abaixo da instrução PROC SQL seguida pela instrução QUIT.
Abaixo veremos como este procedimento SAS pode ser usado para o CRUD (Criar, Ler, Atualizar e Excluir) operações em SQL.
Operação SQL Create
Usando SQL, podemos criar novos conjuntos de dados de dados brutos. No exemplo abaixo, primeiro declaramos um conjunto de dados denominado TEMP contendo os dados brutos. Em seguida, escrevemos uma consulta SQL para criar uma tabela a partir das variáveis desse conjunto de dados.
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;
PROC PRINT data = EMPLOYEES;
RUN;
Quando o código acima é executado, obtemos o seguinte resultado -
Operação de leitura SQL
A operação Read em SQL envolve a gravação de consultas SQL SELECT para ler os dados das tabelas. Em O programa a seguir consulta o conjunto de dados SAS denominado CARS disponível na biblioteca SASHELP. A consulta busca algumas das colunas do conjunto de dados.
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
;
QUIT;
Quando o código acima é executado, obtemos o seguinte resultado -
SQL SELECT com cláusula WHERE
O programa abaixo consulta o conjunto de dados CARS com um wherecláusula. No resultado, obtemos apenas a observação que temos como 'Audi' e tipo 'Esportes'.
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;
Quando o código acima é executado, obtemos o seguinte resultado -
Operação SQL UPDATE
Podemos atualizar a tabela SAS usando a instrução SQL Update. A seguir, primeiro criamos uma nova tabela chamada EMPLOYEES2 e depois a atualizamos usando a instrução SQL UPDATE.
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;
PROC SQL;
UPDATE EMPLOYEES2
SET SALARY = SALARY*1.25;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
Quando o código acima é executado, obtemos o seguinte resultado -
Operação SQL DELETE
A operação de exclusão em SQL envolve a remoção de certos valores da tabela usando a instrução SQL DELETE. Continuamos a usar os dados do exemplo acima e excluímos as linhas da tabela em que o salário dos funcionários é maior que 900.
PROC SQL;
DELETE FROM EMPLOYEES2
WHERE SALARY > 900;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
Quando o código acima é executado, obtemos o seguinte resultado -
A saída de um programa SAS pode ser convertida em formas mais amigáveis ao usuário, como .html ou PDF. Isso é feito usando o ODSdeclaração disponível no SAS. ODS significaoutput delivery system.É usado principalmente para formatar os dados de saída de um programa SAS em relatórios agradáveis que são bons para olhar e entender. Isso também ajuda a compartilhar a saída com outras plataformas e softwares. Ele também pode combinar os resultados de várias instruções PROC em um único arquivo.
Sintaxe
A sintaxe básica para usar a instrução ODS no SAS é -
ODS outputtype
PATH path name
FILE = Filename and Path
STYLE = StyleName
;
PROC some proc
;
ODS outputtype CLOSE;
A seguir está a descrição dos parâmetros usados -
PATHrepresenta a instrução usada no caso de saída HTML. Em outros tipos de saída, incluímos o caminho no nome do arquivo.
Style representa um dos estilos embutidos disponíveis no ambiente SAS.
Criação de saída HTML
Criamos a saída HTML usando a instrução ODS HTML. No exemplo a seguir, criamos um arquivo html em nosso caminho desejado. Aplicamos um estilo disponível na biblioteca de estilos. Podemos ver o arquivo de saída no caminho mencionado e podemos baixá-lo para salvar em um ambiente diferente do SAS. Observe que temos duas instruções SQL proc e ambas as saídas são capturadas em um único arquivo.
ODS HTML
PATH = '/folders/myfolders/sasuser.v94/TutorialsPoint/'
FILE = 'CARS2.html'
STYLE = EGDefault;
proc SQL;
select make, model, invoice
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;
proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;
ODS HTML CLOSE;
Quando o código acima é executado, obtemos o seguinte resultado -
Criação de saída em PDF
No exemplo abaixo, criamos um arquivo PDF em nosso caminho desejado. Aplicamos um estilo disponível na biblioteca de estilos. Podemos ver o arquivo de saída no caminho mencionado e podemos baixá-lo para salvar em um ambiente diferente do SAS. Observe que temos duas instruções SQL proc e ambas as saídas são capturadas em um único arquivo.
ODS PDF
FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS2.pdf'
STYLE = EGDefault;
proc SQL;
select make, model, invoice
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;
proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;
ODS PDF CLOSE;
Quando o código acima é executado, obtemos o seguinte resultado -
Criação de saída TRF (Word)
No exemplo abaixo, criamos um arquivo RTF em nosso caminho desejado. Aplicamos um estilo disponível na biblioteca de estilos. Podemos ver o arquivo de saída no caminho mencionado e podemos baixá-lo para salvar em um ambiente diferente do SAS. Observe que temos duas instruções SQL proc e ambas as saídas são capturadas em um único arquivo.
ODS RTF
FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS.rtf'
STYLE = EGDefault;
proc SQL;
select make, model, invoice
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;
proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;
ODS rtf CLOSE;
Quando o código acima é executado, obtemos o seguinte resultado -
Simulação é uma técnica computacional que usa computação repetida em muitas amostras aleatórias diferentes para estimar uma quantidade estatística. Usando o SAS, podemos simular dados complexos que possuem propriedades estatísticas especificadas no sistema do mundo real. Usamos software para construir um modelo do sistema e gerar numericamente os dados que podem ser usados para uma melhor compreensão do comportamento do sistema do mundo real. Parte da arte de projetar um modelo de simulação de computador é decidir quais aspectos do sistema da vida real são necessários para incluir no modelo para que os dados gerados pelo modelo possam ser usados para tomar decisões eficazes. Devido a essa complexidade, o SAS tem um componente de software dedicado para simulação.
O componente de software SAS que é usado na criação de simulação SAS é chamado SAS Simulation Studio. Sua interface gráfica de usuário fornece um conjunto completo de ferramentas para construir, executar e analisar os resultados de modelos de simulação de eventos discretos.
Diferentes tipos de distribuições estatísticas nas quais a simulação SAS pode ser aplicada estão listados abaixo.
- SIMULAR DADOS DE UMA DISTRIBUIÇÃO CONTÍNUA
- SIMULAR DADOS DE UMA DISTRIBUIÇÃO DISCRETA
- SIMULAR DADOS DE UMA MISTURA DE DISTRIBUIÇÕES
- SIMULAR DADOS DE UMA DISTRIBUIÇÃO COMPLEXA
- SIMULAR DADOS DE UMA DISTRIBUIÇÃO MULTIVARIADA
- APROXIMAR UMA DISTRIBUIÇÃO DE AMOSTRAGEM
- AVALIE AS ESTIMATIVAS DE REGRESSÃO
Um histograma é a exibição gráfica de dados usando barras de diferentes alturas. Ele agrupa os vários números no conjunto de dados em vários intervalos. Também representa a estimativa da probabilidade de distribuição de uma variável contínua. No SAS oPROC UNIVARIATE é usado para criar histogramas com as opções abaixo.
Sintaxe
A sintaxe básica para criar um histograma no SAS é -
PROC UNIVARAITE DATA = DATASET;
HISTOGRAM variables;
RUN;
DATASET é o nome do conjunto de dados usado.
variables são os valores usados para traçar o histograma.
Histograma Simples
Um histograma simples é criado especificando o nome da variável e o intervalo a ser considerado para agrupar os valores.
Exemplo
No exemplo a seguir, consideramos os valores mínimo e máximo da variável de potência e tomamos um intervalo de 50. Portanto, os valores formam um grupo em etapas de 50.
proc univariate data = sashelp.cars;
histogram horsepower
/ midpoints = 176 to 350 by 50;
run;
Quando executamos o código acima, obtemos a seguinte saída -
Histograma com ajuste de curva
Podemos ajustar algumas curvas de distribuição no histograma usando opções adicionais.
Exemplo
No exemplo abaixo, ajustamos uma curva de distribuição com valores de média e desvio padrão mencionados como EST. Esta opção usa e estima os parâmetros.
proc univariate data = sashelp.cars noprint;
histogram horsepower
/
normal (
mu = est
sigma = est
color = blue
w = 2.5
)
barlabel = percent
midpoints = 70 to 550 by 50;
run;
Quando executamos o código acima, obtemos a seguinte saída -
Um gráfico de barras representa os dados em barras retangulares com comprimento da barra proporcional ao valor da variável. SAS usa o procedimentoPROC SGPLOTpara criar gráficos de barras. Podemos desenhar tanto barras simples quanto barras empilhadas no gráfico de barras. No gráfico de barras, cada uma das barras pode receber cores diferentes.
Sintaxe
A sintaxe básica para criar um gráfico de barras no SAS é -
PROC SGPLOT DATA = DATASET;
VBAR variables;
RUN;
DATASET - é o nome do conjunto de dados usado.
variables - são os valores usados para traçar o histograma.
Gráfico de barras simples
Um gráfico de barras simples é um gráfico de barras no qual uma variável do conjunto de dados é representada como barras.
Exemplo
O script a seguir criará um gráfico de barras representando o comprimento dos carros como barras.
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc SGPLOT data = work.cars1;
vbar length ;
title 'Lengths of cars';
run;
quit;
Quando executamos o código acima, obtemos a seguinte saída -
Gráfico de barras empilhadas
Um gráfico de barras empilhadas é um gráfico de barras no qual uma variável do conjunto de dados é calculada em relação a outra variável.
Exemplo
O script a seguir criará um gráfico de barras empilhadas onde o comprimento dos carros é calculado para cada tipo de carro. Usamos a opção de grupo para especificar a segunda variável.
proc SGPLOT data = work.cars1;
vbar length /group = type ;
title 'Lengths of Cars by Types';
run;
quit;
Quando executamos o código acima, obtemos a seguinte saída -
Gráfico de barras agrupadas
O gráfico de barras agrupadas é criado para mostrar como os valores de uma variável são espalhados por uma cultura.
Exemplo
O script a seguir criará um gráfico de barras agrupado onde o comprimento dos carros é agrupado em torno do tipo de carro. Portanto, vemos duas barras adjacentes no comprimento 191, uma para o tipo de carro 'Sedan' e outra para o tipo de carro 'Wagon' .
proc SGPLOT data = work.cars1;
vbar length /group = type GROUPDISPLAY = CLUSTER;
title 'Cluster of Cars by Types';
run;
quit;
Quando executamos o código acima, obtemos a seguinte saída -
Um gráfico de pizza é uma representação de valores como fatias de um círculo com cores diferentes. As fatias são rotuladas e os números correspondentes a cada fatia também são representados no gráfico.
No SAS, o gráfico de pizza é criado usando PROC TEMPLATE que leva parâmetros para controlar a porcentagem, rótulos, cor, título etc.
Sintaxe
A sintaxe básica para criar um gráfico de pizza no SAS é -
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = variable /
DATALABELLOCATION = OUTSIDE
CATEGORYDIRECTION = CLOCKWISE
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = ' ';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
variable é o valor para o qual criamos o gráfico de pizza.
Gráfico de pizza simples
Neste gráfico de pizza, consideramos uma única variável do conjunto de dados. O gráfico de pizza é criado com o valor das fatias que representam a fração da contagem da variável em relação ao valor total da variável.
Exemplo
No exemplo a seguir, cada fatia representa a fração do tipo de carro do número total de carros.
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type /
DATALABELLOCATION = OUTSIDE
CATEGORYDIRECTION = CLOCKWISE
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Gráfico de pizza com rótulos de dados
Neste gráfico de pizza, representamos tanto o valor fracionário quanto o valor percentual de cada fatia. Também alteramos a localização do rótulo para estar dentro do gráfico. O estilo de aparência do gráfico é modificado usando a opção DATASKIN. Ele usa um dos estilos embutidos, disponíveis no ambiente SAS.
Exemplo
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type /
DATALABELLOCATION = INSIDE
DATALABELCONTENT = ALL
CATEGORYDIRECTION = CLOCKWISE
DATASKIN = SHEEN
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Grouped Pie Chart
Neste gráfico de pizza, o valor da variável apresentada no gráfico é agrupado em relação a outra variável do mesmo conjunto de dados. Cada grupo se torna um círculo e o gráfico tem tantos círculos concêntricos quanto o número de grupos disponíveis.
Exemplo
No exemplo abaixo, agrupamos o gráfico em relação à variável chamada "Marca". Como existem dois valores disponíveis ("Audi" e "BMW"), obtemos dois círculos concêntricos, cada um representando fatias de tipos de carros de sua própria marca.
PROC TEMPLATE;
DEFINE STATGRAPH pie;
BEGINGRAPH;
LAYOUT REGION;
PIECHART CATEGORY = type / Group = make
DATALABELLOCATION = INSIDE
DATALABELCONTENT = ALL
CATEGORYDIRECTION = CLOCKWISE
DATASKIN = SHEEN
START = 180 NAME = 'pie';
DISCRETELEGEND 'pie' /
TITLE = 'Car Types';
ENDLAYOUT;
ENDGRAPH;
END;
RUN;
PROC SGRENDER DATA = cars1
TEMPLATE = pie;
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Um gráfico de dispersão é um tipo de gráfico que usa valores de duas variáveis traçadas em um plano cartesiano. Geralmente é usado para descobrir a relação entre duas variáveis. No SAS, usamosPROC SGSCATTER para criar gráficos de dispersão.
Observe que criamos o conjunto de dados denominado CARS1 no primeiro exemplo e usamos o mesmo conjunto de dados para todos os conjuntos de dados subsequentes. Este conjunto de dados permanece na biblioteca de trabalho até o final da sessão SAS.
Sintaxe
A sintaxe básica para criar um gráfico de dispersão no SAS é -
PROC sgscatter DATA = DATASET;
PLOT VARIABLE_1 * VARIABLE_2
/ datalabel = VARIABLE group = VARIABLE;
RUN;
A seguir está a descrição dos parâmetros usados -
DATASET é o nome do conjunto de dados.
VARIABLE é a variável usada do conjunto de dados.
Gráfico de dispersão simples
Em um gráfico de dispersão simples, escolhemos duas variáveis do conjunto de dados e as agrupamos em relação a uma terceira variável. Também podemos rotular os dados. O resultado mostra como as duas variáveis estão espalhadas noCartesian plane.
Exemplo
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
TITLE 'Scatterplot - Two Variables';
PROC sgscatter DATA = CARS1;
PLOT horsepower*Invoice
/ datalabel = make group = type grid;
title 'Horsepower vs. Invoice for car makers by types';
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Gráfico de dispersão com previsão
podemos usar um parâmetro de estimativa para prever a intensidade da correlação entre eles, desenhando uma elipse em torno dos valores. Usamos as opções adicionais no procedimento para desenhar a elipse conforme mostrado abaixo.
Exemplo
proc sgscatter data = cars1;
compare y = Invoice x = (horsepower length)
/ group = type ellipse =(alpha = 0.05 type = predicted);
title
'Average Invoice vs. horsepower for cars by length';
title2
'-- with 95% prediction ellipse --'
;
format
Invoice dollar6.0;
run;
Quando executamos o código acima, obtemos a seguinte saída -
Matriz de Dispersão
Também podemos ter um gráfico de dispersão envolvendo mais de duas variáveis agrupando-as em pares. No exemplo abaixo, consideramos três variáveis e desenhamos uma matriz de gráfico de dispersão. Obtemos 3 pares de matriz resultante.
Exemplo
PROC sgscatter DATA = CARS1;
matrix horsepower invoice length
/ group = type;
title 'Horsepower vs. Invoice vs. Length for car makers by types';
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Um Boxplot é a representação gráfica de grupos de dados numéricos por meio de seus quartis. Os gráficos de caixa também podem ter linhas que se estendem verticalmente a partir das caixas (bigodes), indicando variabilidade fora dos quartis superior e inferior. A parte inferior e superior da caixa são sempre o primeiro e o terceiro quartis, e a faixa dentro da caixa é sempre o segundo quartil (a mediana). No SAS, um Boxplot simples é criado usandoPROC SGPLOT e boxplot com painéis é criado usando PROC SGPANEL.
Observe que criamos o conjunto de dados denominado CARS1 no primeiro exemplo e usamos o mesmo conjunto de dados para todos os conjuntos de dados subsequentes. Este conjunto de dados permanece na biblioteca de trabalho até o final da sessão SAS.
Sintaxe
A sintaxe básica para criar um boxplot no SAS é -
PROC SGPLOT DATA = DATASET;
VBOX VARIABLE / category = VARIABLE;
RUN;
PROC SGPANEL DATA = DATASET;;
PANELBY VARIABLE;
VBOX VARIABLE> / category = VARIABLE;
RUN;
DATASET - é o nome do conjunto de dados usado.
VARIABLE - é o valor usado para plotar o Boxplot.
Boxplot simples
Em um Boxplot simples, escolhemos uma variável do conjunto de dados e outra para formar uma categoria. Os valores da primeira variável são categorizados em tantos grupos quanto o número de valores distintos na segunda variável.
Exemplo
No exemplo a seguir, escolhemos a variável de potência como a primeira variável e o tipo como a variável de categoria. Assim, obtemos boxplots para a distribuição dos valores de potência para cada tipo de carro.
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
PROC SGPLOT DATA = CARS1;
VBOX horsepower
/ category = type;
title 'Horsepower of cars by types';
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Boxplot em painéis verticais
Podemos dividir os Boxplots de uma variável em muitos painéis verticais (colunas). Cada painel contém os boxplots para todas as variáveis categóricas. Mas os boxplots são agrupados usando outra terceira variável que divide o gráfico em vários painéis.
Exemplo
No exemplo abaixo, colocamos o gráfico em painéis usando a variável 'make'. Como existem dois valores distintos de 'make', obtemos dois painéis verticais.
PROC SGPANEL DATA = CARS1;
PANELBY MAKE;
VBOX horsepower / category = type;
title 'Horsepower of cars by types';
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
Boxplot em painéis horizontais
Podemos dividir os Boxplots de uma variável em muitos painéis horizontais (linhas). Cada painel contém os boxplots para todas as variáveis categóricas. Mas os boxplots são agrupados usando outra terceira variável que divide o gráfico em vários painéis. No exemplo abaixo, colocamos o gráfico em painéis usando a variável 'make'. Como existem dois valores distintos de 'make', obtemos dois painéis horizontais.
PROC SGPANEL DATA = CARS1;
PANELBY MAKE / columns = 1 novarname;
VBOX horsepower / category = type;
title 'Horsepower of cars by types';
RUN;
Quando executamos o código acima, obtemos a seguinte saída -
A média aritmética é o valor obtido somando o valor das variáveis numéricas e depois dividindo a soma pelo número de variáveis. Também é chamado de Média. No SAS, a média aritmética é calculada usandoPROC MEANS. Usando este procedimento SAS, podemos encontrar a média de todas as variáveis ou algumas variáveis de um conjunto de dados. Também podemos formar grupos e encontrar médias de variáveis de valores específicos para aquele grupo.
Sintaxe
A sintaxe básica para calcular a média aritmética no SAS é -
PROC MEANS DATA = DATASET;
CLASS Variables ;
VAR Variables;
A seguir está a descrição dos parâmetros usados -
DATASET - é o nome do conjunto de dados usado.
Variables - são o nome da variável do conjunto de dados.
Média de um conjunto de dados
A média de cada variável numérica em um conjunto de dados é calculada usando o PROC, fornecendo apenas o nome do conjunto de dados sem nenhuma variável.
Exemplo
No exemplo abaixo, encontramos a média de todas as variáveis numéricas no conjunto de dados SAS denominado CARS. Especificamos os dígitos máximos após a casa decimal como 2 e também encontramos a soma dessas variáveis.
PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC=2;
RUN;
Quando o código acima é executado, obtemos a seguinte saída -
Média de variáveis selecionadas
Podemos obter a média de algumas das variáveis, fornecendo seus nomes no var opção.
Exemplo
A seguir, calculamos a média de três variáveis.
PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2 ;
var horsepower invoice EngineSize;
RUN;
Quando o código acima é executado, obtemos a seguinte saída -
Média por classe
Podemos encontrar a média das variáveis numéricas organizando-as em grupos usando algumas outras variáveis.
Exemplo
No exemplo abaixo, encontramos a média da variável cavalos-vapor para cada tipo em cada marca do carro.
PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2;
class make type;
var horsepower;
RUN;
Quando o código acima é executado, obtemos a seguinte saída -
O desvio padrão (SD) é uma medida de quão variados são os dados em um conjunto de dados. Matematicamente, ele mede quão distantes ou próximos estão cada valor do valor médio de um conjunto de dados. Um valor de desvio padrão próximo de 0 indica que os pontos de dados tendem a estar muito próximos da média do conjunto de dados e um desvio padrão alto indica que os pontos de dados estão espalhados por uma faixa mais ampla de valores
No SAS, os valores SD são medidos usando PROC MEAN e PROC SURVEYMEANS.
Usando PROC MEANS
Para medir o SD usando proc meansescolhemos a opção STD na etapa PROC. Ele traz os valores SD para cada variável numérica presente no conjunto de dados.
Sintaxe
A sintaxe básica para calcular o desvio padrão no SAS é -
PROC means DATA = dataset STD;
A seguir está a descrição dos parâmetros usados -
Dataset - é o nome do conjunto de dados.
Exemplo
No exemplo abaixo, criamos o conjunto de dados CARS1 do conjunto de dados CARS na biblioteca SASHELP. Escolhemos a opção STD com o PROC significa passo.
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc means data = CARS1 STD;
run;
Quando executamos o código acima, ele fornece a seguinte saída -
Usando PROC SURVEYMEANS
Este procedimento também é usado para medir o SD junto com alguns recursos avançados, como medir o SD para variáveis categóricas, bem como fornecer estimativas de variação.
Sintaxe
A sintaxe para usar PROC SURVEYMEANS é -
PROC SURVEYMEANS options statistic-keywords ;
BY variables ;
CLASS variables ;
VAR variables ;
A seguir está a descrição dos parâmetros usados -
BY - indica as variáveis usadas para criar grupos de observações.
CLASS - indica as variáveis usadas para variáveis categóricas.
VAR - indica as variáveis para as quais o SD será calculado.
Exemplo
O exemplo abaixo descreve o uso de class opção que cria as estatísticas para cada um dos valores na variável de classe.
proc surveymeans data = CARS1 STD;
class type;
var type horsepower;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;
Quando executamos o código acima, ele fornece a seguinte saída -
Usando a opção BY
O código a seguir dá um exemplo da opção BY. Nele o resultado é agrupado para cada valor da opção BY.
Exemplo
proc surveymeans data = CARS1 STD;
var horsepower;
BY make;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;
Quando executamos o código acima, ele fornece a seguinte saída -
Resultado para make = "Audi"
Resultado para make = "BMW"
Uma distribuição de frequência é uma tabela que mostra a frequência dos pontos de dados em um conjunto de dados. Cada entrada na tabela contém a frequência ou contagem das ocorrências de valores dentro de um determinado grupo ou intervalo e, dessa forma, a tabela resume a distribuição dos valores na amostra.
SAS fornece um procedimento chamado PROC FREQ para calcular a distribuição de frequência de pontos de dados em um conjunto de dados.
Sintaxe
A sintaxe básica para calcular a distribuição de frequência no SAS é -
PROC FREQ DATA = Dataset ;
TABLES Variable_1 ;
BY Variable_2 ;
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
Variables_1 são os nomes das variáveis do conjunto de dados cuja distribuição de frequência precisa ser calculada.
Variables_2 são as variáveis que categorizaram o resultado da distribuição de frequência.
Distribuição de frequência de variável única
Podemos determinar a distribuição de frequência de uma única variável usando PROC FREQ.Neste caso, o resultado mostrará a frequência de cada valor da variável. O resultado também mostra a distribuição percentual, frequência cumulativa e porcentagem cumulativa.
Exemplo
No exemplo abaixo, encontramos a distribuição de frequência da variável de potência para o conjunto de dados denominado CARS1 que é criado a partir da biblioteca SASHELP.CARS.Podemos ver o resultado dividido em duas categorias de resultados. Um para cada marca do carro.
PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc FREQ data = CARS1 ;
tables horsepower;
by make;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Distribuição de frequência múltipla variável
Podemos encontrar as distribuições de frequência para variáveis múltiplas que as agrupam em todas as combinações possíveis.
Exemplo
No exemplo abaixo, calculamos a distribuição de frequência para a marca de um carro para grouped by car type e também a distribuição de frequência de cada tipo de carro grouped by each make.
proc FREQ data = CARS1 ;
tables make type;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Distribuição de frequência com peso
Com a opção de peso podemos calcular a distribuição de frequência enviesada com o peso da variável. Aqui, o valor da variável é considerado o número de observações em vez da contagem do valor.
Exemplo
No exemplo abaixo, calculamos a distribuição de frequência das variáveis marca e tipo com peso atribuído à potência.
proc FREQ data = CARS1 ;
tables make type;
weight horsepower;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
A tabulação cruzada envolve a produção de tabelas cruzadas, também chamadas de tabelas contingentes, usando todas as combinações possíveis de duas ou mais variáveis. No SAS, ele é criado usandoPROC FREQ juntamente com o TABLESopção. Por exemplo - se precisamos da frequência de cada modelo para cada marca em cada categoria de tipo de carro, precisamos usar a opção TABLES do PROC FREQ.
Sintaxe
A sintaxe básica para aplicar tabulação cruzada no SAS é -
PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
Variable_1 and Variable_2 são os nomes das variáveis do conjunto de dados cuja distribuição de frequência precisa ser calculada.
Exemplo
Considere o caso de descobrir quantos tipos de carros estão disponíveis em cada marca de carro do conjunto de dados cars1 que é criado de forma SASHELP.CARScomo mostrado abaixo. Nesse caso, precisamos dos valores de frequência individuais, bem como a soma dos valores de frequência entre as marcas e os tipos. Podemos observar que o resultado mostra valores nas linhas e nas colunas.
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc FREQ data = CARS1;
tables make*type;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Tabulação cruzada de 3 variáveis
Quando temos três variáveis, podemos agrupar 2 delas e tabular cada uma delas com a terceira variável. Portanto, no resultado temos duas tabelas cruzadas.
Exemplo
No exemplo abaixo, encontramos a frequência de cada tipo de carro e cada modelo de carro em relação à marca do carro. Também usamos a opção nocol e norow para evitar os valores de soma e porcentagem.
proc FREQ data = CARS2 ;
tables make * (type model) / nocol norow nopercent;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Tabulação cruzada de 4 variáveis
Com 4 variáveis, o número de combinações emparelhadas aumenta para 4. Cada variável do grupo 1 é emparelhada com cada variável do grupo 2.
Exemplo
No exemplo abaixo encontramos a frequência de comprimento do carro para cada marca e cada modelo. Da mesma forma, a frequência da potência para cada marca e cada modelo.
proc FREQ data = CARS2 ;
tables (make model) * (length horsepower) / nocol norow nopercent;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Os testes T são realizados para calcular os limites de confiança para uma amostra ou duas amostras independentes, comparando suas médias e diferenças médias. O procedimento SAS denominadoPROC TTEST é usado para realizar testes t em uma única variável e um par de variáveis.
Sintaxe
A sintaxe básica para aplicar PROC TTEST no SAS é -
PROC TTEST DATA = dataset;
VAR variable;
CLASS Variable;
PAIRED Variable_1 * Variable_2;
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
Variable_1 and Variable_2 são os nomes das variáveis do conjunto de dados usado no teste t.
Exemplo
Abaixo, vemos um teste t de amostra no qual encontra a estimativa do teste t para a variável de potência com limites de confiança de 95 por cento.
PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc ttest data = cars1 alpha = 0.05 h0 = 0;
var horsepower;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Teste t pareado
O teste T pareado é realizado para testar se duas variáveis dependentes são estatisticamente diferentes uma da outra ou não.
Exemplo
Como o comprimento e o peso de um carro dependem um do outro, aplicamos o teste T emparelhado conforme mostrado abaixo.
proc ttest data = cars1 ;
paired weight*length;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Teste t de duas amostras
Este teste t é projetado para comparar médias da mesma variável entre dois grupos.
Exemplo
Em nosso caso, comparamos a média da variável de potência entre as duas marcas diferentes de carros ("Audi" e "BMW").
proc ttest data = cars1 sides = 2 alpha = 0.05 h0 = 0;
title "Two sample t-test example";
class make;
var horsepower;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
A análise de correlação lida com relacionamentos entre variáveis. O coeficiente de correlação é uma medida de associação linear entre duas variáveis. Os valores do coeficiente de correlação estão sempre entre -1 e +1. SAS fornece o procedimentoPROC CORR para encontrar os coeficientes de correlação entre um par de variáveis em um conjunto de dados.
Sintaxe
A sintaxe básica para aplicar PROC CORR no SAS é -
PROC CORR DATA = dataset options;
VAR variable;
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
Options é a opção adicional com procedimento como plotar uma matriz etc.
Variable é o nome da variável do conjunto de dados usado para encontrar a correlação.
Exemplo
Os coeficientes de correlação entre um par de variáveis disponíveis em um conjunto de dados podem ser obtidos usando seus nomes na instrução VAR. No exemplo abaixo, usamos o conjunto de dados CARS1 e obtemos o resultado que mostra os coeficientes de correlação entre a potência e o peso.
PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc corr data = cars1 ;
VAR horsepower weight ;
BY make;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Correlação entre todas as variáveis
Coeficientes de correlação entre todas as variáveis disponíveis em um conjunto de dados podem ser obtidos simplesmente aplicando o procedimento com o nome do conjunto de dados.
Exemplo
No exemplo a seguir, usamos o conjunto de dados CARS1 e obtemos o resultado mostrando os coeficientes de correlação entre cada par de variáveis.
proc corr data = cars1 ;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Matriz de correlação
Podemos obter uma matriz de gráfico de dispersão entre as variáveis, escolhendo a opção de plotar a matriz no PROC declaração.
Exemplo
No exemplo abaixo, obtemos a matriz entre potência e peso.
proc corr data = cars1 plots = matrix ;
VAR horsepower weight ;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
A regressão linear é usada para identificar a relação entre uma variável dependente e uma ou mais variáveis independentes. Um modelo do relacionamento é proposto e estimativas dos valores dos parâmetros são usadas para desenvolver uma equação de regressão estimada.
Vários testes são então usados para determinar se o modelo é satisfatório. Se for então, a equação de regressão estimada pode ser usada para prever o valor dos valores dados da variável dependente para as variáveis independentes. No SAS o procedimentoPROC REG é usado para encontrar o modelo de regressão linear entre duas variáveis.
Sintaxe
A sintaxe básica para aplicar PROC REG no SAS é -
PROC REG DATA = dataset;
MODEL variable_1 = variable_2;
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
variable_1 and variable_2 são os nomes das variáveis do conjunto de dados usados para encontrar a correlação.
Exemplo
O exemplo abaixo mostra o processo para encontrar a correlação entre as duas variáveis de potência e peso de um carro usando PROC REG. No resultado, vemos os valores de interceptação que podem ser usados para formar a equação de regressão.
PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
FROM
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;
proc reg data = cars1;
model horsepower = weight ;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
O código acima também fornece uma visão gráfica de várias estimativas do modelo, conforme mostrado abaixo. Por ser um procedimento SAS avançado, ele simplesmente não para em fornecer os valores de interceptação como saída.
A análise de Bland-Altman é um processo para verificar a extensão da concordância ou discordância entre dois métodos projetados para medir os mesmos parâmetros. Uma alta correlação entre os métodos indica que uma amostra boa o suficiente foi escolhida na análise de dados. No SAS, criamos um gráfico de Bland-Altman calculando a média, o limite superior e o limite inferior dos valores das variáveis. Em seguida, usamos PROC SGPLOT para criar o gráfico de Bland-Altman.
Sintaxe
A sintaxe básica para aplicar PROC SGPLOT no SAS é -
PROC SGPLOT DATA = dataset;
SCATTER X = variable Y = Variable;
REFLINE value;
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
SCATTER declaração cerates o gráfico de dispersão do valor fornecido na forma de X e Y.
REFLINE cria uma linha de referência horizontal ou vertical.
Exemplo
No exemplo a seguir, pegamos o resultado de dois experimentos gerados por dois métodos denominados novo e antigo. Calculamos as diferenças nos valores das variáveis e também a média das variáveis da mesma observação. Também calculamos os valores de desvio padrão a serem usados nos limites superior e inferior do cálculo.
O resultado mostra um gráfico de Bland-Altman como um gráfico de dispersão.
data mydata;
input new old;
datalines;
31 45
27 12
11 37
36 25
14 8
27 15
3 11
62 42
38 35
20 9
35 54
62 67
48 25
77 64
45 53
32 42
16 19
15 27
22 9
8 38
24 16
59 25
;
data diffs ;
set mydata ;
/* calculate the difference */
diff = new-old ;
/* calculate the average */
mean = (new+old)/2 ;
run ;
proc print data = diffs;
run;
proc sql noprint ;
select mean(diff)-2*std(diff), mean(diff)+2*std(diff)
into :lower, :upper
from diffs ;
quit;
proc sgplot data = diffs ;
scatter x = mean y = diff;
refline 0 &upper &lower / LABEL = ("zero bias line" "95% upper limit" "95%
lower limit");
TITLE 'Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error';
run ;
quit ;
Quando o código acima é executado, obtemos o seguinte resultado -
Modelo aprimorado
Em um modelo aprimorado do programa acima, obtemos um ajuste de curva de nível de confiança de 95%.
proc sgplot data = diffs ;
reg x = new y = diff/clm clmtransparency = .5;
needle x = new y = diff/baseline = 0;
refline 0 / LABEL = ('No diff line');
TITLE 'Enhanced Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error';
run ;
quit ;
Quando o código acima é executado, obtemos o seguinte resultado -
Um teste de qui-quadrado é usado para examinar a associação entre duas variáveis categóricas. Ele pode ser usado para testar a extensão da dependência e a extensão da independência entre as variáveis. SAS usaPROC FREQ junto com a opção chisq para determinar o resultado do teste Qui-quadrado.
Sintaxe
A sintaxe básica para aplicar PROC FREQ para o teste Qui-quadrado no SAS é -
PROC FREQ DATA = dataset;
TABLES variables
/CHISQ TESTP = (percentage values);
A seguir está a descrição dos parâmetros usados -
Dataset é o nome do conjunto de dados.
Variables são os nomes das variáveis do conjunto de dados usados no teste do qui-quadrado.
Percentage Values na declaração TESTP representam a porcentagem dos níveis da variável.
Exemplo
No exemplo a seguir, consideramos um teste qui-quadrado na variável chamada tipo no conjunto de dados SASHELP.CARS. Essa variável tem seis níveis e atribuímos porcentagem a cada nível de acordo com o desenho do teste.
proc freq data = sashelp.cars;
tables type
/chisq
testp = (0.20 0.12 0.18 0.10 0.25 0.15);
run;
Quando o código acima é executado, obtemos o seguinte resultado -
Também obtemos o gráfico de barras mostrando o desvio do tipo de variável, conforme mostrado na imagem a seguir.
Qui-quadrado de duas vias
O teste qui-quadrado de duas vias é usado quando aplicamos os testes a duas variáveis do conjunto de dados.
Exemplo
No exemplo a seguir, aplicamos o teste do qui-quadrado em duas variáveis chamadas tipo e origem. O resultado mostra a forma tabular de todas as combinações dessas duas variáveis.
proc freq data = sashelp.cars;
tables type*origin
/chisq
;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
O teste exato de Fisher é um teste estatístico usado para determinar se há associações não aleatórias entre duas variáveis categóricas. No SAS, isso é realizado usando PROC FREQ. Usamos a opção Tabelas para usar as duas variáveis submetidas ao teste Exato de Fisher.
Sintaxe
A sintaxe básica para a aplicação do teste Exato de Fisher no SAS é -
PROC FREQ DATA = dataset ;
TABLES Variable_1*Variable_2 / fisher;
A seguir está a descrição dos parâmetros usados -
dataset é o nome do conjunto de dados.
Variable_1*Variable_2 são as variáveis do conjunto de dados.
Aplicando o Teste Exato de Fisher
Para aplicar o Teste Exato de Fisher, escolhemos duas variáveis categóricas chamadas Teste1 e Teste2 e seus resultados. Usamos PROC FREQ para aplicar o teste mostrado abaixo.
Exemplo
data temp;
input Test1 Test2 Result @@;
datalines;
1 1 3 1 2 1 2 1 1 2 2 3
;
proc freq;
tables Test1*Test2 / fisher;
run;
Quando o código acima é executado, obtemos o seguinte resultado -
A análise de medidas repetidas é usada quando todos os membros de uma amostra aleatória são medidos em várias condições diferentes. À medida que a amostra é exposta a cada condição sucessivamente, a medição da variável dependente é repetida. Usar uma ANOVA padrão neste caso não é apropriado porque falha em modelar a correlação entre as medidas repetidas.
Deve-se ter clareza sobre a diferença entre um repeated measures design e um simple multivariate design. Para ambos, os membros da amostra são medidos em várias ocasiões, ou tentativas, mas no desenho de medidas repetidas, cada tentativa representa a medição da mesma característica sob uma condição diferente.
Em SAS PROC GLM é usado para realizar análises de medidas repetidas.
Sintaxe
A sintaxe básica para PROC GLM no SAS é -
PROC GLM DATA = dataset;
CLASS variable;
MODEL variables = group / NOUNI;
REPEATED TRIAL n;
A seguir está a descrição dos parâmetros usados -
dataset é o nome do conjunto de dados.
CLASS dá às variáveis a variável usada como variável de classificação.
MODEL define o modelo a ser ajustado usando certas variáveis do conjunto de dados.
REPEATED define o número de medidas repetidas de cada grupo para testar a hipótese.
Exemplo
Considere o exemplo abaixo no qual temos dois grupos de pessoas submetidas a teste de efeito de uma droga. O tempo de reação de cada pessoa é registrado para cada um dos quatro tipos de medicamentos testados. Aqui, 5 testes são feitos para cada grupo de pessoas para ver a força da correlação entre o efeito dos quatro tipos de drogas.
DATA temp;
INPUT person group $ r1 r2 r3 r4;
CARDS;
1 A 2 1 6 5
2 A 5 4 11 9
3 A 6 14 12 10
4 A 2 4 5 8
5 A 0 5 10 9
6 B 9 11 16 13
7 B 12 4 13 14
8 B 15 9 13 8
9 B 6 8 12 5
10 B 5 7 11 9
;
RUN;
PROC PRINT DATA = temp ;
RUN;
PROC GLM DATA = temp;
CLASS group;
MODEL r1-r4 = group / NOUNI ;
REPEATED trial 5;
RUN;
Quando o código acima é executado, obtemos o seguinte resultado -
ANOVA significa Análise de Variância. No SAS é feito usandoPROC ANOVA. Ele realiza análises de dados de uma ampla variedade de projetos experimentais. Nesse processo, uma variável de resposta contínua, conhecida como variável dependente, é medida em condições experimentais identificadas por variáveis de classificação, conhecidas como variáveis independentes. Supõe-se que a variação na resposta seja devida a efeitos na classificação, com o erro aleatório sendo responsável pela variação restante.
Sintaxe
A sintaxe básica para aplicar PROC ANOVA no SAS é -
PROC ANOVA dataset ;
CLASS Variable;
MODEL Variable1 = variable2 ;
MEANS ;
A seguir está a descrição dos parâmetros usados -
dataset é o nome do conjunto de dados.
CLASS dá às variáveis a variável usada como variável de classificação.
MODEL define o modelo a ser ajustado usando certas variáveis do conjunto de dados.
Variable_1 and Variable_2 são os nomes das variáveis do conjunto de dados usado na análise.
MEANS define o tipo de cálculo e comparação de meios.
Aplicando ANOVA
Vamos agora entender o conceito de aplicação de ANOVA no SAS.
Exemplo
Vamos considerar o conjunto de dados SASHELP.CARS. Aqui, estudamos a dependência entre as variáveis tipo de carro e sua potência. Como o tipo de carro é uma variável com valores categóricos, nós o consideramos como uma variável de classe e usamos ambas as variáveis no MODELO.
PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
RUN;
Quando o código acima é executado, obtemos o seguinte resultado -
Aplicando ANOVA com MEANS
Vamos agora entender o conceito de aplicação de ANOVA com MEANS no SAS.
Exemplo
Também podemos estender o modelo aplicando a declaração MEANS, na qual usamos o método estudentizado da Turquia para comparar os valores médios de vários tipos de carros. A categoria de tipos de carros é listada com o valor médio da potência em cada categoria junto com alguns valores adicionais, como erro médio quadrado etc.
PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
MEANS type / tukey lines;
RUN;
Quando o código acima é executado, obtemos o seguinte resultado -
O teste de hipóteses é o uso de estatísticas para determinar a probabilidade de uma dada hipótese ser verdadeira. O processo usual de teste de hipóteses consiste em quatro etapas, conforme mostrado abaixo.
Passo 1
Formule a hipótese nula H0 (comumente, que as observações são o resultado do puro acaso) e a hipótese alternativa H1 (comumente, que as observações mostram um efeito real combinado com um componente de variação do acaso).
Passo 2
Identifique uma estatística de teste que pode ser usada para avaliar a verdade da hipótese nula.
Etapa 3
Calcule o valor P, que é a probabilidade de que uma estatística de teste pelo menos tão significativa quanto a observada seria obtida assumindo que a hipótese nula fosse verdadeira. Quanto menor o valor P, mais forte será a evidência contra a hipótese nula.
Passo 4
Compare o valor p com um valor de significância aceitável alfa (às vezes chamado de valor alfa). Se p <= alfa, que o efeito observado é estatisticamente significativo, a hipótese nula é descartada e a hipótese alternativa é válida.
A linguagem de programação SAS tem recursos para realizar vários tipos de teste de hipótese, conforme mostrado abaixo.
Teste | Descrição | SAS PROC |
---|---|---|
T-Test | Um teste t é usado para testar se a média de uma variável é significativamente diferente de um valor hipotético. Também determinamos se as médias para dois grupos independentes são significativamente diferentes e se as médias para grupos dependentes ou emparelhados são significativamente diferentes. | PROC TTEST |
ANOVA | Também é usado para comparar médias quando há uma variável categórica independente. Queremos usar ANOVA unilateral ao testar para ver se as médias da variável dependente do intervalo são diferentes de acordo com a variável categórica independente. | PROC ANOVA |
Chi-Square | Usamos a qualidade de ajuste do qui quadrado para avaliar se as frequências de uma variável categórica eram prováveis de acontecer devido ao acaso. O uso de um teste de qui quadrado é necessário se as proporções de uma variável categórica são um valor hipotético. | PROC FREQ |
Linear Regression | A regressão linear simples é usada quando se deseja testar o quão bem uma variável prediz outra variável. A regressão linear múltipla permite testar quão bem várias variáveis predizem uma variável de interesse. Ao usar a regressão linear múltipla, também assumimos que as variáveis preditoras são independentes. | PROC REG |