Distribución Exponencial en NumPy

La distribución exponencial es una distribución de probabilidad continua que describe el tiempo entre eventos en un proceso de Poisson, donde los eventos ocurren de manera continua y de manera independiente a una tasa constante. NumPy, una biblioteca en Python, proporciona funciones para trabajar con esta distribución. A continuación, te proporciono una lección detallada sobre cómo trabajar con la distribución exponencial en NumPy.


Importar NumPy

Lo primero que debes hacer es importar NumPy en tu script o entorno de Python:

import numpy as np

Generar muestras de una distribución exponencial en NumPy

Para generar muestras de una distribución exponencial en NumPy, puedes utilizar la función numpy.random.exponential(). Esta función toma dos argumentos principales:

  • scale: La inversa de la tasa de eventos (también llamada «lambda» en la teoría de probabilidad). Es el parámetro más comúnmente usado y controla la «anchura» de la distribución. Cuanto más pequeño sea, más rápido caerá la probabilidad.
  • size (opcional): El número de muestras a generar.

Ejemplo de generación de muestras exponenciales:

# Parámetros de la distribución
scale = 0.5  # Inversa de la tasa de eventos (lambda)

# Generar 5 muestras de la distribución exponencial
muestras = np.random.exponential(scale, 5)

print("Muestras generadas:", muestras)

Visualizar la distribución de una distribución exponencial en NumPy

Puedes utilizar bibliotecas de visualización como Matplotlib para representar gráficamente la distribución exponencial:

import matplotlib.pyplot as plt

# Generar más muestras para una mejor representación gráfica
muestras = np.random.exponential(scale, 1000)

# Crear un histograma
plt.hist(muestras, bins=30, density=True, alpha=0.6, color='b')

# Graficar la función de densidad de probabilidad teórica
x = np.linspace(0, max(muestras), 100)
pdf = (1/scale) * np.exp(-x/scale)
plt.plot(x, pdf, 'r-', lw=2)

plt.title('Distribución Exponencial')
plt.xlabel('Valores')
plt.ylabel('Densidad de Probabilidad')
plt.show()

Este código generará un histograma de muestras exponenciales y superpondrá la función de densidad de probabilidad teórica.


Estadísticas descriptivas de una muestra exponencial en NumPy

Puedes calcular estadísticas descriptivas de las muestras exponenciales, como la media y la desviación estándar:

media = np.mean(muestras)
desviacion_estandar = np.std(muestras)

print("Media:", media)
print("Desviación Estándar:", desviacion_estandar)

A continuación, te proporciono un ejemplo completo que incluye los pasos anteriores en un solo script:

import numpy as np
import matplotlib.pyplot as plt

# Paso 2: Generar muestras de una distribución exponencial
      scale = 0.5  # Inversa de la tasa de eventos (lambda)
      muestras = np.random.exponential(scale, 1000)

# Paso 3: Visualizar la distribución
      plt.hist(muestras, bins=30, density=True, alpha=0.6, color='b')
      x = np.linspace(0, max(muestras), 100)
      pdf = (1/scale) * np.exp(-x/scale)
      plt.plot(x, pdf, 'r-', lw=2)
      plt.title('Distribución Exponencial')
      plt.xlabel('Valores')
      plt.ylabel('Densidad de Probabilidad')
      plt.show()

# Paso 4: Estadísticas descriptivas
      media = np.mean(muestras)
      desviacion_estandar = np.std(muestras)

print("Media:", media)
print("Desviación Estándar:", desviacion_estandar)

Este ejemplo completo te permite generar muestras, visualizar la distribución exponencial y calcular estadísticas descriptivas. Puedes ajustar los parámetros según tus necesidades.