Conceitos Estatísticos de Amostragem e Distribuições de Probabilidade

Neste artigo/notebook, veremos alguns conceitos sobre Amostragem e Probabilidade aplicados de forma prática com esclarecimentos de conceitos estatísticos diretamente em cada um dos exemplos. Alguns dos conceitos são:

  1. Distribuições de Probabilidade Binomial, Poisson e Normal;
  2. Amostragem Aleatória Simples, Estratificada e por Conglomerados;
  3. Teorema do Limite Central;
  4. Níveis de Confiança e Significância;
  5. Cálculo do Tamanho de amostras.

Exemplo 1

Em um concurso para preencher uma vaga de cientista de dados temos um total de 10 questões de múltipla escolha com 3 alternativas possíveis em cada questão. Cada questão tem o mesmo valor.

Suponha que um candidato resolva se aventurar sem ter estudado absolutamente nada (quem não?). Ele resolve fazer a prova de olhos vendados e chutar todas as respostas.

Assumindo que a prova vale 10 pontos e a nota de corte seja 5, obtenha a probabilidade deste candidato acertar 5 questões e também a probabilidade deste candidato passar para a próxima etapa do processo seletivo.

Aqui de cara já nos deparamos com um conceito comum, um evento binomial, que é caracterizado pela possibilidade de ocorrência de apenas duas categorias. Estas categorias somadas representam todo o espaço amostral, sendo também mutuamente excludentes, ou seja, a ocorrência de uma implica não ocorrência da outra.

Em análises estatísticas o uso mais comum da distribuição binomial é na solução de problemas que envolvem situações de sucesso e fracasso.

Onde:

p = probabilidade de sucesso
q = (1-p) probabilidade de fracasso
n = número de eventos estudados
k = número de eventos desejados que tenham sucesso

O que é um experimento Binomial?

  1. Realização de n ensaios idênticos.
  2. Os ensaios são independentes.
  3. Somente dois resultados são possíveis, exemplo: Verdadeiro ou falso; Cara ou coroa; Sucesso ou fracasso.
  4. A probabilidade de sucesso é representada por p a de fracasso por q. Estas probabilidades não se modificam de ensaio para ensaio.

Média da distribuição binomial

O valor esperado ou a média da distribuição binomial é igual ao número de experimentos realizados multiplicado pela chance de ocorrência do evento.

Média da Distribuição Binomial = Tentativas X Probabilidade de Ocorrência

Desvio padrão da distribuição binomial

O desvio padrão é o produto entre o número de experimentos, a probabilidade de sucesso e a probabilidade de fracasso.

Desvio Padrão da Distribuição Binomial = Raiz (Tentativas * Probabilidade Sucesso * Probabilidade Fracasso)

Importando biblioteca Scipy

https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.comb.html

from scipy.special import comb

Número de combinações de objetos, tomados k a cada vez, é:

Numéro de combinações k em n número disponíveis

Em um volante de loteria da Mega Sena temos um total de 60 números para escolher onde a aposta mínima é de seis números. Para descobrirmos a probabilidade de ganhar na loteira, precisamos saber quantas combinações de seis números podem ser formadas com os 60 números disponíveis.

from scipy.stats import combcombinacoes = comb(60, 6)
combinacoes
# A probabilidade é uma em 50.063.860probabilidade = 1 / combinacoes
print('%0.15f' % probabilidade)
0.000000019974489

Em um concurso para preencher uma vaga de cientista de dados temos um total de 10 questões de múltipla escolha com 3 alternativas possíveis em cada questão. Cada questão tem o mesmo valor. Suponha que um candidato resolva se aventurar sem ter estudado absolutamente nada. Ele resolve fazer a prova de olhos vendados e chutar todas as respostas. Assumindo que a prova vale 10 pontos e a nota de corte seja 5, obtenha a probabilidade deste candidato acertar 5 questões e também a probabilidade deste candidato passar para a próxima etapa do processo seletivo.

n = 10

Os ensaios são independentes?

Sim. A opção escolhida em uma questão não influencia em nada a opção escolhida em outra questão.

Sim. O candidato tem duas possibilidades, ACERTA ou ERRAR uma questão.

