Ejercicio 56: Simulación de una Variable Aleatoria usando la Transformada Inversa
En este ejercicio, se explorará la técnica de transformación inversa para generar variables aleatorias de una distribución exponencial a partir de una distribución uniforme. Este método es fundamental en la simulación de variables aleatorias y en la generación de datos en ciencia de datos.
Objetivos
- Implementar la técnica de transformación inversa para generar variables aleatorias de una distribución exponencial.
- Comparar los resultados obtenidos con la función
numpy.random.exponential()
.
Entrada de Datos
- Distribución uniforme ( U \sim U(0,1) ).
Código Base
import numpy as np
import matplotlib.pyplot as plt
# Parámetro de la distribución exponencial
lambda_param = 1.0
# Generar números aleatorios de una distribución uniforme
uniform_random_numbers = np.random.uniform(0, 1, 1000)
# TODO: Implementar la transformación inversa para obtener una distribución exponencial
# exponential_random_numbers = ...
# Comparar con numpy.random.exponential
numpy_exponential_numbers = np.random.exponential(1/lambda_param, 1000)
# Visualización de los resultados
plt.hist(exponential_random_numbers, bins=30, alpha=0.5, label='Transformada Inversa')
plt.hist(numpy_exponential_numbers, bins=30, alpha=0.5, label='Numpy Exponential')
plt.legend(loc='upper right')
plt.title('Comparación de Distribuciones Exponenciales')
plt.show()
Tareas
- Implementar la técnica de transformación inversa para convertir los números aleatorios uniformes en números aleatorios exponenciales.
- Comparar visualmente los resultados obtenidos con la función
numpy.random.exponential()
.
Pruebas
Ejemplo de prueba para verificar la implementación:
# Prueba de la transformación inversa
uniform_random_numbers_test = np.array([0.1, 0.5, 0.9])
# TODO: Implementar la transformación inversa para los valores de prueba
# exponential_random_numbers_test = ...
print(exponential_random_numbers_test)
Pregunta de Reflexión
¿Por qué la técnica de transformación inversa es útil en la generación de datos?