Sempre que você for trabalhar com bases grandes, você provavelmente não vai conseguir dizer o que está dentro daquela base e/ou entender se seus dados fazem sentido, somente olhando para o analítico da base. Uma das formas de se analisar o conteúdo de uma base, é verificando as frequências com que aparecem algumas informações. Verificar a frequência é importante não só para validação das informações, como também para se obter insumos para tomada de decisão. No SAS, a principal forma de se obter as frequências é através do proc freq. Vamos verificar quais as diferentes formas de se usar este comando. Continuar a ler “TUTORIAL: PROC FREQ NO SAS”
Etiqueta: proc freq
Como obter a frequência de uma variável no SAS
Mencionei o comando proc freq do SAS no post Frequência no R utilizando o pacote Hmisc. Agora, vamos nos aprofundar um pouco e ver o que é possível fazer com este comando.
proc freq data= base_de_dados; table variavel1 variavel2 ... variaveln; run;
**** discretiza variaveis creditability e amount ****; data german_credit_21_v2; set german_credit_21; length d_creditability $4.; if creditability = 1 then d_creditability = 'good'; else d_creditability = 'bad'; length d_creditAmount $9.; if creditAmount <= 2500 then d_creditAmount = '0000-2500'; else if creditAmount > 2500 and creditAmount <= 5000 then d_creditAmount = '2500-5000'; else d_creditAmount = '+5000'; run; **** Frequencia de Creditability e Amount ****; proc freq data= german_credit_21_v2; table d_creditability d_creditAmount; run;
**** Frequencia Cruzada de Creditability e Amount ****; proc freq data= german_credit_21_v2 ; table d_creditability*d_creditAmount; run;
**** Nao traz frequencia por linha, coluna nem percentual ****; proc freq data= german_credit_21_v2; table d_creditability*d_creditAmount / norow nocol nopercent; run;
**** Cria uma tabela de output chamada tabela_frequencia ****; proc freq data= german_credit_21_v2; table d_creditability*d_creditAmount / out= tabela_frequencia norow nocol nopercent; run;
**** Sem ordenar ****; proc freq data= german_credit_21_v2 ; table Guarantors; run;
**** Ordena pela frequencia ****; proc freq data= german_credit_21_v2 order= freq; table Guarantors; run;
**** formata o nome ****; proc format; value formatacao 1 = 'none' 2 = 'co-applicant' 3 = 'guarantor'; run; **** gera frequencia e apresenta com nome formatado ****; proc freq data = german_credit_21; tables Guarantors; format Guarantors formatacao.; run;
Frequência no R utilizando o pacote Hmisc
Como estou acostumado com o proc freq do SAS para validar algumas informações e ver se faz sentido o que estou fazendo, procurei algo semelhante no R. Encontrei o describe() do pacote Hmisc. Claro que deve existir outro pacote que faz isso, mas esse foi o primeiro que encontrei.
O proc freq do SAS, como o nome já indica, calcula a frequência de seus dados. Por exemplo, se você tem uma base que contém homem e mulher, você pode utilizar um código parecido com esse:
proc freq data = base_de_dados; table sexo; run;
Onde base_de_dados seria o nome da sua base e sexo o nome da coluna contendo o sexo das pessoas.Esse código retorna para você o número e a porcentagem de pessoas de cada sexo. Analogamente, você poderia fazer o seguinte código no R:
install.packages("Hmisc"); library("Hmisc"); describe(base_de_dados$sexo);
E o resultado seria o mesmo.
Para não ficar muito abstrato, segue um exemplo com a base de dados german_credit_21 já utilizada no post Árvore de Decisão no R. Eu tinha discretizado algumas variáveis naquela época, e estava refazendo isso hoje. Apenas para garantir que tinha feito da forma correta, utilizei o describe(). Veja que ele me retornou que 30% da minha base possui Creditability ‘bad’ e 70% ‘good’. Além disso, pude ver também como foi dividido o CreditAmount. Bem simples, uma função só e você já tem uma bela descrição para trabalhar:
install.packages("Hmisc"); library("Hmisc"); describe(dados);