numero_de_alternativas_por_questao = 3
p = 1 / numero_de_alternativas_por_questao
# 0.3333333333333333
q = 1 - p
# 0.6666666666666667
k = 5

Importando bibliotecas

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.binom.htm

from scipy.stats import binom

Solução com Scipy

probabilidade = binom.pmf(k, n, p)
print('%0.8f' % probabilidade)
#0.13656455
Probabilidade de 13.65%

Obter a probabilidade de o candidato passar

# 3 maneira de obter a probabilidade do candidato passarbinom.pmf(5, n, p) + binom.pmf(6, n, p) + binom.pmf(7, n, p) + binom.pmf(8, n, p) + binom.pmf(9, n, p) + binom.pmf(10, n, p)
#0.21312808006909525
binom.pmf([5, 6, 7, 8, 9, 10], n, p).sum()
# 0.21312808006909525
binom.sf(4, n, p)
# 0.21312808006909517

Uma cidade do interior realiza todos os anos uma gincana para arrecadar fundos para o hospital da cidade. Na última gincana se sabe que a proporção de participantes do sexo feminino foi de 60%. O total de equipes, com 12 integrantes, inscritas na gincana deste ano é de 30. Com as informações acima responda: Quantas equipes deverão ser formadas por 8 mulheres?

Proporção de participantes do sexo feminino:

p = 0.6n = 12k = 8probabilidade = binom.pmf(k, n, p)
print('%0.8f' % probabilidade)
# 0.21284094
equipes = 30 * probabilidade
equipes
# 6.385228185599988 equipes

Um restaurante recebe em média 20 pedidos por hora. Qual a chance de que, em determinada hora escolhida ao acaso, o restaurante receba 15 pedidos?

É empregada para descrever o número de ocorrências em um intervalo de tempo ou espaço específico. Os eventos são caracterizados pela possibilidade de contagem dos sucessos, mas a não possibilidade de contagem dos fracassos.

Como exemplos de processos onde podemos aplicar a distribuição de Poisson temos a determinação do número de clientes que entram em uma loja em determinada hora, o número de carros que chegam em um drive-thru de uma lanchonete na hora do almoço, a determinação do número de acidentes registrados em um trecho de estrada etc.

Onde:

e = constante cujo valor aproximado é 2,718281828459045
u = representa o número médio de ocorrências em um determinado intervalo de tempo ou espaço
k = número de sucessos no intervalo desejado

2. Experimento Poisson

  1. A probabilidade de uma ocorrência é a mesma em todo o intervalo observado.
  2. O número de ocorrências em determinado intervalo é independente do número de ocorrências em outros intervalos.
  3. A probabilidade de uma ocorrência é a mesma em intervalos de igual comprimento.

Média da distribuição Poisson

Desvio padrão da distribuição Poisson

Importando bibliotecas

http://www.numpy.org/

import numpy as npnp.e# 2.718281828459045

Um restaurante recebe em média 20 pedidos por hora. Qual a chance de que, em determinada hora escolhida ao acaso, o restaurante receba 15 pedidos?

Qual o número médio de ocorrências por hora (u)?

media = 20

Qual número de ocorrências que queremos obter no intervalo (k)?

k = 15

Solução

Importando bibliotecas

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.poisson.html

from scipy.stats import poissonprobabilidade = poisson.pmf(k, media)print('%0.8f' % probabilidade)# 0.05164885

Em um estudo sobre as alturas dos moradores de uma cidade verificou-se que o conjunto de dados segue uma distribuição aproximadamente normal, com média 1,70 e desvio padrão de 0,1. Com estas informações obtenha o seguinte conjunto de probabilidades:

A. probabilidade de uma pessoa, selecionada ao acaso, ter menos de 1,80 metros.

B. probabilidade de uma pessoa, selecionada ao acaso, ter entre 1,60 metros e 1,80 metros.

C. probabilidade de uma pessoa, selecionada ao acaso, ter mais de 1,90 metros.

