Executando verificação de segurança...
4

Data scientist #3 | Estatística básica para analise de dados em python.

---


O QUE É ESTATÍSTICA?

A estatística é uma disciplina da matemática que se concentra na coleta, análise, interpretação e visualização de dados. Então ela permite a gente a identificar padrões, fazer previsões e tomar decisões. A estatística é muito velha, ela foi utilizada até mesmo no antigo Egito para registro das colheitas. Há mais de dois mil anos, a China já se preocupava com o crescimento populacional por meio de censos. Já no século XIV, o início do Renascimento na Europa também proporcionou novos rumos à ESTATÍSTICA, necessária especialmente para aprimorar a administração de governos. E esses são otimos exemplos.

A estatística é amplamente aplicada em diversas áreas, não são apenas os cientistas de dados que utilizam estatística, há utilização em ciências da natureza, ciências sociais, negócios, economia, engenharia e muitas outras áreas. É uma ferramenta poderosa para principalmente compreender e lidar com a incerteza, fornecendo métodos para quantificar e avaliar a variabilidade nos dados. Em resumo, a estatística desempenha um papel crucial na compreensão do mundo ao nosso redor por meio da análise e interpretação de dados.

E compreender essa área pelo menos na sua forma básica é uma parte fundamental da análise de dados, irei fornecer os conceitos e ferramentas necessários para entender e interpretar conjuntos de dados. Um dos primeiros passos na análise de dados é a descrição das características de nossas informações, o que inclui *medidas de tendência central* e *dispersão*.


Medidas de Tendência Central:

As medidas de tendência central descrevem onde os dados tendem a se concentrar. Qual é a maior quantidade em que eles existem por exemplo. Aqui estão três das principais medidas de tendência central. A média, mediana e moda. Mas antes de tudo, iremos primeiro usar bibliotecas para a utilização das fórmulas adequadas. 

import numpy as np
from scipy import stats
Quer que eu seja sincero? Essas importações realmente nem são tão importantes assim para se utilizar. As fórmulas de tendência central são básicas o suficiente para serem criadas sem problemas com python sem adição de outras bibliotecas, e até mesmo com outras linguagens, como C++ ou Lua existe uma certa facilidade para criar esses cálculos. Mas eu utilizarei o Numpy e o SciPy porque já são bibliotecas que teremos que constantemente utilizar durante as próximas publicações. Então é melhor usar agora do que depois, certo?

Eu fiz aleatoriamente uma série de valores para ser nossa base de dados, pois o intuito no momento é apenas apresentar as fórmulas, mas sempre costume a testar com base de dados reais.

Base_De_Dados = [29, 34, 48, 47, 41, 38, 33, 42, 43, 22, 35, 43, 25, 34, 25, 28, 34, 32, 47,
 46, 27, 44, 22, 35, 20, 49, 43, 34, 43, 42, 30, 26, 43, 33, 24, 27, 45, 49, 41, 28]

Caso seja difícil ver uma série de valores sem sentido nenhum e começar a analisar, criarei um contexto; pense que é o registro de 50 pessoas numa sala, e esses valores representam a idade de cada uma delas e queremos descobrir como está a distribuição desses dados

Vamos começar com a análise através da média, isso é um conteúdo que se estuda durante o ensino médio, mas vou descrever como a soma de todos os valores dividida pela quantidade de produtos . Ela é utilizada para representarmos o valor típico central de nossos dados. Se você possui dois pontos, provavelmente a média vai ser o meio do caminho entre eles. E quanto mais pontos você adiciona para alguma das direções, mais ele cresce ou diminui. Caso visualize os dados e perceba que há valores muito extremos que alterem a média. Sempre será necessário uma limpeza na informação.  

E a fórmula de forma prática é assim:



Olhando assim pode parecer bem complicado para alguns, afinal de conta, existem esses símbolos como Σ, que apenas representa somatória. E isso também é algo simples, para os que já sabem como média funciona, devem olhar para isso e até mesmo questionar o motivo de eu ter deixado dessa forma, e direi que as fórmulas são ferramentas importantes e fazem parte de trabalhos científicos, é importante treinar sua leitura. Principalmente caso queira entrar na parte mais técnica, e ler artigos mais difíceis. Mas eu irei trazer um exemplo para deixar mais claro. 


X = \frac {10+12+9+6+13} {5}
X = \frac{50}{5}
X = 10

Esse é um exemplo bem simples de uma das fórmulas de tendencia central, viu? Não é tão difícil assim, foi soma e divisão. Apenas coisas que se utilizava no fundamental II. E é claro, caso sinta a dúvida em alguma das fórmulas que aparecer posteriormente, procure exemplos na internet e vídeos no youtube. Matemática pode ser um assunto delicado para alguns e para outros pode ser facilmente explicada. E está tudo bem!!! Nunca se julgue caso não entenda esses conceitos, busque com calma e faça sempre no seu jeito e no seu tempo.

Mas bem, agora que temos um exemplo e base de dados, vamos executar em código, o que é muito mais fácil do que pegar um lápis e começar a montar toda a fórmula para encontrar o resultado, e o código fica assim:

media = np.mean(Base_De_Dados)
print("Média:", media)

Fácil, não?

Agora vamos falar da mediana. A mediana é o valor que divide o conjunto de dados ao meio quando ordenado. Ele é literalmente o valor do meio de nossa base de dados. Mas se houver um número ímpar de valores, a mediana é simplesmente o valor do meio. Se houver um número par de observações, a mediana é a média dos dois valores do meio.

Um exemplo simples de mediana:



X = [4, 6, 8, 10, 12]
X = [8]

O valor do meio. Outro exemplo simples. Entretanto; a base de dados que normalmente utilizaremos vão ser em grande escala, então porque não fazemos isso em código?

mediana = np.median(Base_De_Dados)
print("Mediana:", mediana)

Um número bem próximo da média. Com a diferença de 1,2 para os resultados. Mas repare por exemplo que diferente da média, a mediana não depende de cada valor nos seus dados. Por exemplo, se você aumentar o maior ponto (ou diminuir o menor ponto), os pontos do meio permanecem intactos, logo, a mediana também. Ela só iria se alterar caso os dois valores do meio tivessem alteração. Então ela pode ser suspeita se apenas for usada sozinha.

Mas por último entre as medidas de tendencia central é a Moda, que descreve o valor mais frequente no conjunto de dados. O que mais aparece. Isso tem como função principal uma certa limpeza nós dados.

moda = stats.mode(Base_De_Dados)
print("Moda:", moda)

Além do resultado da moda, que para nossa base de dados é 43, ele também nos fornece a quantidade de vezes que o valor aparece, sendo no caso 5 vezes.

As medidas de tendencia central são o básico da estatística, normalmente nem se utiliza tanto mediana ou moda. O que mais usaremos provavelmente será a média. Mas também é necessário apresentar as medidas de dispersão desses dados.


Medidas de Dispersão:

A dispersão se refere à medida de como os nossos dados estão espalhados. Se eles têm valores muito distantes ou estão muito próximos, caso o resultado dos valores é perto de zero significam não estão espalhados de forma alguma e para valores maiores significa que estão muito espalhados. Por exemplo, uma simples medida é a amplitude, que é a diferença entre o maior e o menor elemento:

\text {Amplitude = Valor Maximo−Valor Minimo}
amplitude = np.max(Base_De_Dados) - np.min(Base_De_Dados)
print("Amplitude:", amplitude)

Amplitude alta significa que os dados estão bem espalhados, caso o resultado fosse 0, obrigatoriamente todos os dados teriam o mesmo valor. Por outro lado, se a amplitude é ampla, então o max é bem maior do que o min e os dados estão mais espalhados. E isso não necessariamente significa algo bom, apenas depende da base de dados e a distribuição dos valores e quantidade de valores. É preciso fazer análise e isso é algo consideravelmente difícil de se ensinar, é algo que precisamos fazer com calma e compreender o contexto para cada caso.

