ComeçarComece de graça

Com que frequência temos no-hitters?

O número de jogos disputados entre cada no-hitter na era moderna (1901–2015) da Major League Baseball está armazenado no array nohitter_times.

Se você assumir que os no-hitters seguem um processo de Poisson, então o tempo entre no-hitters é distribuído exponencialmente. Como você viu, a distribuição Exponencial tem um único parâmetro, que vamos chamar de \(\tau\), o tempo típico de intervalo. O valor do parâmetro \(\tau\) que faz a distribuição exponencial corresponder melhor aos dados é o tempo médio de intervalo (onde o tempo está em unidades de número de jogos) entre no-hitters.

Calcule o valor desse parâmetro a partir dos dados. Em seguida, use np.random.exponential() para “repetir” a história da Major League Baseball, extraindo tempos entre no-hitters de uma distribuição exponencial com o \(\tau\) que você encontrou, e faça o histograma como uma aproximação da PDF.

NumPy, pandas, matplotlib.pyplot e seaborn já foram importados para você como np, pd, plt e sns, respectivamente.

Este exercício faz parte do curso

Pensamento Estatístico em Python (Parte 2)

Ver curso

Instruções do exercício

  • Defina a semente do gerador de números aleatórios com 42.
  • Calcule o tempo médio (em número de jogos) entre no-hitters.
  • Extraia 100.000 amostras de uma distribuição Exponencial com o parâmetro que você calculou a partir da média dos tempos entre no-hitters.
  • Plote a PDF teórica usando plt.hist(). Lembre-se de usar os argumentos nomeados bins=50, normed=True e histtype='step'. Não se esqueça de rotular seus eixos.
  • Mostre o seu gráfico.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Seed random number generator
____

# Compute mean no-hitter time: tau
tau = ____

# Draw out of an exponential distribution with parameter tau: inter_nohitter_time
inter_nohitter_time = ____(____, 100000)

# Plot the PDF and label axes
_ = ____(inter_nohitter_time,
             ____, ____, ____)
_ = plt.xlabel('Games between no-hitters')
_ = plt.ylabel('PDF')

# Show the plot
plt.show()
Editar e executar o código