Características importantes

  1. É simétrica em torno da média;
  2. A área sob a curva corresponde à proporção 1 ou 100%;
  3. As medidas de tendência central (média, mediana e moda) apresentam o mesmo valor;
  4. Os extremos da curva tendem ao infinito em ambas as direções e, teoricamente, jamais tocam o eixo 𝑥x;
  5. O desvio padrão define o achatamento e largura da distribuição. Curvas mais largas e mais achatadas apresentam valores maiores de desvio padrão;
  6. A distribuição é definida por sua média e desvio padrão;
  7. A probabilidade sempre será igual à área sob a curva, delimitada pelos limites inferior e superior.

Onde:

𝑥 = variável normal

𝜎 = desvio padrão

𝜇 = média

A probabilidade é obtida a partir da área sob a curva, delimitada pelos limites inferior e superior especificados. Um exemplo pode ser visto na figura abaixo.

Para obter a área acima basta calcular a integral da função para os intervalos determinados. Conforme equação abaixo:

Onde:

𝑥 = variável normal

𝜎 = desvio padrão

𝜇 = média

𝐿𝑖= limite inferior

𝐿𝑠 = limite superior

Tabelas padronizadas

As tabelas padronizadas foram criadas para facilitar a obtenção dos valores das áreas sob a curva normal e eliminar a necessidade de solucionar integrais definidas.

Para consultarmos os valores em uma tabela padronizada basta transformarmos nossa variável em uma variável padronizada 𝑍.

Esta variável 𝑍 representa o afastamento em desvios padrões de um valor da variável original em relação à média.

Onde:
𝑥 = variável normal com média 𝜇 e desvio padrão 𝜎
σ = desvio padrão
𝜇 = média

Construindo tabela normal padronizada

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html

import pandas as pd
import numpy as np
from scipy.stats import norm
tabela_normal_padronizada = pd.DataFrame(
[],
index=["{0:0.2f}".format(i / 100) for i in range(0, 400, 10)],
columns = ["{0:0.2f}".format(i / 100) for i in range(0, 10)])
for index in tabela_normal_padronizada.index:
for column in tabela_normal_padronizada.columns:
Z = np.round(float(index) + float(column), 2) tabela_normal_padronizada.loc[index, column] ={0:0.4f}".format(norm.cdf(Z))
tabela_normal_padronizada.rename_axis('Z', axis = 'columns', inplace = True)tabela_normal_padronizada

A tabela acima fornece a área sob a curva entre −∞−∞ e 𝑍Z desvios padrão acima da média. Lembrando que por se tratar de valores padronizados temos 𝜇=0μ=0.

Exemplo: Qual sua altura?

Em um estudo sobre as alturas dos moradores de uma cidade verificou-se que o conjunto de dados segue uma distribuição aproximadamente normal, com média 1,70 e desvio padrão de 0,1. Com estas informações obtenha o seguinte conjunto de probabilidades:

A. probabilidade de uma pessoa, selecionada ao acaso, ter menos de 1,80 metros.

B. probabilidade de uma pessoa, selecionada ao acaso, ter entre 1,60 metros e 1,80 metros.

C. probabilidade de uma pessoa, selecionada ao acaso, ter mais de 1,90 metros.

Obter a variável padronizada 𝑍

media = 1.7desvio_padrao = 0.1Z = (1.8 - media) / desvio_padrao
# 1.0000000000000009
probabilidade = 0.8413
from scipy.stats import normnorm.cdf(Z)
# 0.8413447460685431

Obter a variável padronizada 𝑍

Z_inferior = (1.6 - media) / desvio_padrao
round(Z_inferior, 2)
# -1.0
Z_superior = (1.8 - media) / desvio_padrao
round(Z_superior, 2)
# 1.0
probabilidade = (0.8413 - 0.5) * 2
# 0.6826000000000001
probabilidade = 0.8413 - (1 - 0.8413)
# 0.6826000000000001
probabilidade = norm.cdf(Z_superior) - norm.cdf(Z_inferior)
# 0.6826894921370863
probabilidade = norm.cdf(Z_superior) - norm.cdf(Z_inferior)
0.6826894921370857

Obter a variável padronizada 𝑍

Z = (1.9 - media) / desvio_padrao
# 1.9999999999999996
probabilidade = 1 - 0.9772
# 0.022800000000000042
probabilidade = 1 - norm.cdf(Z)
# 0.02275013194817921
probabilidade = norm.cdf(-Z)
# 0.02275013194817921

3 AMOSTRAGEM

