Como usar o módulo de estatística Python

Como usar o módulo de estatística Python


O Python tem algumas bibliotecas maravilhosas para análise estatística, mas podem ser exageradas para tarefas simples. A biblioteca estatística interna pode ser o que você deseja. Aqui estão algumas coisas que você pode fazer com isso. Você não precisa se lembrar de fórmulas complicadas ou olhar mais através de mesas.

O que é o módulo de estatística Python?

O Módulo de estatística Python é um módulo interno para realizar cálculos estatísticos simples. Como faz parte da biblioteca Python padrão, está disponível em todas as instalações do Python. Para acessá -lo em scripts ou sessões interativas, tudo o que você precisa fazer é importá -lo:

        import statistics

Se você precisar de apenas uma ou algumas funções de um módulo Python em uma sessão interativa, como no ipython ou em um notebook Jupyter, poderá importá -los diretamente para o espaço de nome atual, para não precisar digitar “estatísticas” o tempo todo. É isso que os exemplos deste artigo assumirão.

O módulo de estatística brilha em um modo Python interativo como o intérprete, uma sessão aprimorada no ipython ou um notebook Jupyter

Estatística descritiva

A forma mais básica de estatística é a estatística descritiva. Como o nome indica, essas estatísticas destinam -se a descrever os dados, como suas tendências centrais ou medidas de dispersão.

O cálculo mais simples é a média aritmética, que é apenas a soma dos pontos de dados divididos pelo número de pontos de dados. Nos livros didáticos de estatísticas, a média da amostra é representada por um X com uma barra desenhada sobre ele, conhecida como “x-bar”. A média da população é representada pela letra grega, MU, mas é o mesmo cálculo. A maioria das pessoas saberá disso como a “média”.

Para calcular a média com o módulo de estatística, basta usar a função média.

Somente importar funções para o espaço de nome do Python principal em sessões interativas. Fazer isso pode causar erros nos scripts se a função importada substituir uma função interna.

Vamos criar uma pequena variedade de números e encontrar a média:

        a = [4,4, 3, 6]
mean(a)

O resultado é 4.6.

A função Fmean também calcula meios, mas converte os dados em números de ponto flutuante. Também permitirá que você calcule uma média ponderada.

        weights = [1,2,3,4]
fmean(a,weights)

A média ponderada deste exemplo é 4.5

Outro tipo de média é a média geométrica, que é útil para comparar as taxas de crescimento durante um período de tempo. Envolve tomar a enésima raiz dos pontos de dados multiplicados. À mão, isso geralmente significa logaritmos tediosos, mas é fácil em Python com a função geométrica_mean.

        geometric_mean(a)

A média harmônica é o recíproco da média aritmética. É o número de pontos de dados divididos pela soma da fração de 1 / o primeiro ponto de dados, 1 / o segundo ponto de dados e assim por diante. A média harmônica é útil para obter médias de coisas como velocidades que têm certas taxas. Felizmente, o Python também pode fazer isso por você.

        harmonic_mean(a)
    

O resultado é 4. Observe que a média harmônica era menor que a média geométrica, e a média geométrica foi menor que a média aritmética no mesmo conjunto de dados.

A mediana é outra medida popular da tendência central. É o ponto de dados que divide um conjunto de dados pela metade. Você pode encontrá -lo com a função mediana:

        median(a)
    

O resultado é 4 em nossa amostra.

A função de modo relata o número mais comum na amostra.

        mode(a)
    

Novamente, o modo é 4, pois é o número recorrente mais comum na matriz que definimos anteriormente.

Outro motivo comum para tomar estatísticas descritivas é medir a propagação dos dados, também conhecida como dispersão. A medida mais conhecida da propagação é o desvio padrão, que mede até que ponto os dados são espalhados pela média aritmética. É a raiz quadrada da variação, ou a soma do quadrado da média subtraído de cada ponto de dados, dividido pelo número de pontos de dados. Isso representa o desvio padrão da população, mas o desvio padrão subtrai o número de pontos de dados por um para fornecer um resultado mais representativo em amostras menores.

A função STDEV calcula o desvio padrão da amostra, que provavelmente será o que você deseja na maioria das vezes:

        stdev(a)
    

O resultado é de aproximadamente 1,26.

Vamos compará -lo com o desvio padrão da população com a função PSTDEV:

        pstdev(a)
    

Você pode ver a variação da amostra com a função de variação

        variance(a)
    

Ele também possui uma variante de base populacional, a pvariância, que funciona da mesma maneira.

Outra maneira de visualizar a distribuição de seus dados é dividi -los em percentis, que a porcentagem de pontos de dados que são menos disso. A mediana é na verdade o percentil 50, pois metade dos pontos de dados está abaixo.

