Calcular la función de distribución acumulativa en Python

Najwa Riyaz 30 enero 2023
  1. Utilice numpy.arange() para calcular el CDF en Python
  2. Utilice numpy.linspace() para calcular el CDF en Python
Calcular la función de distribución acumulativa en Python

El término función de distribución acumulativa o CDF es una función y=f(x), donde y representa la probabilidad de que el entero x, o cualquier número menor que x, sea seleccionado aleatoriamente de una distribución.

Se calcula en Python usando las siguientes funciones de la biblioteca NumPy.

  1. Función numpy.arange() que devuelve un ndarray de valores espaciados uniformemente.
  2. Función numpy.linspace() que devuelve un ndarray de valores espaciados uniformemente dentro de un intervalo dado.

Utilice numpy.arange() para calcular el CDF en Python

La biblioteca estándar NumPy contiene la función arange() utilizada para determinar la CDF en Python.

Para ello, importe primero la biblioteca NumPy.

La función arange() devuelve un ndarray de valores espaciados uniformemente.

A continuación se muestra un ejemplo que demuestra la implementación de la función CDF usando la función numpy.arange() en Python.

import matplotlib.pyplot as plt
import numpy

data = numpy.random.randn(5)
print("The data is-", data)
sorted_random_data = numpy.sort(data)
p = 1.0 * numpy.arange(len(sorted_random_data)) / float(len(sorted_random_data) - 1)
print("The CDF result is-", p)

fig = plt.figure()
fig.suptitle("CDF of data points")
ax2 = fig.add_subplot(111)
ax2.plot(sorted_random_data, p)
ax2.set_xlabel("sorted_random_data")
ax2.set_ylabel("p")

Aquí, la función randn() se usa para devolver muestras de datos usando la distribución normal estándar. Como se menciona randn(5), se construye un 1Darray con 5 valores aleatorios.

A continuación, los datos se ordenan utilizando la función sort(), después de lo cual se utiliza la función arange() para calcular el CDF.

Producción :

The data is- [ 0.14213322 -1.28760908  0.94533922  0.82004319  1.08232731]
The CDF result is- [0.   0.25 0.5  0.75 1.  ]

El gráfico se muestra según la función CDF como.

cdf de python

Utilice numpy.linspace() para calcular el CDF en Python

La biblioteca estándar NumPy contiene la función linspace() utilizada para determinar la CDF en Python. Para ello, importe primero la biblioteca NumPy.

La función linspace() devuelve un ndarray de números espaciados uniformemente durante un intervalo especificado.

Aquí hay un ejemplo que demuestra la implementación de la función CDF usando numpy.linspace() en Python.

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(5)
print("The data is-", data)
sorted_random_data = np.sort(data)
np.linspace(0, 1, len(data), endpoint=False)

print("The CDF result using linspace =\n", p)

fig = plt.figure()
fig.suptitle("CDF of data points")
ax2 = fig.add_subplot(111)
ax2.plot(sorted_random_data, p)
ax2.set_xlabel("sorted_random_data")
ax2.set_ylabel("p")

Aquí, la función randn() se usa para devolver muestras de datos usando la distribución normal estándar. A continuación, los datos se ordenan utilizando la función sort(), después de lo cual se utiliza la función arange() para calcular el CDF.

Producción :

The data is- [-0.92106668 -0.05998132  0.02102705 -0.84778184  0.90815869]
The CDF result using linspace =
 [0.   0.25 0.5  0.75 1.  ]

El gráfico se muestra según la función CDF como se muestra a continuación.

python cdf 2

Artículo relacionado - Python Math