Distribución normal de datos en Python

La distribución normal, también conocida como la distribución gaussiana, es una de las distribuciones más importantes en estadísticas y probabilidad. Es ampliamente utilizada en diversos campos para modelar datos que siguen un patrón de campana. En Python, podemos trabajar con la distribución normal utilizando la biblioteca numpy y matplotlib para visualizarla. En este artículo, exploraremos conceptos relacionados con la distribución normal y proporcionaremos ejemplos en Python.


Conceptos Básicos de la Distribución Normal

La distribución normal se caracteriza por dos parámetros: la media (μ) y la desviación estándar (σ). La función de densidad de probabilidad de una distribución normal se define como:

f(x|μ,σ) = 1 / (σ√(2π)) * e^(-(x-μ)² / (2σ²))

Donde:

  • x es una variable aleatoria.
  • μ es la media.
  • σ es la desviación estándar.
  • π es el valor de pi (aproximadamente 3.14159).

Generación de Datos de una Distribución Normal

Vamos a utilizar numpy para generar datos aleatorios que sigan una distribución normal con una media de 0 y una desviación estándar de 1.

# Función de densidad de probabilidad para una distribución normal
def funcion_densidad_probabilidad(x, media, desviacion):
    import numpy as np
    return np.exp((-(x - media)**2) / (2 * desviacion**2)) / (desviacion * np.sqrt(2 * np.pi))

# Importar la biblioteca NumPy
import numpy as np

# Generar 1000 datos aleatorios de una distribución normal estándar
datos = np.random.normal(0, 1, 1000)

# Mostrar los primeros 10 datos generados
print(datos[:10])

Visualización de una Distribución Normal

# Importar las bibliotecas NumPy y Matplotlib
import numpy as np
import matplotlib.pyplot as plt

# Generar datos de una distribución normal con media 0 y desviación estándar 1
datos_normal = np.random.normal(0, 1, 10000)

# Generar datos de una distribución normal con media 2 y desviación estándar 0.5
datos_personalizados = np.random.normal(2, 0.5, 10000)

# Crear un histograma para los datos generados
plt.hist(datos_normal, bins=30, density=True, alpha=0.5, color='b', label='Media 0, Desviación 1')
plt.hist(datos_personalizados, bins=30, density=True, alpha=0.5, color='r', label='Media 2, Desviación 0.5')

# Agregar etiquetas y leyendas
plt.xlabel('Valores')
plt.ylabel('Densidad de Probabilidad')
plt.title('Distribución Normal')
plt.legend()

# Mostrar el histograma
plt.show()

Cálculo de Probabilidades en la Distribución Normal

# Importar la biblioteca SciPy
import scipy.stats as stats

# Definir la media y la desviación estándar
media = 3
desviacion = 1

# Calcular la probabilidad de que x esté entre 2 y 4
probabilidad = stats.norm.cdf(4, loc=media, scale=desviacion) - stats.norm.cdf(2, loc=media, scale=desviacion)

print("La probabilidad de que x esté entre 2 y 4 es:", probabilidad)

En estos ejemplos, exploramos la generación de datos aleatorios, visualización de distribuciones normales y cálculo de probabilidades en la distribución normal en Python. La distribución normal es fundamental en estadísticas y se utiliza en una amplia gama de aplicaciones para modelar datos del mundo real.