Comparación entre distribuciones
El siguiente código en Python muestra tres distribuciones con diferente desviación típica, se puede ver que a mayor desviación, mayor aplanamiento
import numpy as np import matplotlib.pyplot as plt # Configuración de la semilla para reproducibilidad np.random.seed(0) # Parámetros de las distribuciones mu = 0 # Media sigma1 = 1 # Desviación estándar para la primera distribución sigma2 = 2 # Desviación estándar para la segunda distribución sigma3 = 5 # Desviación estándar para la tercera distribución n_samples = 1000 # Número de muestras # Generar datos de las distribuciones normales data1 = np.random.normal(mu, sigma1, n_samples) data2 = np.random.normal(mu, sigma2, n_samples) data3 = np.random.normal(mu, sigma3, n_samples) # Configuración de la gráfica plt.figure(figsize=(10, 6)) # Graficar histogramas de las dos distribuciones plt.hist(data1, bins=30, color='blue', density=True, label='Desviación Estándar = 1', alpha=0.5) plt.hist(data2, bins=30, color='red', density=True, label='Desviación Estándar = 2', alpha=0.5) plt.hist(data3, bins=30, color='green', density=True, label='Desviación Estándar = 5', alpha=0.5) # Personalizar la gráfica plt.title('Comparación de Distribuciones Normales usando np.random.normal') plt.xlabel('Valor') plt.ylabel('Densidad') plt.axhline(0, color='black', linewidth=0.5, ls='--') plt.axvline(0, color='black', linewidth=0.5, ls='--') plt.legend() plt.grid() # Mostrar la gráfica plt.show()
Otro ejemplo con valores discretos:
import numpy as np import matplotlib.pyplot as plt # Generar una distribución normal con media 0 y desviación estándar 5 mu, sigma = 0, 3 size = 1000 # Tamaño de la muestra # Generar valores continuos data_continua = np.random.normal(mu, sigma, size) data_continua2 = np.random.normal(mu, 8, size) # Redondear a los valores enteros (discretos) data_discreta = np.rint(data_continua) data_discreta2 = np.rint(data_continua2) # Filtrar valores entre -20 y 20 data_discreta = data_discreta[(data_discreta >= -20) & (data_discreta <= 20)] data_discreta2 = data_discreta2[(data_discreta >= -20) & (data_discreta <= 20)] # Graficar los resultados plt.hist(data_discreta, bins=41, range=(-20, 20), edgecolor='black', alpha=0.7) plt.hist(data_discreta2, bins=41, range=(-20, 20),color='red', edgecolor='yellow', alpha=0.5) plt.title('Distribución Normal Discreta entre -20 y 20') plt.xlabel('Valor') plt.ylabel('Frecuencia') plt.show()