programação

Funções de Massa de Probabilidade em Python

As “funções de massa de probabilidade” (FMP), também conhecidas como “funções de densidade de probabilidade” (FDP) ou “funções de probabilidade discreta”, são elementos fundamentais no campo da estatística e da teoria das probabilidades. Em Python, um popular e versátil linguagem de programação, essas funções são implementadas através de várias bibliotecas, sendo a mais comum a biblioteca scipy.stats. Vamos explorar mais detalhadamente como utilizar essas funções em Python.

Primeiramente, é importante entender o conceito por trás das FMPs. Em termos simples, uma FMP atribui probabilidades a cada possível valor que uma variável aleatória discreta pode assumir. Por exemplo, se estivermos lidando com o lançamento de um dado justo, a FMP associada a esse experimento terá uma probabilidade de 1/6 para cada face do dado.

A biblioteca scipy.stats fornece uma ampla gama de distribuições de probabilidade, incluindo aquelas associadas a variáveis discretas. Para utilizar essas funções, é necessário primeiro importar a biblioteca. Abaixo está um exemplo de como importar a scipy.stats e calcular a FMP para uma distribuição de Poisson:

python
from scipy.stats import poisson # Definindo os parâmetros da distribuição de Poisson lambda_ = 3 # Parâmetro lambda da distribuição de Poisson # Calculando a FMP para os valores de 0 a 10 valores = list(range(11)) # Valores de 0 a 10 fmp = [poisson.pmf(k, lambda_) for k in valores] # Exibindo os resultados for k, p in zip(valores, fmp): print(f"A probabilidade de obter {k} eventos é {p:.4f}")

Neste exemplo, estamos calculando a FMP da distribuição de Poisson com um parâmetro lambda de 3. A função poisson.pmf(k, lambda_) retorna a probabilidade de observar exatamente k eventos em um intervalo de tempo ou espaço específico, dados o parâmetro lambda e o valor k. O loop final imprime as probabilidades para cada valor de 0 a 10.

Além da distribuição de Poisson, a biblioteca scipy.stats oferece suporte a muitas outras distribuições de probabilidade discretas, como a distribuição binomial, geométrica, hipergeométrica, entre outras. Cada uma dessas distribuições tem sua própria função de massa de probabilidade correspondente na biblioteca.

Por exemplo, para a distribuição binomial, a função binom.pmf(k, n, p) calcula a probabilidade de obter exatamente k sucessos em n tentativas independentes, onde cada tentativa tem uma probabilidade p de sucesso. Da mesma forma, para a distribuição geométrica, a função geom.pmf(k, p) calcula a probabilidade de que o primeiro sucesso ocorra na tentativa k.

Em resumo, as funções de massa de probabilidade em Python, utilizando a biblioteca scipy.stats, proporcionam uma maneira eficiente e conveniente de calcular probabilidades associadas a variáveis aleatórias discretas. Ao entender e utilizar essas funções, os praticantes de estatística e ciência de dados podem realizar uma ampla gama de análises e modelagens estatísticas com facilidade e precisão.

“Mais Informações”

Claro, vamos aprofundar um pouco mais sobre as funções de massa de probabilidade (FMP) em Python, explorando algumas das distribuições discretas mais comuns e como utilizá-las na prática.

Distribuição Binomial:

A distribuição binomial é usada para modelar o número de sucessos em uma sequência de tentativas independentes, cada uma com apenas dois resultados possíveis: sucesso ou fracasso. Por exemplo, o número de caras em uma série de lançamentos de uma moeda justa ou o número de clientes que fazem uma compra em um determinado dia.

Em Python, você pode calcular a FMP da distribuição binomial usando a função binom.pmf(k, n, p) da biblioteca scipy.stats, onde:

  • k é o número de sucessos desejados,
  • n é o número total de tentativas,
  • p é a probabilidade de sucesso em cada tentativa.

Veja um exemplo de como calcular a FMP da distribuição binomial:

python
from scipy.stats import binom # Definindo os parâmetros da distribuição binomial n = 10 # Número total de tentativas p = 0.5 # Probabilidade de sucesso em cada tentativa # Calculando a FMP para os valores de 0 a 10 sucessos valores = list(range(n + 1)) # Valores de 0 a 10 sucessos fmp_binomial = [binom.pmf(k, n, p) for k in valores] # Exibindo os resultados for k, p in zip(valores, fmp_binomial): print(f"A probabilidade de obter {k} sucessos é {p:.4f}")

Distribuição Geométrica:

A distribuição geométrica modela o número de tentativas independentes necessárias até o primeiro sucesso ocorrer. Por exemplo, o número de lançamentos de uma moeda justa necessários para obter a primeira cara.

Para calcular a FMP da distribuição geométrica em Python, você pode usar a função geom.pmf(k, p) da biblioteca scipy.stats, onde:

  • k é o número de tentativas até o primeiro sucesso,
  • p é a probabilidade de sucesso em cada tentativa.

Veja um exemplo de como calcular a FMP da distribuição geométrica:

python
from scipy.stats import geom # Definindo os parâmetros da distribuição geométrica p = 0.5 # Probabilidade de sucesso em cada tentativa # Calculando a FMP para os valores de 1 a 10 tentativas valores = list(range(1, 11)) # Valores de 1 a 10 tentativas fmp_geometrica = [geom.pmf(k, p) for k in valores] # Exibindo os resultados for k, p in zip(valores, fmp_geometrica): print(f"A probabilidade de obter sucesso na tentativa {k} é {p:.4f}")

Distribuição Hipergeométrica:

A distribuição hipergeométrica é usada para modelar o número de sucessos em uma amostra de tamanho fixo retirada de uma população finita sem reposição. Por exemplo, o número de cartas de ouros em uma mão de pôquer retirada de um baralho.

Para calcular a FMP da distribuição hipergeométrica em Python, você pode usar a função hypergeom.pmf(k, N, n, m) da biblioteca scipy.stats, onde:

  • k é o número de sucessos desejados na amostra,
  • N é o tamanho da população,
  • n é o número de sucessos na população,
  • m é o tamanho da amostra.

Veja um exemplo de como calcular a FMP da distribuição hipergeométrica:

python
from scipy.stats import hypergeom # Definindo os parâmetros da distribuição hipergeométrica N = 20 # Tamanho da população n = 7 # Número total de sucessos na população m = 5 # Tamanho da amostra # Calculando a FMP para os valores de 0 a 5 sucessos na amostra valores = list(range(m + 1)) # Valores de 0 a 5 sucessos na amostra fmp_hipergeometrica = [hypergeom.pmf(k, N, n, m) for k in valores] # Exibindo os resultados for k, p in zip(valores, fmp_hipergeometrica): print(f"A probabilidade de obter {k} sucessos na amostra é {p:.4f}")

Esses são apenas alguns exemplos das distribuições discretas mais comuns e como calcular suas FMPs em Python. Existem outras distribuições disponíveis na biblioteca scipy.stats, cada uma com sua própria função de massa de probabilidade para facilitar a análise estatística e probabilística de uma ampla variedade de problemas do mundo real.

Botão Voltar ao Topo