A função Quantiles dividirá os dados em percentis por resultado:

        quantiles(a)
    

Ele mostrará o quartil inferior, ou 25º percentil, a mediana e o quartil superior. As funções MIN e MAX integradas exibirão os valores mínimo e máximo.

        min(a)
max(a)

Regressão e correlação

Regressão linear usando o módulo de estatística Python no intérprete interativo.

Um método estatístico popular é ver como uma variável está correlacionada com outra. Isso equivale a plotar pontos de dados nos eixos X e Y e desenhar uma linha sobre eles para ver como ele se encaixa bem. Isso é conhecido como “regressão linear”. O módulo de estatística possui um método para regressão linear simples. É “simples” porque apenas correlaciona duas variáveis. Ele usa um método chamado “mínimos quadrados comuns”, assim chamado porque tenta minimizar o quadrado da distância entre os pontos de dados e a linha que cria.

Vamos traçar uma regressão linear de duas matrizes rotuladas x e y

        x = [1,2,3,4,5]
y = [5,7,9,11,13]

Para ajustar o modelo, use o método Linear_Regression. Isso calculará a inclinação e a interceptação y para a equação familiar de uma linha: y = mx + b.

        linear_regression(x,y)
    

Isso lhe dará a inclinação e a interceptação. Você também pode salvá -los em variáveis:

        slope, intercept = linear_regression(x,y)
    

A inclinação neste caso é 2 e a interceptação é 3, representando a equação da interceptação de inclinação y = 2*x + 3. O sinal positivo na inclinação indica que é uma linha de inclinação ascendente, o que significa que o valor Y aumentará à medida que avançamos para a direita.

Esta função não plotará nenhuma linha ou o gráfico de dispersão clássico. Também fornecerá apenas a regressão para duas variáveis. Se você deseja gerar um enredo ou fazer uma previsão usando mais de uma variável dependente, você terá que usar outras bibliotecas como SeaornnAssim, Modelos de Estadoou Pinguim.

Você pode ver como duas variáveis ​​se correlacionam usando a função de correlação. Isso calcula o coeficiente de correlação, ou r. Esse coeficiente estará entre 0 e 1 ou -1, indicou uma correlação positiva ou negativa. Uma correlação negativa significará uma linha de inclinação descendente.

Dois verifique a correlação entre duas variáveis:

        correlation(x,y)
    

Nesse caso, é 1, mostrando uma correlação positiva perfeita, mas dados reais raramente correlacionam isso perfeitamente. Isso significa que a linha de regressão estará perfeitamente nos pontos de dados quando você os plote.

A distribuição normal

Cálculo de distribuição normal de alturas masculinas usando o módulo de estatística Python.

A distribuição normal, com sua famosa curva em forma de sino, é uma distribuição de probabilidade contínua. Você pode usar a função para estimar a probabilidade de algum parâmetro normalmente distribuído.

Podemos demonstrar isso com dados do CDC. Segundo os dados, a média dos homens acima de 20 é de 175,1 centímetros. Podemos obter o desvio padrão da população multiplicando a raiz quadrada do número de amostras, 2.690, pelo erro padrão, .3

        import math
math.sqrt(2690) * .3

O desvio padrão é de aproximadamente 15,56

Podemos usar isso para construir um objeto de distribuição normal:

        men_height = NormalDist(175.1,28.41)
    

Para encontrar a porcentagem de homens entre 160 e 180 centímetros de altura, usamos a função de distribuição cumulativa, ou CDF, que fornece a porcentagem de valores de um simples valor abaixo de um determinado valor. Podemos subtrair o valor mais baixo da maior, porque a curva de distribuição normal é simétrica. O objeto que acabamos de criar possui um método CDF que podemos usar para nos dar essa probabilidade.

        men_height.cdf(180) - men_height.cdf(160)
    

A resposta será que aproximadamente 45% dos homens têm entre 160 e 180 centímetros de altura.

Que tal Numpy, Scipy, etc.?

Numpy, Scipy e outras bibliotecas são populares para estatística e análise de dados. Onde isso deixa o módulo de estatística? As antigas bibliotecas são projetadas para grandes conjuntos de dados e uso profissional. Os desenvolvedores dos módulos de estatísticas o lançaram nos níveis de calculadoras científicas e gráficas. Esta biblioteca é boa para aprender conceitos estatísticos e cálculos rápidos e casuais.

Se você deseja trabalhar com conjuntos de dados reais, as outras bibliotecas serão mais poderosas e flexíveis, embora a curva de aprendizado possa ser íngreme. Se você deseja gostar do poder da computação estatística com o Python, o módulo de estatística é um bom lugar para começar.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima