Distribución Zipf en NumPy


La distribución de Zipf, también conocida como la ley de Zipf, es un tipo de distribución de probabilidad discreta que se utiliza comúnmente para modelar datos en diversas áreas, como lingüística, ciencias sociales y muchas otras. Esta distribución se caracteriza por la ley de Zipf, que establece que la frecuencia de un elemento es inversamente proporcional a su rango. En otras palabras, algunos elementos son muy comunes, mientras que la mayoría de los elementos son raros. Esta distribución es útil para modelar la distribución de popularidad en grandes conjuntos de datos.

En NumPy, puedes generar datos que sigan una distribución Zipf utilizando la función numpy.random.zipf.


Ejemplo de Distribución Zipf en NumPy

import numpy as np
      import matplotlib.pyplot as plt

      # Parámetros de la distribución Zipf
      a = 2.  # Parámetro de forma (debe ser mayor que 1)

      # Tamaño de la muestra
      size = 1000

      # Generar una muestra de datos Zipf
      data = np.random.zipf(a, size)

      # Graficar el histograma de la muestra
      plt.hist(data, bins=range(1, max(data) + 1), density=True, alpha=0.5, color='b')

      # Calcular la probabilidad teórica de Zipf
      x = np.arange(1, max(data) + 1)
      pmf = x**(-a) / sum(1.0**(-a) for i in range(1, max(data) + 1))

      # Graficar la probabilidad teórica
      plt.plot(x, pmf, 'ro-', markersize=5, label='Zipf PMF')
      plt.title(f'Distribución Zipf (a = {a})')
      plt.legend()
      plt.show()

distribución Zipf en NumPy:

  • Importa las bibliotecas necesarias, incluyendo NumPy y Matplotlib.
  • Define el parámetro de forma a, que debe ser mayor que 1. Este parámetro controla la forma de la distribución Zipf.
  • Especifica el tamaño de la muestra que deseas generar (size).
  • Genera una muestra de datos Zipf utilizando numpy.random.zipf con el parámetro de forma a y el tamaño de la muestra size.
  • Grafica un histograma de la muestra utilizando matplotlib para visualizar la distribución de los datos.
  • Calcula la probabilidad teórica de la distribución Zipf para compararla con la muestra generada.
  • Grafica la probabilidad teórica de Zipf junto con el histograma de la muestra para visualizar cómo se ajusta la distribución.

Esta lección proporciona una introducción básica a la generación y visualización de datos que siguen una distribución Zipf en NumPy. Puedes ajustar el parámetro de forma a y el tamaño de la muestra según tus necesidades.