R: Ordenando colunas

Mais uma dica rápida de R, vamos aprender a ordenar as colunas de um conjunto de dados qualquer. Isso geralmente é útil para visualizações, ou no caso de trabalhos com séries temporais.

Utilizando a base de dados german_credit_2, abaixo três formas de mudar as colunas de ordem:

## Le o dataset

dados = read.csv("../database/german_credit_2.csv");

## Traz a coluna 21 para a primeira posicao pelos indices

dados = dados[, c(21,1,2,3,...,20];

## Traz a coluna 21 para a primeira posicao pelos nomes das colunas

dados = dados[, c("Foreign Worker","Creditability",...,"Telephone")];

## Traz a coluna 21 pelos indices, mas criando uma sequencia

dados = dados[, c(21, 1:20)];

Para quem não se lembra, ‘1 : 20′ tem como resposta a sequência 1, 2, 3, …, 20.

Claro que o que foi criado acima pode ser modificado de diversas formas:

## Traz a coluna 21, 20 e 19 para a primeira posicao
dados = dados[, c(21,20,19,1,2,3,...,18];
## Traz as colunas de 1 a 5, seguidas pelas de 10 a 20, deixando
## as demais fora
dados = dados[, c(1:5, 10:20)];
E aí, curtiu o post?

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!

BONS ESTUDOS!

Excluindo linhas de um dataset no R

Mais uma dica rápida que saiu enquanto eu fazia minha tese…

Estava tratando um conjunto de dados no R, quando vi que precisava excluir as linhas que tivessem o campo referente ao mês com valor igual a 1 ou igual a 5. Sempre fiz isso no SAS com um if bem simples, mas não lembrava no R, talvez já tenha feito aqui, mas quem lê o blog sabe que não é lá tão organizado. Enfim, a lógica no R é tão simples quanto a do SAS, mas não tão intuitiva (ao menos para mim). Veja o antes e depois de uma tabela chamada dados retirando as linhas nas quais o campo s seja igual a 1 ou 5 e quais os códigos utilizar em algumas linguagens que já mencionamos aqui (é tão simples que vou colocar tudo junto mesmo):

No R, podemos resolver com um indexador lógico (! indicando negação):

dados[(dados$mes!=5 & dados$mes!=1),];

Ou então com um subset:

subset(dados, mes != 1 & mes != 5)

Da forma que escrevemos acima, você vai obter uma nova tabela, mas ela não está sendo salva com nome algum. Se você quiser, pode facilmente criar uma nova, como a tabela_nova que criamos no exemplo a seguir:

tabela_nova = subset(dados, mes!=1 & mes !=5)

Se você quiser ver como é no SAS, aqui vai um exemplo com data step:

data dados_v2;
    set dados;
    if mes ne 1 and mes ne 5; *ou if mes <> 1;
run;

E agora, um exemplo com proc sql:

PROC SQL;
    CREATE TABLE dados_v2 AS
    SELECT * FROM dados WHERE mes <> 1 AND mes <> 5; 
RUN;

Se quiser fazer no SQL:

SELECT * FROM dados WHERE mes <> 1 and mes <> 5;
E aí, curtiu o post?

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!

BONS ESTUDOS!

Visualizando a assertividade do seu experimento

Este post é um complemento ao Teorema de Bayes na prática: interpretando falso positivo e Probabilidade Condicional e o Teorema de Bayes. Apresento aqui uma demonstração visual de algumas medidas muito utilizadas na estatística.

Dado um experimento em que queremos verificar se um exame é capaz de diagnosticar uma doença, temos os seguintes resultados possíveis:

 

  • True Positive (TP) ~ Verdadeiro Positivo: O paciente foi diagnosticado como portador da doença e ele realmente é portador dela;
  • False Positive (FP) ~ Falso Positivo: O paciente foi diagnosticado como portador da doença, porém, ele não é portador dela;
  • False Negative (FN) ~ Falso Negativo: O paciente foi diagnosticado como não sendo portador da doença, porém, ele é portador dela;
  • True Negative (TN) ~ Verdadeiro Negativo: O paciente foi diagnosticado como não sendo portador da doença, e ele realmente não é portador dela.

A partir deste quadro, temos as seguintes medidas:

  • Sensibilidade: Probabilidade do exame ser positivo, dado que o paciente é portador da doença. Ou seja, capacidade do exame de acertar o diagnóstico de um paciente portador da doença;
  • Especificidade: Probabilidade do exame ser negativo, dado que o paciente não é portador da doença. Ou seja, capacidade do exame de acertar o diagnóstico de um paciente saudável;
  • Acurácia: Probabilidade do diagnóstico do exame estar correto.

Colocando em fórmulas matemáticas:

  • Sensibilidade = TP / (TP+FN)
  • Especificidade = TN / (FP+TN)
  • Acurácia = (TP+TN) / (TP+FN+FP+TN)

Veja que estamos falando de exames e doenças, mas essas medidas são utilizadas de diversas formas. Por exemplo, se você fizer uma regressão logística para prever inadimplência, você pode calcular a sensibilidade do seu modelo, qual a probabilidade de identificar um mau pagador, dado que o indivíduo é realmente mau pagador.

Viés de Variável Omitida: Um exemplo prático

Já mencionei o viés de variável omitida no post Quanto mais polícia, mais crimes? e Paradoxo de Simpson, vamos ver mais um exemplo prático.

Vamos supor que você queira analisar o impacto do número de professores em uma escola com as notas dos alunos. Ou seja, você gostaria de estimar os beta 1 da seguinte equação:

média das notas = β0 + β1*n° de professores + u

É de se esperar que β1 seja maior que 0, pois a expectativa é que um número maior de professores seja benéfico para os alunos por diversos motivos.

Entretanto, pensemos nas variáveis não utilizadas no modelo e que “alocamos” em u. Dentre essas variáveis, temos, por exemplo, o investimento do governo nessas escolas. Afinal, um governo que investe mais, tenderá a contratar mais professores para suprir todas as necessidades da escola. Ou seja, a correlação entre número de professores e investimento do governo é positiva, quanto maior o investimento feito, maior o número de professores. Note que a esperança do u dado o parâmetro n° de professores não é zero. Afinal, como já dissemos, quanto maior o investimento de um governo, maior o número de professores, sendo assim, violamos uma premissa da nossa regressão OLS (ordinal least squares).

Ε (u | n° de professores) ≠ 0

É provável que se calcularmos um coeficiente de valor 10, este valor seja na verdade um valor menor qualquer como 7 ou 5. Isso ocorre porque o parâmetro n° de professores está absorvendo parte do impacto que o investimento do governo causa. O resultado é que nosso coeficiente está com viés, superestimando o impacto da variável.

Este é o problema de se omitir uma variável relevante.

Baseado em: Omitted Variable Bias – Ben Lambert

Paradoxo de Simpson

O paradoxo de Simpson é um caso em que quando examinamos grupos diferentes observamos uma tendência que se altera quando combinamos estes grupos.

Um exemplo clássico é o caso de admissão de mulheres na Universidade de Berkeley. Acreditava-se que as mulheres estavam sendo discriminadas na admissão, pois o percentual de mulheres admitidas era muito menor que o percentual de homens, conforme podemos observar na tabela abaixo:

Entretanto, quando a análise era feita por departamento, isto não ocorria. A tabela abaixo apresenta os dados dos seis maiores departamentos da universidade, veja que dos 6, em apenas 2 o percentual de homens admitidos era menor:

A interpretação equivocada ocorreu porque havia maior concentração de mulheres aplicando em departamentos com menor taxa de admissão.

Isso ocorre simplesmente porque existe uma variável que se correlaciona tanto com a variável dependente quanto com a independente. Em outras palavras, é mais um caso de viés de variável omitida.

Obs.: Variável omitida é uma variável não considerada/avaliada por quem está fazendo a pesquisa. Esta variável é incorporada ao erro, porém, se uma variável importante é deixada de fora do modelo, o modelo poderá ter seus estimadores com viés e inconsistentes.

 

 

Criando variáveis dummy no R

Uma curtinha só para começar bem a semana…

Utilizando a base de dados german_credit_2 abaixo temos um exemplo de como criar uma variável binária – i.e., uma variável que recebe dois valores, 0 e 1 – com valor 1 para os clientes que possuem um montante de crédito acima de $ 1.000, e valor 0 para os que possuem menos que $ 1.000. Em outras palavras, criamos uma dummy n R. Incluímos uma forma de ler os dados em csv e uma forma de ler em excel:

## Le a base de dados csv
dados = read.csv("../database/german_credit_2.csv");

## le a base de dados excel - Primeiro instala pacote xlsx
install.packages("xlsx");
library("xlsx");
dados = read.xlsx("../database/german_credit_2.xlsx", sheetIndex=1);

## cria variavel para quem tem montante maior que mil
dados$valor1000 = as.numeric(dados$CreditAmount >= 1000);
E aí, curtiu o post?

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!

BONS ESTUDOS!