histograma

Análise dos Jogadores de Fifa 19 Usando Python

Ok, confesso, este post é parcialmente um click bait. Parcialmente porque tem alguns códigos em Python, mas está tudo meio bagunçado ainda. De qualquer jeito, alguns podem se divertir, aprender como calcular correlação entre as variáveis de um Dataframe do Pandas, como calcular quartil, plotar histogramas já filtrando algum campo (ex.: Calcular a distribuição do campo Overall, mas só para jogadores cuja coluna Nacionalidade for England) e por aí vai. (mais…)

Anúncios

Histograma no R Agrupando 1 e 0?

Recentemente, recebi um e-mail pedindo uma ajuda para montar um histograma no R. O problema que a pessoa enfrentava era o seguinte: ao usar a função hist(), o R estava agrupando as quantidades que estavam na barra 1 e 0. Ou seja, se a pessoa tivesse 5 ocorrências do valor 0 e outras 3 com valor 1, o gráfico apresentaria só uma barra, registrando 8 ocorrências. Veja o exemplo abaixo: (mais…)

Histograma no R

Fazer um histograma no R é bem simples, basta utilizar o comando hist() com a variável que você quer investigar a distribuição. No entanto, um gráfico detalhado pode necessitar de mais detalhes, seja uma mudança na cor ou a apresentação das medidas de tendência central. Este post apresentará os detalhes que são possíveis de acrescentar no seu histograma utilizando o R.

Leia mais…

Gráficos no R com qqplot() (Histograma, Gráficos de Dispersão e Boxplot)

A função qqplot() do R – pertencente ao pacote ggplot2 –  é uma das melhores para se fazer gráficos. Este post, sem muitas enrolações, é basicamente uma continuidade do Gráficos em R. Aqui vamos utilizar os dados da base Wage do pacote ISLR do R.

Para começar, apenas carregue os pacotes e visualize a base:


library(ggplot2);

library(ISLR);

View(Wage);

Como você pode ver, se trata de dados referentes a salário, escolaridade, saúde, etc.
Abaixo, você terá os códigos para gerar diferentes gráficos e comentários explicativos:
## Tracando grafico simples com qplot
## por default, temos um histograma bem simples
qplot(wage, data=Wage);

qplot1

Você deve ter notado a mensagem: “`stat_bin()` using `bins = 30`. Pick better value with `binwidth`“. Isto quer dizer que por default, seu histograma é dividido em 30 barras diferentes, mas você pode escolher o melhor número de barras. Vamos testar com 15:
qplot(wage, data=Wage, bins=15);
qplot2
## Agora, vamos visualizar cada barra separando pelo estado civil
qplot(wage, colour=maritl, data=Wage);

qplot3

## Separar apenas com a cor do contorno nao ficou legal
## vamos trocar tambem a cor de preenchimento utilizando fill
qplot(wage, colour=maritl, fill=maritl, data=Wage);
qplot4
## Podemos inclusive preencher os blocos com cores diferentes
## Por exemplo, para cada estado civil, queremos ver quantos sao
## saudaveis e quantos nao sao
qplot(wage, colour=maritl, fill=health, data=Wage);
qplot5
## Podemos visualizar graficos de densidade
qplot(wage, colour=maritl, data=Wage, geom="density");
qplot6
## Podemos tentar entender como duas variaveis interagem
## Exemplo: plotar salario vs idade
qplot(wage, age, data=Wage);
qplot7
## Ou ate tentar ver alguma relacao nao linear
qplot(wage, age*age, data=Wage);
qplot8
## Um pouco mais complexo, podemos verificar o comportamento de idade por salario
## para cada raca, dividindo ainda por pessoas que possuem ou nao plano de saude
## essa segunda divisao (raca por plano de saude) eh feita utilizando facets
qplot(age, wage, data=Wage, facets=race~health_ins,
xlab="Idade", ylab="Salario");
qplot9
## Por fim, podemos fazer um boxplot, mas divindo uma variavel por
## cada uma das diferentes classes de uma outra (categorica)
## vamos observar o boxplot de salario para cada classe de trabalhador
## main indica o titulo do grafico, ylab o titulo do eixo y
qplot(jobclass, wage, data=Wage, geom=c("boxplot"),
fill=jobclass, main="Salario por classe de trabalho",
xlab="", ylab="Salario")

qplot10

Agora você já está pronto para fazer diversos gráficos diferentes no R!

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):

hist1

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:

hist2

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;

hist3

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;

hist4