No SAS, uma das melhores formas de se obter estatísticas descritivas é através do proc means. Além de ser possível obter média, mediana e moda, você consegue diferentes faixas de percentil, observações missing e até mesmo gerar estatísticas cruzando variáveis.
Veja algumas maneiras de se utilizar o proc means com a nossa conhecida base german_credit_2:
1. Primeiro, vamos obter algumas informações para a variável DurationOfCreditMonth utilizando o proc means da maneira mais simples possível:
proc means data= german_credit_21; var DurationOfCreditMonth; run;
2. Em alguns momentos você pode precisar gerar as informações segregadas por diferentes grupos. Por exemplo, você pode precisar da mediana da dívida dos clientes por cada estado, ou a média das notas dos alunos por matéria. Em nosso exemplo, vamos observar como a variável DurationOfCreditMonth se diferencia entre clientes com Creditability = 1 e Creditability = 0:
proc means data=tmp.german_credit_21; class Creditability; var DurationOfCreditMonth; run;
3. Média, mediana e desvio padrão são medidas interessantes e auxiliam na interpretação dos números. No entanto, você pode estar interessado em entender mais a respeito da distribuição desses números. Uma forma de entender isso, é através de algum percentil:
proc means n mean std p10 p25 p50 p75 data=tmp.german_credit_21; class Creditability; var DurationOfCreditMonth; run;
4. Agora que você já possui alguns números para entender melhor a variável, pode ser uma boa ideia deixar o seu resultado mais limpo limitando a duas casas decimais com o maxdec:
proc means n mean std skew p10 p25 p50 p75 data=tmp.german_credit_21 maxdec=2; class Creditability; var DurationOfCreditMonth; run;
5. Não é tão interessante quanto os primeiros itens, mas salvar seus resultados em uma tabela – que aqui chamamos de tabela_saida – pode ser útil, principalmente em processos mais automáticos:
proc means data=tmp.german_credit_21; class Creditability; var DurationOfCreditMonth; output out=tabela_saida sum=soma mean=media p50=mediana; run;
6. Outra coisa que podemos fazer, semelhante ao que fizemos no item 2, é gerar essas medidas para mais variáveis dividindo todas pelo Creditability ou então, gerar as medidas da variável por outras classes:
proc means data=tmp.german_credit_21; class Creditability; var DurationOfCreditMonth Purpose; output out=tabela_saida sum=soma mean=media p50=mediana; run;
proc means data=tmp.german_credit_21; class Creditability Purpose; var DurationOfCreditMonth; output out=tabela_saida sum=soma mean=media p50=mediana; run;
BÔNUS:
Para incluir os dados missing e ainda contar o número de observações missing, acrescente missing e nmiss no proc means:
proc means data= <nome da base> missing nmiss; class <classe - nao obrigatorio>; var <variavel>; run;
Oi gente.
por favor alguém conhece o comando para calcular a medida geométrica no SAS?
tentei gmeans (número) mas ele não reconheceu este comando…
abraços
Oi Cassia. Utilize a função geomean().
Abs
Boa Yukio! Vou tentar!! Estava trabalhando com a média aritmética, com a geométrica vai ficar bem melhor! abraços
Yukio e caros colegas vou abusar de vcs mais uma vez…
Testei o comando que o Yukio me passou. E o SAS retornou com a seguinte informação:
“WARNING: The geomean function has been called with only one argument. However, it is not an SQL aggregate function, and this
call will not cause SQL aggregation”
o comando todo é:
PROC SQL;
CREATE TABLE CD4_1_200X_FINAL AS
SELECT ID,GEOMEAN(RESULT_CD4) AS RESULT_CD4
FROM CD4_1_200X
GROUP BY 1;
RUN;
Só para você entender meu problema:
O banco é formado por pacientes e resultados de exame de laboratório (CD4).
O paciente pode ter mais de um exame com resultados diferentes.
Preciso é um resultado único para cada paciente, por isto preciso calcular a média geométrica entre os resultados dele .
Desde já agradeço..
abraços
Oi Cassia, a fórmula é para data step. No proc sql eu acho que tem que fazer na mão mesmo. Tenta exp(mean(log(result_cd4))) as geomean. Deve funcionar. Testei aqui e deu certo.
Oi Yukio, agora deu certo! Com isto ganho ineditismo no meu trabalho!
Sou epidemiologista e estou no doutorado trabalhando com HIV, se precisar de algo que eu possa te ajudar….
abraços!
Maneiro!! Precisando é só falar também! Abraços😊
Alguém conhece um comando no SAS para fazer interpolação?
Olá, eu nunca usei, desconheço. Vou procurar e assim que tiver algo, compartilho aqui