Conjunto de todos os elementos de interesse em um estudo. Diversos elementos podem compor uma população, por exemplo: pessoas, idades, alturas, carros etc.

Com relação ao tamanho, as populações podem ser limitadas (populações finitas) ou ilimitadas (populações infinitas).

Permitem a contagem de seus elementos. Como exemplos temos o número de funcionário de uma empresa, a quantidade de alunos em uma escola etc.

Não é possível contar seus elementos. Como exemplos temos a quantidade de porções que se pode extrair da água do mar para uma análise, temperatura medida em cada ponto de um território etc.

Quando os elementos de uma população puderem ser contados, porém apresentando uma quantidade muito grande, assume-se a população como infinita.

Subconjunto representativo da população.

Os atributos numéricos de uma população como sua média, variância e desvio padrão, são conhecidos como parâmetros. O principal foco da inferência estatística é justamente gerar estimativas e testar hipóteses sobre os parâmetros populacionais utilizando as informações de amostras.

3.2 Quando utilizar uma amostra?

O estudo não chegaria nunca ao fim. Não é possível investigar todos os elementos da população.

Estudos onde os elementos avaliados são totalmente consumidos ou destruídos. Exemplo: testes de vida útil, testes de segurança contra colisões em automóveis.

Pesquisas que precisam de mais agilidade na divulgação. Exemplo: pesquisas de opinião, pesquisas que envolvam problemas de saúde pública.

Quando a população é finita mas muito numerosa, o custo de um censo pode tornar o processo inviável.

3.3 Amostragem Aleatória Simples

É uma das principais maneiras de se extrair uma amostra de uma população. A exigência fundamental deste tipo de abordagem é que cada elemeto da população tenha as mesmas chances de ser selecionado para fazer parte da amostra.

dados.shape[0]
# 76840
dados.Renda.mean()
# 2000.3831988547631
amostra = dados.sample(n = 1000, random_state = 101)
amostra.shape[0]
# 1000
amostra.Renda.mean()
# 1998.783
dados.Sexo.value_counts(normalize = True)
# 0 0.692998
# 1 0.307002
# Name: Sexo, dtype: float64
amostra.Sexo.value_counts(normalize = True)
# 0 0.706
# 1 0.294
# Name: Sexo, dtype: float64

3.4 Amostragem Estratificada

É uma melhoria do processo de amostragem aleatória simples. Neste método é proposta a divisão da população em subgrupos de elementos com características similares, ou seja, grupos mais homogêneos. Com estes subgrupos separados, aplica-se a técnica de amostragem aleatória simples dentro de cada subgrupo individualmente.

3.5 Amostragem por Conglomerados

Também visa melhorar o critério de amostragem aleatória simples. Na amostragem por conglomerados são também criados subgrupos, porém não serão homogêneas como na amostragem estratificada. Na amostragem por conglomerados os subgrupos serão heterogêneos, onde, em seguida, serão aplicadas a amostragem aleatória simples ou estratificada.

Um exemplo bastante comum de aplicação deste tipo de técnica é na divisão da população em grupos territoriais, onde os elementos investigados terão características bastante variadas.

4 ESTIMAÇÃO

Suponha que os pesos dos sacos de arroz de uma indústria alimentícia se distribuem aproximadamente como uma normal de desvio padrão populacional igual a 150 g. Selecionada uma amostra aleatória de 20 sacos de um lote específico, obteve-se um peso médio de 5.050 g. Construa um intervalo de confiança para a média populacional assumindo um nível de significância de 5%.

É a forma de se fazer suposições generalizadas sobre os parâmetros de uma população tendo como base as informações de uma amostra.

  • Parâmetros são os atributos numéricos de uma população, tal como a média, desvio padrão etc.
  • Estimativa é o valor obtido para determinado parâmetro a partir dos dados de uma amostra da população.

4.1 Teorema do limite central

O Teorema do Limite Central afirma que, com o aumento do tamanho da amostra, a distribuição das médias amostrais se aproxima de uma distribuição normal com média igual à média da população e desvio padrão igual ao desvio padrão da variável original dividido pela raiz quadrada do tamanho da amostra. Este fato é assegurado para 𝑛n maior ou igual a 30.

