Estatística Básica com Python I

Marcelorb
8 min readFeb 22, 2024

Olá a todos que estão lendo esta publicação, vocês estão bem? Como o próprio título já diz, irei utilizar Python para resolver problemas de estatística básica. Como sou estudante, esta publicação é muito mais para eu botar em prática o que estou aprendendo.

Nesta primeira parte, irei abordar as principais medidas de tendência central: média, mediana e moda, e ao fim usarei de forma prática com um dataset.

Sobre o Dataset:

O dataset tem dados sobre vendas de games no mundo que foi extraído do seguinte site: https://www.vgchartz.com/ e disponibilizado no Kaggle.

Para usar o mesmo Dataset basta baixar no link abaixo:

https://www.kaggle.com/datasets/asaniczka/video-game-sales-2024

A princípio iremos trabalhar com apenas 3 colunas:

publisher = Nome da produtora do jogo

console = Qual console a produtora lança o jogo

total_sales = vendas totais da produtora em dólares

Por que Python?

Conhecido por sua facilidade e hoje sendo usado amplamente para ciência de dados o Python traz diversas bibliotecas que facilitam o uso nessa, por exemplo, iremos usar o Pandas que é uma das principais bibliotecas para manipulação de dados nós podemos usar diversas ferramentas para fazer esses cálculos rapidamente, a título de curiosidade no nosso dataset temos cerca de 3383 linhas, fazer esses cálculos na mão se torno inviável, pois temos que selecionar, agrupar e calcular o que é quase impossível de fazer sem uso de tais ferramentas.

Medidas de tendência central:

Talvez as medidas de tendência central sejam as mais famosas medidas estatísticas. Elas têm por objetivo nos trazer um resumo do que os nossos dados dizem. Temos a Média, Mediana e a Moda.

Não irei falar sobre a história da estatística ou o porquê deve usar estática em suas análises, todos devem saber disso, mas deixarei um link para leitura abaixo:

https://mundoeducacao.uol.com.br/matematica/estatistica.htm#:~:text=A%20estat%C3%ADstica%20%C3%A9%20um%20ramo,o%20in%C3%ADcio%20das%20grandes%20civiliza%C3%A7%C3%B5es.

Média:

A média é a soma de todos os valores das observações dividida pela quantidade de observações. Por exemplo, temos os seguintes valores:

10, 20, 30, 40, 50

Que somados dão o resultado de 150, e a quantidade de observações é 5. Então, temos a seguinte divisão: 150/5, e o resultado é 30, que é a nossa média. A fórmula do cálculo é a seguinte:

x̄ = Média

Σ = simbolo de somatório

Xi = valores das observações

n = Número de observações

A média àsvezes não pode não condizer com a realidade dos dados, pois é facilmente afetada por valores fora do padrão.

No Python:

Mediana:

A mediana é o ponto onde divide o conjunto de dados no meio, por exemplo:

1, 4, 2, 3, 5, 0, 9

Após ordenar temos:

0, 1, 2, 3, 4, 5, 9

Temos um total de 6 elementos no conjunto de dados acima, só de olhar sabemos que a mediana é 3, pois é o número que divide os dados exatamente no meio, mas podemos usar uma a fórmula abaixo:

M = mediana

n = número total de elementos do conjunto de dados, nesse caso é 7

M = 7+ 1 / 2

M = 8/2 = 4

M = É o número na posição 4

Relembrando o conjunto de dados:

0, 1, 2, 3, 4, 5, 9

O número na posição 4 é número 3 logo, M = 3

Em Python:

Mas e se o total de observações for um número par? Então teríamos mais de uma mediana, certo? ERRADO, para conjuntos de dados onde o n é par como abaixo

0, 1, 2, 3, 4, 5, 9, 10

Resolvemos da seguinte maneira, temos no meio 3 e 4 devemos somar os números tendo e dividir por 2 então temos 3,5 sendo a mediana.

Usando a fórmula:

Vamos por partes:

n/2 = 8/2 = 4 iremos pegar o número na posição 4 que é 3

n/2 + 1 = 8/2 + 1 = 4 + 1 = 5, iremos localizar o número na posição 5 que é 4

Então:

(3 + 4)/2 = 7/2 = 3,5 temos Mediana = 3,5

A grande vantagem de usar a mediana ao invés da média é que ela não é influenciada por outliers, por isso conseguimos uma maior confiabilidade na medida.

Em Python o código será igual ao código da mediana impar.

Moda:

