Como fazer um PROCV no Python

Já expliquei essa função outras vezes, mas talvez chamá-la de PROCV (ou VLOOKUP para quem usa Excel em inglês) ajuda as pessoas a compreendê-la. O post de hoje é dedicado a ensinar como fazer a famosa função PROCV do Excel no Python.  Continuar a ler “Como fazer um PROCV no Python”

Memes que Somente Cientistas de Dados Riem

Bom, como ninguém é de ferro, vez ou outra compartilho uns memes bestas no Twitter do EstatSite (@EstatSite). E por que deixar quem acompanha o blog de fora dessa né? Afinal, vocês também podem querer zoar quem usa Excel ao invés do R, quem usa correlação ao invés de modelos que melhor inferem causalidade (como IVs, RDD e Diff-in-Diff), ou quem sabe zoar os usuários de gráficos de pizza, por que não? Continuar a ler “Memes que Somente Cientistas de Dados Riem”

Clusterização na Prática

Introduzi a noção de técnicas de agrupamento no post: Técnicas de Clustering: K-Means. Porém, ficou faltando um exemplo prático de construir o algoritmo por conta própria. Aqui, vou apresentar uma aplicação da técnica utilizando distâncias euclidianas no software Excel.

Leia mais…

Visualizando seus dados: Histograma

Um histograma nada mais é do que uma forma de representar seus dados utilizando um gráfico de barras onde o eixo y representa a frequência e o eixo x os intervalos (chamados também de classes) dos seus dados. Simples assim. E já para dar uma ideia antes mesmo das definições mais formais, veja esse exemplo de um conjunto de dados e um histograma executado automaticamente pelo excel (veja o passo a passo no Canal da Educação):

Só de bater o olho, acho que a maioria já consegue entender o que o histograma apresenta. Ele nos dá uma ideia de como nossos dados estão distribuídos, mas para isso ele separa nossos dados em classes, ou, como o excel chamou, em blocos. Veja o que o excel fez, ele separou nossos dados em 5 intervalos:

Menor ou igual a 1, maior que 1 e menor ou igual a 25, maior que 25 e menor ou igual a 49, maior que 49 e menor ou igual a 73 e um último intervalo como sendo os números acima de 73. Para cada intervalo, ele contou o número de elementos dos nossos dados que fazem parte do intervalo em questão e a partir daí fez o gráfico de barras.

Quantos números do nosso conjunto de dados são menores ou iguais a 1? Apenas 1. Quantos são maiores que 1 e menor ou igual a 25? Apenas 6.

Eu não sou fã desse histograma do excel por achar pouco intuitivo os pontos 1, 25, 49, 73 e “Mais” estarem localizados no meio da barra mas não serem o ponto médio do intervalo. É bom se atentar a isso. Mas, deixando a crítica de lado e voltando ao assunto…

Nesse gráfico, o excel nos devolveu o resultado em termos da frequência absoluta, que nada mais é que o número de vezes em que determinado dado aparece. O histograma também pode ser construído com base na frequência relativa, que é o número de vezes em que determinado dado aparece dividido pelo número de elementos da nossa amostra ou população. Em outras palavras, é a representação percentual. Veja esse exemplo com os mesmos dados, mas utilizando a frequência relativa:

E NO SAS? COMO FAZEMOS UM HISTOGRAMA

A forma mais rápida que eu conheço é pelo proc univariate, é bem simples. Basta acrescentar histogram logo após você selecionar as variáveis que deseja visualizar o histograma. No exemplo abaixo, vamos inserir através do Datalines a data e o índice Ibovespa (índice na abertura, alta, baixa, etc.) e em seguida utilizamos o proc univariate para gerar o histograma:

data dados;
    input notas; 
    datalines;
    3.6
    3.6
    5
    6.4
    6.6
    6.6
    6.8
    7.5
    8
    8.7
    9
    9.5
    ;
proc print;
run;

proc univariate data = dados;
    var notas;
    histogram;
run;

Veja que o SAS criou seus intervalos também.

E se eu quiser alterar a forma como as classes estão divididas?

Bom, nesse caso podemos usar tanto o endpoints como o midpoints e escolher o intervalo inferior de todas as classes, o superior, e qual tamanho de cada classe. Veja esse exemplo com midpoints e tente brincar depois com endpoints:

proc univariate data = dados;
     var notas;
     histogram / midpoints=(3 to 10 by 2) ;
run;