O desvio padrão das médias amostrais é conhecido como erro padrão da média

Entendendo o Teorema do Limite Central

n = 2000total_de_amostras = 1500amostras = pd.DataFrame()for i in range(total_de_amostras):
_ = dados.Idade.sample(n)
_.index = range(0, len(_))
amostras['Amostra_' + str(i)] = _
amostras
amostras.mean()

O Teorema do Limite Central afirma que, com o aumento do tamanho da amostra, a distribuição das médias amostrais se aproxima de uma distribuição normal com média igual à média da população e desvio padrão igual ao desvio padrão da variável original dividido pela raiz quadrada do tamanho da amostra. Este fato é assegurado para n maior ou igual a 30.

amostras.mean().hist()

O Teorema do Limite Central afirma que, com o aumento do tamanho da amostra, a distribuição das médias amostrais se aproxima de uma distribuição normal com média igual à média da população e desvio padrão igual ao desvio padrão da variável original dividido pela raiz quadrada do tamanho da amostra. Este fato é assegurado para n maior ou igual a 30.

amostras.Idade.mean()
# 44.07142113482561
amostras.mean().mean()
# 44.07124433333326

O Teorema do Limite Central afirma que, com o aumento do tamanho da amostra, a distribuição das médias amostrais se aproxima de uma distribuição normal com média igual à média da população e desvio padrão igual ao desvio padrão da variável original dividido pela raiz quadrada do tamanho da amostra. Este fato é assegurado para n maior ou igual a 30.

amostras.mean().st()
# 0.2720876671227285
dados.Idade.std()
# 12.480583465360187
dados.Idade.std() / np.sqrt(n)
# 0.2790743302740527

4.2 Níveis de confiança e significância

O nível de confiança (1−𝛼) representa a probabilidade de acerto da estimativa. De forma complementar o nível de significância (𝛼) expressa a probabilidade de erro da estimativa.

O nível de confiança representa o grau de confiabilidade do resultado da estimativa estar dentro de determinado intervalo. Quando fixamos em uma pesquisa um nível de confiança de 95%, por exemplo, estamos assumindo que existe uma probabilidade de 95% dos resultados da pesquisa representarem bem a realidade, ou seja, estarem corretos.

O nível de confiança de uma estimativa pode ser obtido a partir da área sob a curva normal como ilustrado na figura abaixo.

4.3 Erro inferencial

O erro inferencial é definido pelo desvio padrão das médias amostrais 𝜎𝑥¯e pelo nível de confiança determinado para o processo.

4.4 Intervalos de confiança

Suponha que os pesos dos sacos de arroz de uma indústria alimentícia se distribuem aproximadamente como uma normal de desvio padrão populacional igual a 150 g. Selecionada uma amostra aleatória de 20 sacos de um lote específico, obteve-se um peso médio de 5.050 g. Construa um intervalo de confiança para a média populacional assumindo um nível de significância de 5%.

media_amostra = 5050
significancia = 0.05
confianca = 1 - significancia
# 0.95
tabela_normal_padronizada[16:26]
Tabela Z
0.95 / 2
# 0.475
0.5 + (0.95 / 2)
# 0.975
1.9 + 0.06
# 1.96
z = norm.ppf(0.975)
# 1.959963984540054

Obtendo 𝜎𝑥¯

desvio_padrao = 150n = 20raiz_de_n = np.sqrt(n)
raiz_de_n
# 4.47213595499958
sigma = desvio_padrao / raiz_de_n
sigma
# 33.54101966249684

Obtendo 𝑒

e = z * sigma
e
# 65.73919054324361
intervalo = (
media_amostra - e,
media_amostra + e
)
intervalo
#(4984.260809456757, 5115.739190543243)
norm.interval(alpha = 0.95, loc = media_amostra, scale = sigma)
# 4984.260809456757, 5115.739190543243)

5 CÁLCULO DO TAMANHO DA AMOSTRA

Estamos estudando o rendimento mensal dos chefes de domicílios com renda até R$$ 5.000,00 no Brasil. Nosso supervisor determinou que o erro máximo em relação a média seja de R$$ 10,00. Sabemos que o desvio padrão populacional deste grupo de trabalhadores é de R$$ 1.082,79. Para um nível de confiança de 95%, qual deve ser o tamanho da amostra de nosso estudo?

