¿Con qué frecuencia hay no-hitters?
El número de partidos jugados entre cada no-hitter en la era moderna (1901-2015) de Major League Baseball está almacenado en el array nohitter_times.
Si supones que los no-hitters se describen como un proceso de Poisson, entonces el tiempo entre no-hitters sigue una distribución Exponencial. Como has visto, la distribución Exponencial tiene un único parámetro, al que llamaremos \(\tau\), el intervalo típico. El valor del parámetro \(\tau\) que hace que la distribución exponencial se ajuste mejor a los datos es el tiempo medio de intervalo (donde el tiempo está en unidades de número de partidos) entre no-hitters.
Calcula el valor de este parámetro a partir de los datos. Luego, usa np.random.exponential() para "repetir" la historia de Major League Baseball extrayendo tiempos entre no-hitters de una distribución exponencial con el \(\tau\) que encontraste y dibuja el histograma como una aproximación a la PDF.
NumPy, pandas, matplotlib.pyplot y seaborn ya se han importado como np, pd, plt y sns, respectivamente.
Este ejercicio forma parte del curso
Pensamiento estadístico en Python (Parte 2)
Instrucciones del ejercicio
- Fija la semilla del generador de números aleatorios con
42. - Calcula el tiempo medio (en unidades de número de partidos) entre no-hitters.
- Extrae 100.000 muestras de una distribución Exponencial con el parámetro que calculaste a partir de la media de los tiempos entre no-hitters.
- Traza la PDF teórica usando
plt.hist(). Recuerda usar los argumentos con nombrebins=50,density=Trueehisttype='step'. No olvides etiquetar los ejes. - Muestra tu gráfico.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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()