HOWTO · Python

Calcule a função de distribuição cumulativa em Python

Este artigo explica o método de cálculo da função de distribuição cumulativa em Python. Pode ser calculado usando as funções arange() ou linspace() de numpy

O termo função de distribuição cumulativa ou CDF é uma função y=f(x), onde y representa a probabilidade do inteiro x, ou qualquer número inferior a x, ser selecionado aleatoriamente a partir de uma distribuição.

É calculado em Python usando as seguintes funções da biblioteca NumPy.

  1. Função numpy.arange() que retorna um ndarray de valores uniformemente espaçados.
  2. Função numpy.linspace() que retorna um ndarray de valores uniformemente espaçados dentro de um determinado intervalo.

Use numpy.arange() para calcular o CDF em Python

A biblioteca padrão NumPy contém a função arange() usada para determinar o CDF em Python.

Para isso, importe primeiro a biblioteca NumPy.

A função arange() retorna um ndarray de valores uniformemente espaçados.

Abaixo está um exemplo que demonstra a implementação da função CDF usando a função numpy.arange() em 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")

Aqui, a função randn() é usada para retornar amostras de dados usando a distribuição normal padrão. Visto que randn(5) é mencionado, um 1Darray é construído com 5 valores aleatórios.

Em seguida, os dados são classificados usando a função sort(), após a qual a função arange() é usada para calcular o CDF.

Resultado :

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.  ]

O gráfico é exibido de acordo com a função CDF como.

python cdf

Use numpy.linspace() para calcular o CDF em Python

A biblioteca padrão NumPy contém a função linspace() usada para determinar o CDF em Python. Para isso, primeiro importe a biblioteca NumPy.

A função linspace() retorna um ndarray de números uniformemente espaçados em um intervalo especificado.

Aqui está um exemplo que demonstra a implementação da função CDF usando numpy.linspace() em 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")

Aqui, a função randn() é usada para retornar amostras de dados usando a distribuição normal padrão. Em seguida, os dados são classificados usando a função sort(), após a qual a função arange() é usada para calcular o CDF.

Resultado:

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.  ]

O gráfico é exibido de acordo com a função CDF conforme abaixo.

python cdf 2