Onde:

𝑧 = variável normal padronizada
𝜎 = desvio padrão populacional
𝑠 = desvio padrão amostral
𝑒 = erro inferencial

  1. O desvio padrão (𝜎 ou 𝑠) e o erro (𝑒) devem estar na mesma unidade de medida.
  2. Quando o erro (𝑒) for representado em termos percentuais, deve ser interpretado como um percentual relacionado à média.

Estamos estudando o rendimento mensal dos chefes de domicílios no Brasil. Nosso supervisor determinou que o erro máximo em relação a média seja de R$$ 100,00. Sabemos que o desvio padrão populacional deste grupo de trabalhadores é de R$$ 3.323,39. Para um nível de confiança de 95%, qual deve ser o tamanho da amostra de nosso estudo?

0.95 / 2
# 0.475
0.5 + (0.95 / 2)
# 0.975
z = norm.ppf(0.975)
z
# 1.959963984540054
sigma = 3323.39
sigma
# 3323.39
e = 100
n = (z * (sigma / e)) ** 2int(n.round())
# 4243

Problema

Em um lote de 10.000 latas de refrigerante foi realizada uma amostra aleatória simples de 100 latas e foi obtido o desvio padrão amostral do conteúdo das latas igual a 12 ml. O fabricante estipula um erro máximo sobre a média populacional de apenas 5 ml. Para garantir um nível de confiança de 95% qual o tamanho de amostra deve ser selecionado para este estudo?

5.2 Variáveis quantitativas e população finita

𝑁 = tamanho da população
𝑧 = variável normal padronizada
𝜎 = desvio padrão populacional
𝑠= desvio padrão amostral
𝑒 = erro inferencial

Em um lote de 10.000 latas de refrigerante foi realizada uma amostra aleatória simples de 100 latas e foi obtido o desvio padrão amostral do conteúdo das latas igual a 12 ml. O fabricante estipula um erro máximo sobre a média populacional de apenas 5 ml. Para garantir um nível de confiança de 95% qual o tamanho de amostra deve ser selecionado para este estudo?

N = 10000
z = norm.ppf((0.5 + (0.95 / 2)))
# 1.959963984540054
s = 12
e = 5

Obtendo 𝑛

n = ((z**2) * (s**2) * (N)) / (((z**2) * (s**2)) + ((e**2) * (N1)))int(n.round())
# 22

6 FIXANDO O CONTEÚDO

Estamos estudando o rendimento mensal dos chefes de domicílios com renda até R$$ 5.000,00 no Brasil. Nosso supervisor determinou que o erro máximo em relação a média seja de R$$ 10,00. Sabemos que o desvio padrão populacional deste grupo de trabalhadores é de R$$ 1.082,79 e que a média populacional é de R$$ 1.426,54. Para um nível de confiança de 95%, qual deve ser o tamanho da amostra de nosso estudo? Qual o intervalo de confiança para a média considerando o tamanho de amostra obtido?

renda_5000 = dados.query('Renda <= 5000').Rendasigma = renda_5000.std()
sigma
# 1082.794549030635
media = renda_5000.mean()
media
# 1426.5372144947232
z = norm.ppf(.975)e = 10n = (z * (sigma / e)) ** 2
n = int(n.round())
n
# 45039

Calculando o intervalo de confiança para a média

intervalo = norm.interval(alpha = 0.95, loc = media, scale = sigma / np.sqrt(n))intervalo
#(1416.5372195108241, 1436.5372094786223)
import matplotlib.pyplot as plttamanho_simulacao = 1000medias = [renda_5000.sample(n = n).mean() for i in range(1, tamanho_simulacao)]medias = pd.DataFrame(medias)​ax = medias.plot(style = '.')
ax.figure.set_size_inches(12, 6)
ax.hlines(y = media, xmin = 0, xmax = tamanho_simulacao, colors='black', linestyles='dashed')
ax.hlines(y = intervalo[0], xmin = 0, xmax = tamanho_simulacao, colors='red', linestyles='dashed')
ax.hlines(y = intervalo[1], xmin = 0, xmax = tamanho_simulacao, colors='red', linestyles='dashed')
ax

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app