Prévia do material em texto
Python aplicado à estatística e
probabilidade
Você entenderá a importância e o funcionamento do software Python com aplicações para análise de
dados, construção de gráficos, cálculos estatísticos e modelos de probabilidades de variáveis aleatórias
discretas e contínuas.
Profa. Manoela Cabo
1. Itens iniciais
Propósito
Compreender a análise exploratória de dados e o cálculo de probabilidades é essencial, pois são os pilares
dentro do universo da estatística. Isso pode ser facilitado pelo uso de um software muito importante e que se
mantém como um dos principais programas para análise e resolução de problemas na estatística, o software
Python.
Preparação
Antes de iniciar este conteúdo, pesquise e instale o software Python, para a aplicação dos conceitos que
serão aprendidos. O Python também pode ser rodado em ambiente virtual, como o Google Colaboratory.
Objetivos
Aplicar o software Python na elaboração de diversos gráficos para auxílio da análise exploratória de
dados.
Aplicar o software Python na resolução de problemas de probabilidade envolvendo variáveis aleatórias
discretas.
Aplicar o software Python na resolução de problemas de probabilidade envolvendo variáveis aleatórias
contínuas.
Introdução
Ao analisarmos dados, seja de uma população ou de uma amostra, ou ao elaborarmos estudos mais
complexos de estatística e probabilidade, o cálculo em papel pode ser muito complicado. Imagine calcular as
probabilidades de uma distribuição contínua, fatorial, binômio de Newton, exponenciais e logaritmos em papel
ou até mesmo em uma calculadora!
Para auxiliar na execução de todo esse trabalho, temos diversas ferramentas estatísticas. O importante aqui é
aprendermos a utilizá-las e sabermos o local exato de cada parâmetro da função escolhida.
Neste conteúdo, vamos descrever como instalar e utilizar o mais conhecido software estatístico disponível na
literatura, o software Python. Veremos suas principais características e o que justifica o programa ser cada
vez mais versátil e difundido no meio acadêmico e profissional. Além disso, utilizaremos várias funções já
existentes no software para fazermos algumas análises exploratórias de dados.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
•
•
•
1. Preparação de gráficos com Python
Apresentação das bibliotecas gráficas com Python
Assista ao vídeo e conheça as principais bibliotecas gráficas da linguagem Python, como matplotlib, seaborn e
plotly.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
O software Python é construído a partir de bibliotecas não só para cálculos, mas também para elaboração de
gráficos, e nisso consiste sua maior vantagem. Vamos explorar um pouco mais sobre o software na
elaboração de gráficos para cálculos estatísticos, usando as variáveis aleatórias.
No Python, a análise estatística pode ser realizada usando diferentes gráficos para a visualização e
exploração dos dados. Veja alguns exemplos de gráficos que podemos criar!
Histogramas Gráfico de dispersão
Boxplots Heatmaps
Com a análise de gráficos, podemos identificar padrões, tendências e outliers, possibilitando encontrar
insights que não seriam visíveis apenas com a análise estatística. Além disso, a visualização dos dados é uma
forma eficaz de comunicar resultados e apresentar informações.
Outlier
Na estatística, é um dado que se distancia radicalmente dos demais que compõem a amostra analisada.
No momento final de divulgação dos dados é muito comum a utilização de recursos visuais. Para o
processamento de dados, os gráficos e mapas são atraentes, porque proporcionam uma visualização das
características importantes dos dados. Observe o comparativo, a seguir, que levanta os pontos positivos dos
recursos usados!
Tanto os resumos visuais como os numéricos desempenham um importante papel na análise estatística.
Veremos alguns gráficos interessantes e sofisticados que podem ser produzidos dentro da plataforma. Para
isso, vamos utilizar algumas bibliotecas de gráficos disponíveis para Python. Confira quais são as três
principais!
Matplotlib
É a mais utilizada para visualização de dados em Python. É personalizável e pode ser usada para criar
gráficos básicos, gráficos em 3D e até mesmo animações.
Seaborn
É uma biblioteca de visualização de dados estatísticos baseada em Matplotlib que fornece uma
interface para criar gráficos estatísticos atraentes e informativos.
Plotly
É uma biblioteca de visualização interativa que permite criar gráficos e dashboards interativos. Esta
não será apresentada neste conteúdo, mas não deixe de pesquisá-la.
Uma outra biblioteca usada para a criação de gráficos no Python, embora não tão conhecida como as três
bibliotecas citadas anteriormente é a biblioteca Bokeh, que foi projetada para fornecer gráficos interativos no
navegador web, sem a necessidade de escrever código Javascript.
Matplotlib
Na biblioteca gráfica Matplotlib, não existe uma função demo para mostrar os gráficos, mas você pode
encontrar muitos exemplos e tutoriais no site oficial do Matplotlib, além de outras fontes on-line.
O site do Matplotlib tem diversos exemplos de gráficos que podem ser feitos com ele. Então, você pode
simplesmente carregar um conjunto de dados, copiar o código e colar diretamente no programa ou então
digitar no Python.
Gráficos
Além de servirem como dispositivos de
comunicação, também auxiliam na
conceituação de problemas. Eles facilitam a
análise de dados, pois trazem muito mais
praticidade, principalmente quando os dados
não são discretos, ou seja, quando são
números consideravelmente grandes.
Tabelas
Embora careçam de atrativo visual,
oferecem vantagens em termos de
análise matemática. Frequentemente,
tabelas são utilizadas no processo de
organização, resumo e apresentação de
dados estatísticos.
Vamos apresentar algumas funções dessa biblioteca para criar diferentes tipos de gráficos. Conheça agora os
exemplos retirados do próprio site!
plt.plot(x, y)
Cria um gráfico de linhas simples. É possível adicionar argumentos opcionais para personalizar a linha,
como cor e tipo de linha.
plt.scatter(x, y)
Cria um gráfico de dispersão, útil para visualizar a relação entre duas variáveis contínuas.
plt.bar(x, height)
Cria um gráfico de barras verticais. É possível adicionar argumentos opcionais para personalizar cor,
largura e outros elementos das barras.
plt.hist(x, bins)
Cria um histograma para visualizar a distribuição de uma variável contínua. É possível adicionar
argumentos opcionais para personalizar cor, largura e outros elementos das barras.
plt.boxplot(x)
Cria um gráfico de caixa para visualizar a distribuição de uma variável contínua. É possível adicionar
argumentos opcionais para personalizar cor, largura e outros elementos do gráfico.
Agora vamos colocar a mão na massa e preparar alguns gráficos com Python.
Preparando gráficos com Python
Assista ao vídeo e conheça as principais funções gráficas que podem ser usadas com o Python para preparar
gráficos.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Preparar gráficos com Python é uma tarefa simples, quando usada a biblioteca e função corretas. Essa prática
é de extrema importância para análise estatística e para nós que trabalhamos com análise de dados.
Como já falamos, o Matplotlib é uma das bibliotecas mais utilizadas para essa finalidade. Contudo,
independentemente da biblioteca que usaremos, considere os seguintes pontos básicos necessários para
preparar gráficos de qualidade:
Escolher o tipo de gráfico mais adequado para os dados em questão.
Utilizar cores que facilitem a compreensão dos dados.
Incluir títulos e legendas explicativos.
1.
2.
3.
Garantir que o gráfico seja legível.
Vamos lá, mãos à obra!
Gráfico de barras
Faremos agora gráficos de barras com dados, alterando a cor, o título e os rótulos de escala por meio dos
comandos apropriados. Primeiro, vamos carregar um conjunto de dados no Python. Para essa ação, carregue
um dataframe com as informações presentesno emulador a seguir (clique em EXECUTAR e observe o
resultado no campo CONSOLE do emulador)!
Conteúdo interativo
esse a versão digital para executar o código.
Vamos trocar o nome da linha para tipo de colégio.
python
# adiciona a coluna "Tipo de Escola"
df["Tipo de Escola"] = linhas
print(df)
Agora sim vamos fazer o gráfico de barras da variável "Número de Alunos", por tipo de escola. Primeiro, vamos
importar a biblioteca Matplotlib, em seguida, vamos criar o gráfico de barras.
python
import matplotlib.pyplot as plt
df.plot.bar(x="Tipo de Escola", y="Número de Alunos")
plt.title("Número de Alunos por Tipo de Escola")
plt.xlabel("Tipo de Escola")
plt.ylabel("Número de Alunos")
plt.show()
Confira como ficou o resultado do gráfico:
Número de alunos por tipo de escola
É possível invertermos o gráfico e visualizá-lo. Para isso, usamos o parâmetro orientation com o valor
‘horizontal’ para gerar o gráfico na forma horizontal. Também podemos trocar a cor da linha da seguinte
4.
maneira: color='green'. Além disso, modificamos o título, o rótulo do eixo
x
e do eixo
y
para adequá-los ao novo formato do gráfico.
python
# Invertendo o gráfico
df.plot.barh(x="Tipo de Escola", y="Número de Alunos", orientation='horizontal',
color='green')
plt.title("Número de Alunos por Tipo de Escola")
plt.xlabel("Número de Alunos")
plt.ylabel("Tipo de Escola")
plt.show()
Confira como ficou o resultado do gráfico:
Número de alunos por tipo de escola
Agora vamos alterar o tipo de gráfico! Existem diversas opções de gráficos que podem ser utilizados para
visualizar esses dados, como o gráfico de barras empilhadas. Esse tipo de gráfico é útil para comparar a
distribuição das variáveis entre as diferentes categorias, então conseguiríamos empilhar as barras de "Número
de Professores" e "Número de Alunos" para cada tipo de escola e comparar a distribuição dessas duas
variáveis. Use o seguinte código!
python
ax = df.plot.bar(stacked=True)
plt.title("Distribuição de Número de Alunos e Professores por Tipo de Escola")
plt.xlabel("Tipo de Escola")
plt.ylabel("Número de Indivíduos")
plt.legend(loc='upper left')
plt.show()
Confira como ficou o resultado do gráfico:
Distribuição de número de alunos e professores por tipo de escola
Gráfico de dispersão
É útil para visualizar a relação entre duas variáveis contínuas. Com poucos dados o gráfico não fica tão bom,
mas seria possível plotar um gráfico de dispersão com "Número de Professores" no eixo
x
e "Número de Alunos" no eixo
y
, e verificar se existe alguma relação entre essas duas variáveis. Veja o código!
python
x = df["Número de Professores"]
y = df["Número de Alunos"]
plt.scatter(x, y)
plt.title("Relação entre Número de Professores e Número de Alunos")
plt.xlabel("Número de Professores")
plt.ylabel("Número de Alunos")
plt.show()
Confira como ficou o resultado do gráfico:
Relação entre número de professores e número de alunos
O gráfico de barras empilhadas representou muito melhor as nossas observações. Agora vamos continuar a
olhar mais tipos de gráficos.
Gráfico de setores
Assista ao vídeo e conheça uma apresentação do gráfico de setores utilizando a linguagem Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Podemos criar outros tipos de gráficos dentro do Python. Vamos começar visualizando nossa tabela anterior
como um gráfico de setores, também conhecido como gráfico de pizza ou torta. Muito usado para mostrar a
distribuição percentual de uma variável categórica, seu nome se deve ao formato, pois são circulares e
divididos em fatias, cada uma representando a proporção de uma categoria correspondente.
Nesse exemplo, criamos uma lista de rótulos de categoria (labels) e uma lista de valores numéricos (valores)
correspondentes. Em seguida, usamos a função pie() para criar o gráfico de pizza, passando os valores e
rótulos como argumentos. A opção autopct é usada para mostrar as porcentagens das fatias. A opção
startangle define o ângulo de partida para a primeira fatia do gráfico.
Depois, adicionamos um título ao gráfico usando o método set_title(). Por fim, usamos a função show() para
exibir o gráfico na tela. Para selecionar somente a coluna "Número de Alunos" do dataframe "df", você pode
utilizar o comando df[“Número de Alunos”] e rodar o gráfico.
python
cores = ['tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown',
'tab:pink', 'tab:gray']
dados_alunos = df["Número de Alunos"]
plt.pie(dados_alunos, labels=dados_alunos.index, autopct="%1.1f%%")
plt.title("Distribuição do Número de Alunos por Tipo de Escola")
plt.show()
Confira como ficou o resultado do gráfico:
Distribuição do número de alunos por tipo de escola
Achou que as cores não contribuíram para tornar o gráfico legível? Você pode trocar as cores para vermelho e
verde, por exemplo. Veja!
python
cores = ["red", "green", "blue", "orange"]
dados_alunos = df["Número de Alunos"]
plt.pie(dados_alunos, labels=dados_alunos.index, autopct="%1.1f%%", colors=cores)
plt.title("Distribuição do Número de Alunos por Tipo de Escola")
plt.show()
Confira como ficou o resultado do gráfico:
Distribuição do número de alunos por tipo de escola
Como temos duas variáveis, podemos fazer o gráfico de pizza com o "Número de Alunos" e "Número de
professores" em um único gráfico, um ao lado do outro. Para isso, é possível utilizar a função subplots do
Matplotlib para criar uma figura com duas subplots, uma para cada gráfico. Veja como ficaria o código:
python
fig, axs = plt.subplots(1, 2, figsize=(8, 4))
df.plot.pie(y="Número de Alunos", ax=axs[0], autopct="%1.1f%%", colors=["blue", "orange",
"green", "red"], labels=None)
axs[0].set_title("Número de Alunos por Tipo de Escola")
df.plot.pie(y="Número de Professores", ax=axs[1], autopct="%1.1f%%", colors=["blue",
"orange", "green", "red"], labels=None)
axs[1].set_title("Número de Professores por Tipo de Escola")
plt.tight_layout()
plt.show()
Confira como ficou o resultado do gráfico:
Número de alunos x Número de professores
Assim, podemos comparar as duas variáveis. Com esse código, a função subplots cria uma imagem com uma
linha e duas colunas (1, 2) e retorna dois objetos fig, que representa a figura como um todo, e axs, que é uma
lista contendo as subplots. Depois passamos cada subplot (axs[0] e axs[1]) para a função df.plot.pie, que
plota o gráfico de setores correspondente. É possível definir o formato da porcentagem com a função autopct.
Dica
A função plt.tight_layout() é usada para ajustar automaticamente o espaçamento entre os elementos de
um gráfico, como subplots, rótulos dos eixos, títulos e legendas e ajuda a evitar que os rótulos das
subplots se sobreponham. Além disso, se quisermos tirar os nomes das fatias do gráfico de pizza
podemos usar a opção labels=None, pois já temos a legenda e o gráfico fica mais limpo.
Mesmo que os gráficos de pizza sejam úteis para visualizar rapidamente a proporção de cada categoria, eles
têm algumas limitações. Como no nosso exemplo, é difícil comparar o tamanho das fatias em um gráfico de
pizza e identificar diferenças sutis.
No mais, os gráficos de pizza podem ser enganosos quando as fatias são muito pequenas ou muito grandes,
pois é difícil avaliar a precisão da medida. Por isso, nós, analistas de dados, temos de recorrer a outros tipos
de gráficos, como gráficos de barras ou gráficos de colunas, para apresentar dados de forma mais clara e
precisa.
Histograma
Assista ao vídeo e conheça o processo de criação de apresentações gráficas com histograma utilizando a
linguagem Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Ao ser questionado sobre qual dos gráficos é mais importante para análisede estatística e probabilidade, com
certeza a sua resposta seria histograma. Falaremos agora sobre essa figura gráfica, entre as mais famosas da
estatística.
Histograma é um tipo de gráfico utilizado para representar a distribuição de frequência de uma
variável contínua. É composto por um conjunto de retângulos adjacentes, cuja altura corresponde à
frequência absoluta ou relativa de cada intervalo da variável. No eixo horizontal é representada a
variável em questão, dividida em intervalos, e no eixo vertical é representada a frequência.
O histograma é um instrumento poderosíssimo para analisar e entender a distribuição dos seus dados,
tornando possível identificar assimetria e a presença de outliers. Ele pode ser criado em diversas linguagens
de programação, como Python, entre outras.
Criando o histograma
Para criar um histograma, vamos utilizar uma base de dados entre as várias que o Python já possui.
Exemplificaremos por meio de dados de imóveis na Califórnia. Precisamos carregar esses dados em um
dataframe utilizando alguma biblioteca de manipulação de dados. Então, vamos usar a nossa conhecida
Pandas. Em seguida, podemos utilizar a biblioteca Matplotlib para gerar o histograma. Vamos lá!
python
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_california_housing
# Carregando o conjunto de dados California Housing
data = fetch_california_housing()
# Transformando em um DataFrame
df = pd.DataFrame(data.data, columns=data.feature_names)
Após carregarmos os dados e transformá-los em dataframe, vamos selecionar a variável "Med Inc", que
representa a mediana da renda familiar para cada bloco da Califórnia. Em um histograma, ela certamente
ficaria bem representada, o que tornaria possível tirar conclusões sobra a sua distribuição, já que é uma
medida comum para se avaliar o nível socioeconômico de determinada região ou grupo de pessoas.
O histograma da variável MedInc pode ser gerado usando a função ist.() da biblioteca Matplotlib. Os
parâmetros bins=50 definem o número de barras do histograma. Vamos fazer com 50 e 10 agora.
python
# Gerando o histograma da variável ‘MedInc’
plt.hist(df[‘MedInc’], bins=50)
plt.xlabel(‘MedInc’)
plt.ylabel(‘Frequência’)
plt.show()
Confira como ficou o resultado do gráfico:
Histograma da variável MedInc
Observamos que a distribuição da renda mediana dos residentes é assimétrica. Para confirmar e fazer o teste
de assimetria, podemos usar a biblioteca scipy.stats e função skewtest(). Para testar, basta importar a
biblioteca e chamar a função passando o conjunto MedInc. Vamos ao código!
python
import scipy.stats as stats
# Realizar o teste de assimetria
med_inc = data.data[:, 0]
statistic, pvalue = stats.skewtest(med_inc)
print(f"Statistic: {statistic}")
print(f"P-value: {pvalue}")
A saída do código anterior seria a seguinte:
A estatística do skewtest é baseada na diferença entre a média e a mediana da distribuição. Valor positivo e
negativo indicam, respectivamente, as seguintes assimetrias:
Como o resultado do teste é 69.53 e o valor-p é 0.0, rejeita-se a hipótese nula de que a distribuição é
simétrica. Isso sugere que a distribuição da variável em questão (MedInc) é assimétrica.
Vamos agora variar os bins, que é a largura dos retângulos.
python
# Transformando em um DataFrame
df = pd.DataFrame(data.data, columns=data.feature_names)
# plota o histograma
plt.hist(df['MedInc'], bins=10, width=0.8)
# adiciona título e rótulos dos eixos
plt.title("Histograma dos dados do California Housing")
plt.xlabel("Valor")
plt.ylabel("Frequência")
# exibe o histograma
plt.show()
Confira como ficou o resultado do gráfico:
Assimetria positiva
Cauda longa para a direita.
Assimetria negativa
Cauda longa para a esquerda.
Histograma dos dados do California Housing
O retângulos ficaram bem espaçados, o que não dá ideia de continuidade.
Depois de aprendermos a fazer uma ferramenta muito útil para analisar a distribuição dos dados, vamos para o
próximo gráfico tão importante quanto, o boxplot.
Boxplot
Assista ao vídeo e conheça as apresentações gráficas do boxplot utilizando a linguagem Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Outro instrumento bastante utilizado para resumir os dados graficamente é o diagrama de caixa ou boxplot.
Indicado na análise exploratória, fornece medidas como mínimo, primeiro quartil, segundo quartil (mediana),
terceiro quartil, máximo e possíveis outliers (valores discrepantes).
No segundo quartil, temos 50% dos dados, ou seja, se tivermos 1.000 observações, 500 observações estarão
abaixo desse valor e 500 estarão acima. Acompanhe!
Exemplo de um boxplot feito no software Microsoft Paint
Nesse exemplo, foram criadas três distribuições normais diferentes (com média zero e desvio padrão variando
de 1 a 3), armazenadas em uma lista chamada dados. Em seguida, utilizamos a função plt.boxplot() para criar
o boxplot propriamente dito, passando a lista dados como argumento!
python
import matplotlib.pyplot as plt
import numpy as np
# Gerar dados de exemplo
dados1 = np.random.normal(100, 10, 200)
dados2 = np.random.normal(80, 30, 200)
dados3 = np.random.normal(90, 20, 200)
dados4 = np.random.normal(70, 25, 200)
dados = [dados1, dados2, dados3, dados4]
# Plotar boxplot
plt.boxplot(dados)
# Adicionar títulos e legendas
plt.title('Boxplot de Dados de Exemplo')
plt.ylabel('Valores')
# Exibir gráfico
plt.show()
Confira, a seguir, as principais funções gráficas dos tipos de gráficos, usando o Python!
1
Gráfico de linha
Finalidade: Visualização de tendências e padrões em dados contínuos.
Comando de Python: plt.plot()
Biblioteca: Matplotlib
2
Gráfico de barras
Finalidade: Comparação de valores entre diferentes categorias.
Comando de Python: plt.bar()
Biblioteca: Matplotlib
3
Gráfico de pizzas
Finalidade: Comparação de proporções entre diferentes categorias.
Comando de Python: plt.pie()
Biblioteca: Matplotlib
4
Gráfico de dispersão
Finalidade: Identificação de correlação entre duas variáveis.
Comando de Python: plt.scatter()
Biblioteca: Matplotlib
5 Gráfico de caixa (boxplot)
Finalidade: Identificação de distribuição e outliers em dados.
Comando de Python: plt.boxplot()
Biblioteca: Matplotlib
6
Gráfico de histograma
Finalidade: Identificação de distribuição de frequência em dados contínuos.
Comando de Python: plt.hist()
Biblioteca: Matplotlib
7
Gráfico de densidade
Finalidade: Identificação de distribuição de probabilidade em dados contínuos.
Comando de Python: sns.kdeplot()
Biblioteca: Seaborn
8
Gráfico de heatmap
Finalidade: Identificação de padrões em dados categóricos e numéricos.
Comando de Python: sns.heatmap()
Biblioteca: Seaborn
9
Gráfico de pairplot
Finalidade: Identificação de correlações e distribuições em múltiplas variáveis.
Comando de Python: sns.pairplot()
Biblioteca: Seaborn
10
Gráfico de violinplot
Finalidade: Identificação de distribuição e densidade em dados categóricos.
Comando de Python: sns.violinplot()
Biblioteca: Seaborn
11
Gráfico de linha interativo
Finalidade: Visualização de tendências e padrões em dados contínuos com interatividade.
Comando de Python: sns.violinplot()
Biblioteca: Plotly
Verificando o aprendizado
Questão 1
O Python é uma linguagem de programação poderosa para análise de dados e possui várias bibliotecas
especializadas em análise de dados e visualização de informações. Com poucas linhas de código, é possível
carregar, limpar e manipular dados, realizar análises estatísticas e criar visualizações gráficas para apresentar
as informações de forma clara e intuitiva. Marque a biblioteca que não serve para fazer gráficos.
A
Matplotlib
B
Seaborn
C
Plotly
D
Bokeh
E
NumPy
A alternativa E está correta.
As quatro bibliotecas populares para fazer gráficos em Python são Matplotlib, Seaborn, Plotly e Bokeh. A
biblioteca NumPy não é utilizada para criação de gráficos, esta é voltada para manipulação de arrays
numéricos e computação científica em Python.Questão 2
Um analista financeiro deseja criar um histograma em Python utilizando a biblioteca Matplotlib para visualizar
a distribuição de frequências das vendas mensais de um conjunto de dados. Assinale a opção que apresenta a
forma correta de criar e exibir o histograma com base em conjunto de dados chamados “vendas_mensais”.
A
plt.hist(vendas_mensais); plt.show()
B
plt.histogram(vendas_mensais); plt.show()
C
plt.create_hist(vendas_mensais); plt.show()
D
plt.plot_histogram(vendas_mensais); plt.show()
E
plt.create_histogram(vendas_mensais); plt.show()
A alternativa A está correta.
Para criar um histograma, utilizamos a função plt.hist(), passando como argumento o array de dados que
queremos analisar. Em seguida, utilizamos a função plt.show() para exibir o gráfico gerado. Portanto, a
opção correta para criar e exibir o histograma é plt.hist(vendas_mensais); plt.show().
2. Aplicação a variáveis aleatórias discretas
Distribuição de Bernoulli
Assista ao vídeo e entenda o cálculo de probabilidade usando distribuição de Bernoulli no Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Veremos agora conceitos fundamentais para a utilização de variáveis aleatórias discretas dentro do Python.
Serão utilizadas diversas funções para o cálculo de probabilidades envolvendo diversas distribuições, como
de Bernoulli, de Poisson, binomial, geométrica e hipergeométrica.
A distribuição de Bernoulli é um caso particular da distribuição binomial quando apenas uma única tentativa é
realizada, ou seja,
n
=
1
. Quando isso acontece, temos então uma distribuição de probabilidade discreta de Bernoulli, um
ensaio que tem apenas dois resultados: sucesso ou fracasso.
Vamos entender como trabalhar dentro do Python com a distribuição de Bernoulli. Inicialmente, simularemos
esse lançamento de uma moeda com a função bernoulli(). Essa função é usada para criar um vetor de
números aleatórios que são gerados pela distribuição de Bernoulli. Considere!
Sintaxe
bernoulli (
p
)
Parâmetro
p
= probabilidade de sucesso
Para a função rodar, inicialmente é preciso instalar e carregar scipy.stats import bernoulli.
Antes de irmos para o Python, vamos entender a função pmf (probability mass function), utilizada em
distribuições discretas de probabilidade para calcular a probabilidade de um evento específico ocorrer. Essa
função retorna a probabilidade de que uma variável aleatória discreta assuma determinado valor, ou seja, a
probabilidade de que uma variável aleatória assuma um valor discreto específico em uma distribuição de
probabilidade discreta. Por exemplo, seja a probabilidade de sucesso 0,7, clique em EXECUTAR no emulador a
seguir.
Conteúdo interativo
esse a versão digital para executar o código.
Para entender melhor, veja um exemplo: se você jogar uma moeda para cima, só existem duas possibilidades:
cara ou coroa. Logo, a probabilidade de obter cara é 0,5 e coroa é 0,5. No emulador seguinte, veja como
ficaria no Python clicando em EXECUTAR e observe a saída no campo CONSOLE:
Conteúdo interativo
esse a versão digital para executar o código.
Para calcular o valor esperado e a variância da distribuição de Bernoulli no Python, você pode usar as funções
mean() e var() do mesmo pacote scipy.stats.
Conteúdo interativo
esse a versão digital para executar o código.
Distribuição binomial
Assista ao vídeo e entenda como calcular probabilidade usando distribuição binomial no Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Já que estamos pensando em realizar esse experimento diversas vezes, vamos então usar a distribuição
binomial em vez da Bernoulli. A distribuição binomial tem estes dois parâmetros:
Número de tentativas
n
Probabilidade de sucesso em cada tentativa
p
Nesse caso, utilizaremos a função stats.binom para simular lançamentos para a distribuição binomial.
Considere:
Sintaxe
stats.binom (
n
,
p
)
Parâmetro
n
= número total de observações e/ou
elementos
p
= probabilidade de sucesso
Essa sintaxe gera a distribuição binomial. Se quisermos achar a probabilidade, temos que fazer
distribuicao.pmf(x), assim como fizemos com a Bernoulli.
Existem outros pacotes do Python para modelar probabilidade da variável aleatória, mas no exemplo a seguir
vamos utilizar a biblioteca scipy.stats. Analisaremos agora uma questão para entender a sua utilização.
Um aluno marca, ao acaso, as respostas em um teste com 20 questões de múltipla escolha e 5 alternativas
por questão. Qual é a probabilidade de ele acertar exatamente 8 questões?
•
•
A quantidade de tentativas é 20, a probabilidade de sucesso é e a quantidade de sucesso é
8. Poderíamos também estar interessados na probabilidade de obter 8 ou menos sucessos. Ou até
poderíamos querer saber a média (valor esperado) e a variância dessa distribuição. Para resolver essa
questão na mão, ou seja, fazendo todos as contas no papel, teríamos de fazer vários cálculos complicados e
extensos utilizando combinações e fatoriais. No Python, isso é muito simples, clique em EXECUTAR no
emulador a seguir e observe o resultado!
Conteúdo interativo
esse a versão digital para executar o código.
Somente precisamos indicar na função o primeiro argumento, que é o total de acertos, depois o total de
questões e, por fim, a probabilidade de acerto. Como são 5 opções de resposta, o estudante tem 20% de
acerto em cada questão.
O resultado encontrado foi de 0.02216088. Esse valor é exato, não importa quantas vezes você rode essa
programação. Isso ocorre porque não estamos simulando os dados, e sim buscando o valor real da
probabilidade. Logo, esse estudante tem cerca de 2,2% de acertar exatamente 8 questões em 20, chutando
todas as questões. Veja como a probabilidade é baixa, por isso é pouco provável ser aprovado em um
concurso usando meramente a sorte.
Distribuição geométrica
Assista ao vídeo e entenda como calcular a probabilidade usando distribuição geométrica no Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
A distribuição do tempo de espera é outra importante classe de problemas associados com a quantidade de
tentativas que se leva para a ocorrência de um evento específico de interesse. Dentro dessa classe, uma das
distribuições utilizadas é a distribuição geométrica, usada para descrever a probabilidade de um ensaio de
Bernoulli (sucesso ou fracasso) ocorrer em uma sequência de tentativas independentes até que o primeiro
sucesso seja obtido.
São exemplos desse tipo de problema o lançamento de uma moeda, repetidamente, até que seja observada a
face “cara” ou, ainda, o arremesso de uma bola de basquete na cesta repetidamente até o acerto.
Suponha que iremos conduzir repetidos experimentos de Bernoulli observando as falhas e sucessos, sendo
X
o número de falhas antes do sucesso. Nosso interesse é calcular a probabilidade de se obter um
sucesso, após
n
fracassos ocorrerem.
No Python, aplicamos a função geom() para resolver problemas relacionados à probabilidade da distribuição
geométrica. Considere!
Sintaxe
stats.geom (
x
,
p
)
Parâmetro
x =
número de fracassos
P =
probabilidade de sucesso
Suponha que a probabilidade de uma pessoa acertar um alvo de dardos é de 0,3. Qual é a probabilidade de
que ela precise jogar exatamente 5 dardos antes de acertar o alvo pela primeira vez?
Nesse exemplo, cada tentativa de jogar um dardo é um evento Bernoulli, com probabilidade de sucesso
. Como estamos interessados no número de tentativas até o primeiro sucesso, estamos lidando com
uma distribuição geométrica. A probabilidade de que a primeira tentativa bem-sucedida ocorra na quinta
tentativa é:
Portanto, a probabilidade de que a pessoa precise jogar exatamente 5 dardos antes de acertar o alvo pela
primeira vez é de aproximadamente 0,0729 ou 7,29%. Confira, clicando em EXECUTAR no emulador a seguir.
Conteúdo interativo
esse a versão digital para executar o código.
Na função anterior, dizemos que são necessários 4 fracassos para que o 5º lançamento seja um sucesso e
isso tenha probabilidade de 0,3 de ocorrer. Agora se mudássemos a pergunta, com as informações do
exemplo, qual a probabilidade de acertar o dardo no alvo no máximo em duas tentativas? A probabilidade de
acertar o alvo pela primeira vez é dada por:
A probabilidade de acertar o alvo pela segunda vez, isto é, errar o primeiro e acertar o segundo, é dada por:
A probabilidade de acertar o alvo na primeira ou na segunda tentativa é dada pela soma dessas
probabilidades:
Confira, clicando em EXECUTAR no emulador a seguir.
Conteúdo interativo
esse a versão digital para executar o código.
Portanto, a probabilidade de acertar o dardo no alvo precisando de no máximo duas tentativas é de 0,51.
Distribuição hipergeométrica
Assista ao vídeo e entenda como é feito o cálculo de probabilidade usando distribuição hipergeométrica no
Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Outra distribuição bastante utilizada para dados discretos é a hipergeométrica. Nesse caso, o modelo
probabilístico é apropriado para a seleção sem reposição de uma amostra de
n
itens de um lote de
N
itens, dos quais
D
já são defeituosos ou não conformes. Nessas aplicações,
x
representa o número de itens não conformes encontrados na amostra. Dentro do Python, faremos da
seguinte forma:
Sintaxe
stats.hypergeom(
x
,
m
,
n
,
k)
Parâmetro
x =
número de amostras selecionadas não conformes
m =
número de itens defeituosos ou não conformes
n =
número de itens conformes
k =
número de amostras selecionadas
Agora vamos para um exemplo prático: uma empresa deseja avaliar a satisfação dos clientes em relação a um
produto. A população de clientes é de 100 pessoas e 20% delas são consideradas fiéis. A empresa seleciona
aleatoriamente uma amostra de 10 clientes para realizar a pesquisa. Qual é a probabilidade de obter
exatamente 3 clientes fiéis na amostra? E qual a probabilidade de obter 3 ou menos clientes fiéis na amostra?
Além disso, calcule a média e a variância da distribuição hipergeométrica utilizada nesse estudo. Use o
módulo scipy.stats do Python para realizar os cálculos. Confira, clicando em EXECUTAR no emulador a seguir!
Conteúdo interativo
esse a versão digital para executar o código.
Portanto, a probabilidade de obter exatamente 3 clientes fiéis na amostra é de 20,92%. A probabilidade de
obter 3 ou menos clientes fiéis na amostra é de 89,04%. Além disso, a média e a variância da distribuição
hipergeométrica utilizada nesse estudo serão de 2 e 1,45 clientes, respectivamente.
Distribuição de Poisson
Assista ao vídeo e entenda o cálculo de probabilidade usando distribuição de Poisson com o software Python!
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
A distribuição de Poisson é muito útil no controle estatístico de qualidade. Na estatística, a partir de uma
distribuição, você pode alterar alguns parâmetros e simplesmente encontrar outra distribuição. Por exemplo, a
dedução do modelo de Poisson é dada a partir do modelo binomial para o caso de infinitas tentativas. Assim, a
distribuição de Poisson é um caso especial da binomial que se desenvolve quando o número de tentativas
aumenta indefinidamente.
A distribuição de Poisson é muito conhecida e utilizada para investigar “eventos raros”. Se você quiser, por
exemplo, estudar a probabilidade de infartos por dia em determinada cidade, usará a distribuição de Poisson,
porque a incidência é muito pequena em relação ao total de pessoas.
Comentário
Uma situação real que envolveu a utilização da Poisson ocorreu no artigo original de criação da moeda
digital Bitcoin. Nela, o autor demonstrou como o ataque de hackers na rede era um evento raro e poderia
ser modelado com essa distribuição.
Outra aplicação típica da distribuição de Poisson é no controle estatístico de qualidade para modelar o número
de defeitos por unidade de produto.
Como estamos trabalhando com um dado de contagem (números de acidentes), usaremos a distribuição de
Poisson para a modelagem. Dentro do Python, usaremos a função poisson (
x
,
λ
) para encontrarmos a função de densidade da Poisson no ponto especificado ou a função
poisson.pmf() para encontrarmos a probabilidade de
X
menor que certo ponto na acumulada. Além disso, o parâmetro
λ
reflete a média dos dados. Considere!
Sintaxe
stats.poisson.pmf(
x
,
λ
)
Parâmetro
x =
número de defeitos, acidentes, não
conformidade
λ =
média dos dados
Vejamos um exemplo: em uma farmácia, em média, 3 clientes solicitam um remédio para dor de cabeça por
hora. Qual é a probabilidade de exatamente 2 clientes solicitarem esse remédio em uma hora específica?
Confira no emulador a seguir!
Conteúdo interativo
esse a versão digital para executar o código.
O resultado será aproximadamente 0,224. Isso significa que a probabilidade de ocorrerem exatamente 2
eventos em uma distribuição de Poisson com média 3 é de cerca de 22,4%. Na prática, se quisermos gerar
uma distribuição de Poisson, podemos usar o seguinte código:
Conteúdo interativo
esse a versão digital para executar o código.
O exemplo anterior gerou uma distribuição de Poisson com média ou lambda = 3 e, usando o NumPy, foram
exibidos os primeiros 20 valores da distribuição. Assim, esse exemplo diz que cada elemento do poisson_dist
representa o número de ocorrências em determinado período, com base na média lambda especificada.
Verificando o aprendizado
Questão 1
A ouvidoria de um dos maiores bancos do Brasil recebe em média 50 denúncias por hora. Qual é a
probabilidade de que a ouvidoria receba 70 chamadas em uma hora, se a distribuição do número de
chamadas segue uma variável aleatória discreta Poisson?
A
0,030B
0,008
C
0,001
D
0,068
E
0,086
A alternativa C está correta.
Podemos modelar a situação como uma variável aleatória discreta Poisson, em que a média de reclamações
por hora é λ = 50 e estamos interessados em saber a probabilidade de receber exatamente 70 reclamações
em uma hora. No Python, temos:
from scipy.stats import poisson
lambda_ = 50
prob_70_chamadas = poisson.pmf(70, lambda_)
round(prob_70_chamadas, 3))
A probabilidade de receber exatamente 70 reclamações em uma hora é de: 0,001.
Questão 2
A distribuição binomial é uma distribuição de probabilidade discreta que modela o número de sucessos em
determinado número de tentativas independentes, cada uma com uma probabilidade de sucesso fixa. Qual é a
função de probabilidade da variável aleatória discreta binomial no Python?
A
binom.pmf
B
binom.cdf
C
binom.mean
D
binom.var
E
binom.std
A alternativa A está correta.
A função binom.pmf() do pacote SciPy em Python é usada para calcular a função de probabilidade de uma
variável aleatória discreta binomial. Essa função é usada para calcular a probabilidade de obter
k
sucessos em
n
tentativas independentes, com uma probabilidade de sucesso
p.
3. Aplicação a variáveis aleatórias contínuas
Distribuição uniforme
Assista ao vídeo e entenda o cálculo de probabilidade usando distribuição uniforme com o software Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Agora veremos conceitos fundamentais para a utilização de variáveis aleatórias contínuas dentro do software
Python e utilizaremos diversas funções para o cálculo de probabilidades envolvendo as seguintes
distribuições:
Uniforme
Exponencial
Normal
A primeira aplicação de uma variável aleatória contínua que veremos dentro do software Python será a
uniforme. Essa distribuição é uma das mais simples e utilizadas dentro do universo da estatística. A ideia é ter
os valores de probabilidade constantes, ou seja, sempre iguais.
Imagine o lançamento de um dado não viciado com seis faces. Os resultados possíveis são números de 1 a 6.
A probabilidade de se obter qualquer um desses resultados é sempre a mesma, nesse caso, 1/6. Essa é a base
da distribuição uniforme.
A distribuição uniforme é muito utilizada na geração de números aleatórios. O default dessa função no Python
é gerar números dentro do intervalo [0,1]. Assim, temos:
Sintaxe
uniform (
n
, min = 0, max = 1)
Parâmetro
n
= quantidade de números a serem simulados
min = mínimo dos dados
max = máximo dos dados
Portanto, o default é uma distribuição uniforme no intervalo [0, 1] e os argumentos opcionais são mínimo e
máximo. Se quisermos simular 10 números entre 0 e 1, basta rodarmos no Python:
Conteúdo interativo
esse a versão digital para executar o código.
•
•
•
Colocando em prática os códigos acima, suponha que um dado seja jogado repetidamente e que o resultado
de cada jogada seja um número inteiro entre 1 e 6, com probabilidades iguais para cada resultado. Nesse
caso, podemos modelar a distribuição dos resultados como uma distribuição uniforme discreta. Podemos usar
o código a seguir para gerar mil resultados de um dado.
Conteúdo interativo
esse a versão digital para executar o código.
Esses são os 10 primeiros valores gerados observando a face de um dado.
Distribuição exponencial
Assista ao vídeo e entenda o cálculo de probabilidade usando distribuição exponencial, com demonstração de
uso da linguagem Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
A distribuição exponencial é uma das distribuições contínuas mais amplamente utilizadas. É frequentemente
usada para modelar o tempo decorrido entre os eventos, ou seja, é empregada para medir o tempo esperado
para que um evento ocorra.
Podemos encontrar uma relação muito interessante entre a distribuição de Poisson e a exponencial!
Para entender a conexão entre os dois tipos de distribuição, imagine uma variável aleatória com distribuição
de Poisson. Nesse caso, temos a contagem do número de ocorrências em um intervalo. Suponha agora que
nosso interesse seja verificar a probabilidade do tempo transcorrido entre duas ocorrências consecutivas.
Essa variável de tempo decorrido é considerada uma variável aleatória exponencial. Assim, dentro de um
mesmo problema, podemos trabalhar o número de ocorrências com a Poisson e o tempo entre as ocorrências
com a exponencial.
Comentário
Podemos considerar diversas situações em que a distribuição exponencial é aplicada. Na física, é usada
para medir o decaimento radioativo. Na engenharia, é utilizada para medir o tempo associado ao
recebimento de uma peça defeituosa em uma linha de montagem. Nas finanças, é frequentemente usada
para medir a probabilidade da próxima queda para uma carteira de ativos financeiros. No comércio, é
utilizada para medir o tempo até que um novo cliente entre na loja. Também pode ser usada para medir a
probabilidade de incorrer em determinado número de inadimplências dentro de um período especificado.
O parâmetro mais importante da distribuição exponencial é o
λ
. Porém, dentro do Python não indicaremos o
λ
na função, e sim a taxa de ocorrência que é representada como
λ
. Portanto, temos de nos lembrar disso no momento da utilização da função. Importante lembrar que
a taxa de ocorrência é (1/λ) e não λ.
Aplicação da distribuição exponencial
Vamos para o nosso exemplo prático! Suponha que uma loja de e-market deseja estimar a probabilidade de
um cliente fazer uma compra em até 3 minutos após acessar a página inicial da sua loja. Você pode usar a
distribuição exponencial para modelar o tempo que os clientes levam para fazer uma compra depois de
acessarem a sua loja. A média lambda é a taxa de chegada de eventos por unidade de tempo.
No exemplo da loja, precisamos o número médio de clientes que acessam a loja por minuto. Suponha que você
tenha estimado que, em média, 2 clientes acessam a loja por minuto, daí vale a regra: a média lambda será 2 e
lambda = 1/2 no código. Clique em EXECUTAR no emulador a seguir.
Conteúdo interativo
esse a versão digital para executar o código.
Distribuição normal
Assista ao vídeo e confira uma apresentação do cálculo de probabilidade usando distribuição normal, com
demonstração dessa aplicação utilizando a linguagem Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Após estudarmos algumas distribuições de variáveis discretas e contínuas, vamos agora abordar a
distribuição mais famosa e importante da estatística: a distribuição normal ou também chamada de gaussiana.
Grande parte das outras distribuições é derivada da distribuição normal. Quando o número de observações
aumenta, a distribuição gaussiana serve como aproximação para o cálculo de outras distribuições. A forma
exata da distribuição normal (curva em formato de sino) é definida por uma função que possui apenas dois
parâmetros:
Média
μ
Variância
σ2
Se você utilizar alguma das funções já apresentadas e não colocar o valor da média e do desvio padrão, o
Python vai entender que sua média será 0 e seu desvio padrão será 1. Primeiro, vamos gerar números que
seguem a distribuição e, depois, construir um histograma para termos certeza do objeto gerado.
Aplicação da distribuição normal
É hora de colocar em prática o que aprendemos! Suponha que você é um analista financeiro e precisa estimar
a probabilidade de um investimento ter retorno superior a R$ 10 mil em um mês. Você sabe que o investimento
tem uma distribuiçãonormal com média de R$ 8 mil, com um desvio padrão de R$ 2 mil. Vejamos então qual
seria a probabilidade desse retorno ser superior a R$ 10 em um mês. Clique em EXECUTAR no emulador a
seguir.
Conteúdo interativo
esse a versão digital para executar o código.
Usamos a função norm.cdf (cumulative distribution function), pois queríamos calcular a probabilidade a partir
da função de distribuição acumulada
P
(
X
≤
x
)
da distribuição normal padrão.
Caso queira calcular a função de densidade de probabilidade, use a função norm.pdf (probability density
function), para fazer um gráfico, por exemplo. Essa função calcula a função de densidade de probabilidade de
uma distribuição normal com média (μ) e desvio padrão (σ) e descreve a probabilidade relativa de um valor
ocorrer em uma distribuição contínua. A função norm.pdf é usada principalmente para modelar a distribuição
dos dados, gerar gráficos de densidade de probabilidade e analisar a probabilidade de um evento ocorrer
dentro de um intervalo específico.
Atenção
As funções norm.cdf e norm.pdf são importantes para a análise de dados que seguem uma distribuição
normal, mas têm propósitos diferentes. A função norm.pdf é útil para analisar e visualizar a densidade de
probabilidade em uma distribuição contínua, enquanto a norm.cdf é usada para calcular a probabilidade
acumulada, intervalos de confiança e percentis.
Veja um exemplo de densidade usando norm.pdf. Vamos criar um gráfico da distribuição normal para a altura
de pessoas adultas, com média μ = 170 cm e desvio padrão σ = 100cm. Usaremos a função de densidade de
probabilidade da distribuição normal e a biblioteca matplotlib.pyplot para criar o gráfico. Confira o código em
Python!
python
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
# Parâmetros da distribuição normal
media = 170
desvio_padrao = 10
# Intervalo de alturas para o cálculo da densidade de probabilidade
alturas = np.linspace(media - 4 * desvio_padrao, media + 4 * desvio_padrao, 1000)
# Cálculo da densidade de probabilidade usando a função norm.pdf
densidade_probabilidade = norm.pdf(alturas, loc=media, scale=desvio_padrao)
# Criação do gráfico
plt.plot(alturas, densidade_probabilidade)
plt.xlabel('Altura (cm)')
plt.ylabel('Densidade de probabilidade')
plt.title('Distribuição normal para a altura de pessoas adultas')
plt.grid(True)
plt.show()
Esse código gera um gráfico da função de densidade normal. Observe!
Distribuição normal para a altura de pessoas adultas
Além dessas, é possível fazer várias análises com a distribuição normal.
Verificando o aprendizado
Questão 1
O tempo de vida dos aparelhos eletrônicos está ficando cada vez menor. Suponha que o tempo de vida de um
celular moderno segue uma distribuição exponencial com média de 2 anos. Qual é a probabilidade de que um
celular selecionado ao acaso tenha tempo de vida inferior a 1 ano?
A
0,2231
B
0,8975
C
0,2642
D
0,3935
E
0,9975
A alternativa D está correta.
Podemos modelar a situação como uma variável aleatória contínua exponencial, em que a média é λ = 1/2,
já que a média é o inverso do parâmetro λ da distribuição. No Python temos:
from scipy.stats import expon
lambda_ = 1/2
prob_tempo_vida_1_ano = expon.cdf(1, scale=1/lambda_)
round(prob_tempo_vida_1_ano, 4))
A probabilidade de o celular ter tempo de vida inferior a 1 ano é de: 0,3935.
Questão 2
A distribuição normal é uma das distribuições mais utilizadas e mais comuns em estatística e probabilidade.
Ela pode ser modelada no Python usando a biblioteca SciPy. Qual é a função de densidade de probabilidade
da distribuição normal no Python?
A
norm.pdf
B
norm.cdf
C
norm.mean
D
norm.var
E
norm.std
A alternativa A está correta.
A função norm.pdf() do pacote SciPy em Python é usada para calcular a função de densidade de
probabilidade de uma variável aleatória contínua normal. A norm.cdf (cumulative distribution function) é
usada para calcular a probabilidade a partir da função de distribuição acumulada, por isso está errada. As
outras alternativas não se referem a uma função.
4. Conclusão
Considerações finais
Tivemos a oportunidade de conhecer o software mais utilizado para análise de dados, estatística e
probabilidade. Vimos a importância do Python na análise exploratória de dados, na construção gráfica e no
cálculo de probabilidades.
Primeiro, foram abordados alguns aspectos sobre o programa. Aprendemos como instalar, carregar e utilizar
pacotes introdutórios de estatística. Vimos também que, além de livre, o Python pode ser alimentado com
bibliotecas do mundo inteiro e que esse software cresce cada vez mais em termos de usuários.
Depois, analisamos a parte gráfica. Construímos, por exemplo, histogramas, gráficos de barras, gráficos de
setores e boxplot. Utilizamos também diversas opções gráficas e aprendemos a acrescentar parâmetros
gráficos para torná-los mais completos e mais atrativos visualmente.
Por fim, trabalhamos no Python algumas distribuições de variáveis discretas e contínuas. Aprendemos como
calcular probabilidade por meio das distribuições de probabilidades a partir de diversas variáveis aleatórias.
O software Python é uma ferramenta utilizada mundialmente na estatística e na ciência de dados, por isso é
importante aprender utilizá-lo na análise exploratória de dados e no cálculo de probabilidades.
Explore +
Existem várias bibliotecas em Python que podem ser usadas para criar gráficos e visualizações, cada uma
com sua própria documentação e referências. Aqui estão alguns exemplos de bibliotecas populares de
visualização de dados em Python:
Matplotlib
Seaborn
Plotly
Bokeh
ggplot
Referências
ALBERTO, P.; MORETTIN, S. Estatística e ciência de dados. Rio de Janeiro: LTC, 2022.
BONAFINI, C. F. Probabilidade e estatística. São Paulo: Pearson Education do Brasil, 2015.
MCKINNEY, W. Python for data analysis: data wrangling with pandas, NumPy, and IPython. 2. ed. Sebastopol,
CA, EUA: O'Reilly Media, 2017.
MORETTIN, P. A.; BUSSAB, W. de O. Estatística básica: probabilidade e inferência -volume único. São Paulo:
Pearson Prentice Hall, 2010.
•
•
•
•
•
Python aplicado à estatística e probabilidade
1. Itens iniciais
Propósito
Preparação
Objetivos
Introdução
Conteúdo interativo
1. Preparação de gráficos com Python
Apresentação das bibliotecas gráficas com Python
Conteúdo interativo
Histogramas
Gráfico de dispersão
Boxplots
Heatmaps
Matplotlib
Seaborn
Plotly
Matplotlib
plt.plot(x, y)
plt.scatter(x, y)
plt.bar(x, height)
plt.hist(x, bins)
plt.boxplot(x)
Preparando gráficos com Python
Conteúdo interativo
Gráfico de barras
Conteúdo interativo
Gráfico de dispersão
Gráfico de setores
Conteúdo interativo
Dica
Histograma
Conteúdo interativo
Criando o histograma
Boxplot
Conteúdo interativo
Gráfico de linha
Gráfico de barras
Gráfico de pizzas
Gráfico de dispersão
Gráfico de caixa (boxplot)
Gráfico de histograma
Gráfico de densidade
Gráfico de heatmap
Gráfico de pairplot
Gráfico de violinplot
Gráfico de linha interativo
Verificando o aprendizado
2. Aplicação a variáveis aleatórias discretas
Distribuição de Bernoulli
Conteúdo interativo
Sintaxe
Parâmetro
Conteúdo interativo
Conteúdo interativo
Conteúdo interativo
Distribuição binomial
Conteúdo interativo
Sintaxe
Parâmetro
Conteúdo interativo
Distribuição geométrica
Conteúdo interativo
Sintaxe
Parâmetro
Conteúdo interativo
Conteúdo interativo
Distribuição hipergeométrica
Conteúdo interativo
Sintaxe
Parâmetro
Conteúdo interativo
Distribuição de Poisson
Conteúdo interativo
Comentário
Sintaxe
Parâmetro
Conteúdo interativo
Conteúdo interativo
Verificando o aprendizado
3. Aplicação a variáveis aleatórias contínuas
Distribuição uniforme
Conteúdo interativoSintaxe
Parâmetro
Conteúdo interativo
Conteúdo interativo
Distribuição exponencial
Conteúdo interativo
Comentário
Aplicação da distribuição exponencial
Conteúdo interativo
Distribuição normal
Conteúdo interativo
Média
Variância
Aplicação da distribuição normal
Conteúdo interativo
Atenção
Verificando o aprendizado
4. Conclusão
Considerações finais
Explore +
Referências