Calcule a função de distribuição cumulativa em Python
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
.
- Função
numpy.arange()
que retorna umndarray
de valores uniformemente espaçados. - Função
numpy.linspace()
que retorna umndarray
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.
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.