A moda tem um conceito bem simples e o termo que mais se repete no conjunto, como o próprio nome diz é o que esta na moda, por exemplo:

1, 2, 3, 3, 3, 4, 4, 5

Olhando qual é o número que mais se repete? É o número 3 e se tivermos números com o mesmo número de repetições como abaixo:

1, 2, 3, 3, 3, 4, 4, 4, 5

3 e 4 se repetem o mesmo tanto de vezes certo? Vamos tirar uma média desses números? Somar? NÃO.

Simplesmente teremos dois números que são a nossa moda, 3 e 4 sendo assim nós chamados de bimodal.

A moda não tem uma fórmula especifica, é determinada pela contagem dos elementos repetidos.

A moda também é muito usada para dados categóricos onde não tem como usar outras medidas para nos orientar na interpretação dos dados, por exemplo, se você quer saber qual o suco de frutas mais vendido e fez uma lista toda vez que um suco fosse vendido:

Uva, Uva, Maçã, Laranja, Laranja, Goiaba, Uva

A moda é Uva, pois é o elemento que mais se repete na lista de vendas.

No Python:

Bimodal:

Como transformamos em um series do pandas para imprimir o valor tivermos que usar outras funções como .values()

Essas são as medidas de tendência central mais usadas e as mais simples. Ainda temos outras variações como média ponderada, mediana ponderada, e etc. Para saber mais sobre essas medidas, leia o link abaixo: https://www.preparaenem.com/matematica/medidas-estatisticas-medias-aritmetica-ponderada-geometrica.htm"

O problema de negócio:

Trabalhamos em uma empresa de investimentos e na última reunião foi decidido que o próximo investimento será na área de games, nós como profissionais de dados fomos encarregados de fornecer informações que vão influenciar a decisão da diretoria, para isso iremos usar nossos conhecimentos em estatística.

O CEO quer os relatórios o mais rápido possível, pois a próxima reunião será na próxima semana como primeiro passo iremos calcular a média de vendas por empresa sem distinção da plataforma, se seguirmos a seguinte lógica teremos o resultado pretendido:

1. Separar as colunas de publisher e total_sales

2. Agrupar e somar a coluna total_sales por publisher

3. Fazer o cálculo da média.

No Python fica da seguinte maneira:

E após todo o cálculo o CEO pediu o TOP 10 da média de vendas das publishers e temos como resultado:

As publisher famosas estão no TOP 10 como a Rockstar e Microsoft e algumas antigas como a Ultra games.

Ao apresentar esses dados para o CEO ele já ficou entusiasmado, quis logo investir na primeira empresa Ultra Games, mas fizemos uma advertência sobre o uso da média.

A média pode ser facilmente afetada por valores fora do comum, os famosos outliers, por isso outra abordagem sensata seria o uso da mediana em Python, usaremos o código abaixo:

E temos o resultado:

Veja como o top 10 mudou ao usar a mediana, o primeiro em vendas já não é mais a Ultra Games que agora está em segundo lugar, além disso, a Blizzard saiu do top 10.

O CEO gostou da nossa pro-atividade em trazer também essa medida para a análise, pois isso poderia evitar uma decisão errada.

Como nem tudo são flores, erramos ao não entender exatamente o que ele queria dizer que investiria em games, pois como ele ira fazer investimento em uma empresa que não existe mais? Ou que não faz muito poucos jogos?

Então vamos voltar para o relatório e incluir isso na análise, para entender melhor como cada empresa faz jogo podemos usar a moda na coluna console e ver qual o console que cada empresa mais faz jogos.

Com a função .mode() podemos obter o resultado da moda facilmente

Observação: Note que tivemos que fazer uma preparação para poder usar a função .mode() pois ao agrupar com o groupby() não conseguimos usar a função de moda e logo em seguida fizemos o cálculo da mediana para ranquear conforme o pedido anterior.

E temos o resultado da moda do TOP 10 mediana:

O nosso CEO ficou muito feliz com o que foi apresentado. Considerando que temos apenas essas informações em mãos, qual seria o conselho que vocês dariam para o nosso CEO?

Minha Opinião:

Nenhuma das empresas tem jogos em consoles novos como o PS5 ou Xbox Series, somente a Valve faz jogos para PC e pode estar fazendo jogos novos ou atualizando os que já tem, porém, não temos essa informação, logo o melhor seria obter mais dados a respeito, mas no momento não fazer o investimento será a melhor opção.

Tem alguma dica a mais? Deixe nos comentários.

--

--