Mas agora vamos partir para a próxima medida de dispersão, a variância, essa é uma medida da dispersão dos dados em relação à média. Valores de dados que estão mais distantes da média contribuem mais para a variância, enquanto valores mais próximos têm uma contribuição menor. Deixe-me apresentar a fórmula:



Esse pode parecer um pouco mais difícil de entender, mas como a última a da média, recomendo que busque tutoriais ou mais exemplos caso queira compreender afundo. Porém, vamos direto ao código desta vez:

variancia = np.var(Base_De_Dados)
print("Variância:", variancia)

A variância é um método mais complexo para a análise de dispersão, pois ela utiliza a média como base e ela torna o resultado mais “preciso”. A variância apenas nos diz se os nossos valores estão distantes ou não da nossa média. Nesse nosso exemplo, como sabemos a média é 35, e temos números como 20 e 49, existe uma grande taxa de variância em relação à média.

Vamos agora partir para algo mais intuitivo, uma medida onde a dispersão pode ser baseada na média, mas ela é considerada mais visual para nós. E essa é o Desvio Padrão(σ). Que de forma prática, é simplesmente a raiz da variância.

σ= \sqrt {Variancia}
σ = ᴅᴇꜱᴠɪᴏ ᴘᴀᴅʀᴀᴏ

desvio_padrao = np.std(Base_De_Dados)
print("Desvio Padrão:", desvio_padrao)

Normalmente a distribuição dos dados, tem uma diferença de 8 com a média. Então existe um desvio..padrão. Acho que o nome já diz bastante coisa. É um desvio padrão dá média. E muitos preferem usar ele diretamente do que a variância, pois o resultado é muito mais compreensível.


E agora?

Primeiramente quero reforçar a ideia de que a estatística é uma ferramenta poderosa para compreender e interpretar conjuntos de dados, identificar padrões e tomar decisões informadas. No entanto, este é apenas o básico, e eu apenas quero apresentar alguns conceitos que utilizaremos.

Caso queira alguma recomendação para começar do zero, eu direi para ver a plataforma do
Khan Academy , que é um lugar gratuito e bom para reforçar os conteúdos do ensino fundamental e superior. Se tiver mais experiencia e um inglês consideravelmente avançado, sempre existem recursos como opções de livros, como o introdução para estatistica.

E para os programadores mais experientes, compartilhem aqui lugares que estudaram sobre estatística e até mesmo conceitos que acham importante. Logo mais quero falar de probabilidade, que é um ramo mais complexo e muito mais diversos em estatística.

E logo mais terá mais postagens desse mundo de Data Science. 🦋

Carregando publicação patrocinada...
2

Numpy é daquelas bibliotecas que de tão boas se tornaram referência para os melhores profissionais que aplicam em diversos usos. O mesmo vale para SciPy, Pandas, TensorFlow, Scikit e por aí vai...
Usei Pandas recentemente para migrar um csv gigante para PostgreSQL. Usei só read_csv() e to_sql(). Bem prático. Usei Connectorx + Pandas + Plotly Dash para carregar, processar e gerar os gráficos.

2

O universo das medidas de tendência central é fascinante.

Dois assuntos que, IMHO, são pouco explorados: (1) médias pitagóricas e (2) a relação entre as métricas.

Qual média usar? Sempre a aritmética? A geométrica é super útil para medir taxas de variação, e a harmônica é valiosíssima para não deixar valores muito pequenos interferirem no cálculo; no caso das relações, uma média muito diferente da mediana e da moda pode indicar uma tendência à assimetria - mas a partir de quando você pode considerar "diferente"? Questão boa!

E, em tempo, Borboleta Vermelha: seu tópico está super dentro da abordagem introdutória que você se propôs a trazer; só comentei porque noto a ausência dessa discussão em vários cursos sobre o tema.