Substituindo missing pela média no R

Já mencionei aqui como excluir os valores missing dos seus cálculos no R, e aqui explico como excluir as linhas contendo valores missing. Porém, como vocês bem sabem, ao excluirmos a linha inteira temos perda de informação, afinal, uma coluna pode estar missing mas todo o restante da linha conter informação. Sendo assim, alguns estatísticos podem preferir não excluir a linha e fazer a escolha de substituir esses missing por outro valor, aqui vamos substituir pela média:

Leia mais…

SAS Group By no R

Já aprendemos como somar e agrupar os dados no SAS aqui, no R isso é tão simples quanto, basta você utilizar a função tapply(). A função é composta basicamente de três elementos: o vetor contendo valores, o campo que será utilizado no agrupamento e a função que será aplicada. Continuar a ler “SAS Group By no R”

Acompanhando a execução da macro no SAS

Mostrei no post Acompanhando o processo no SAS utilizando o Sysecho como utilizar o comando sysecho para acompanhar um procedimento extenso, algo que leva muito tempo para ser executado ou com muitas etapas. Porém, seria interessante também fazer um acompanhamento parecido quando executamos uma macro.

Leia mais…

Média Truncada (Trimmed Mean)

Já falei de estatística descritiva algumas vezes (como em Estatística Descritiva), mas nunca mencionei a média truncada, principalmente porque eu quase não uso.

A média  truncada nada mais é do que a média desconsiderando algum percentil, o que a faz útil se você quer desconsiderar os outliers. Se você quiser calcular a média truncada de um conjunto de 10 observações, você vai retirar a primeira e a última observação, para depois calcular a média.

Por exemplo: Qual a média truncada de 10% de {1,2,2,2,2,2,2,2,2,10}?

Será (2+2+…+2)/8 = 2

E se quisermos calcular no R?

dados = c(1,2,2,2,2,2,2,2,2,10);
mean(dados, trim=.1);
[1] 2

Simples!

Proc Sort no R

Muita gente sabe utilizar o proc sort para ordenar os campos no SAS.

Por exemplo, podemos ordenar uma tabela chamada dados_entrada pelas colunas campo1 e campo2, do menor para o maior valor, e ter como saída uma tabela dados_saida (exemplo 1). E podemos também ordenar uma tabela chamada dados_entrada pelas colunas campo1, do menor para o maior, e campo2, do maior para o menor valor, e ter como saída uma tabela dados_saida (exemplo 2). Bastaria utilizar:

* exemplo 1 
proc sort data= dados_entrada out= dados_saida; 
    by campo1 campo2; 
run; 

* exemplo 2 
proc sort data= dados_entrada out= dados_saida; 
    by campo1 descending campo2; 
run;

A mesma coisa, que nem todo mundo sabe, pode ser feita no R, e é até mais simples:

## exemplo 1
dados_saida = dados_entrada[order(dados_entrada$campo1,
dados_entrada$campo2),];

## exemplo 2
dados_saida = dados_entrada[order(dados_entrada$campo1,
-dados_entrada$campo2),];

R sendo R!

Regressão Diff-In-Diff com Efeitos Fixos no R

O conteúdo desse post demanda um certo tempo para explicar e detalhar, mas para não segurar informação, segue um código para rodar um modelo de diferenças em diferenças com efeito fixo em R:

## dummy de periodo: o experimento ocorreu no mes 6
dados_modelo$time = ifelse(dados_modelo$mes > 6, 1, 0);

## dummy de tratamento: grupo tratado tem campo tratamento = 1
dados_modelo$treated = ifelse(dados_modelo$tratamento == 1, 1, 0 );

## dummy tratamento * periodo ~ efeito do experimento
dados_modelo$did = dados_modelo$time * dados_modelo$treated;

## regressao diff-in-diff cujo tratamento eh ter ou nao tratamento
## com efeito fixo por paciente
regressao = lm(variavel_resposta ~ treated + time + did +
factor(paciente_id),data = dados_modelo);
summary(regressao);

Acredito que o leitor não terá muito problemas para entender que se for necessário focar em diff-in-diff, ele deve se atentar para a dummy did e para o efeito fixo a sintaxe factor().

Para quem está com o inglês já no nível próximo ao avançado, enquanto não posto nada a respeito desse tema, sugiro os links abaixo:

DID101R

An intuitive introduction to Difference-in-Differences

Fixed Effects estimators: an introduction

Filtros no R

Já falei várias vezes sobre como filtrar os dados no R (Excluindo linhas de uma tabela no R tem algo parecido), segue mais um exemplo:

## Filtrando apenas as linhas com a coluna mes igual a 3
## na tabela dados_modelo
dados_modelo[(dados_modelo$mes == 3),];

## Filtrando apenas as linhas com a coluna mes igual a 3, 4 ou 5
## na tabela dados_modelo
dados_modelo[dados_modelo$mes %in% c(3,4,5,6,7,8,9,10,11),];

## Filtrando apenas as linhas com a coluna mes igual a 3, 4, 5, ..., 10
dados_modelo[dados_modelo$mes %in% c(3:10),];

## Filtrando apenas as linhas com a coluna estado igual a SP
dados_modelo[dados_modelo$estado == "SP"),]

E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.

Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!

Como exportar tabelas no R

Mais um post rápido…

Assim como a gente consegue importar tabelas no R utilizando o read.table(), é possível exportar as tabelas, porém, ao invés de ler, você vai escrever. Logo, como todas as funções do R, essa é mais uma bem intuitiva: write.table(). Continuar a ler “Como exportar tabelas no R”