Como calcular e plotar cdf normal em python
Uma função de distribuição cumulativa ( CDF ) nos diz a probabilidade de uma variável aleatória assumir um valor menor ou igual a um determinado valor.
Este tutorial explica como calcular e plotar valores normais de CDF em Python.
Exemplo 1: Calcular probabilidades normais de CDF em Python
A maneira mais fácil de calcular probabilidades normais de CDF em Python é usar a função norm.cdf() da biblioteca SciPy .
O código a seguir mostra como calcular a probabilidade de uma variável aleatória assumir um valor menor que 1,96 em uma distribuição normal padrão:
from scipy. stats import norm #calculate probability that random value is less than 1.96 in normal CDF norm. cdf ( 1.96 ) 0.9750021048517795
A probabilidade de uma variável aleatória assumir um valor inferior a 1,96 em uma distribuição normal padrão é de aproximadamente 0,975 .
Também podemos encontrar a probabilidade de uma variável aleatória assumir um valor maior que 1,96 simplesmente subtraindo esse valor de 1:
from scipy. stats import norm #calculate probability that random value is greater than 1.96 in normal CDF 1 - norm. cdf ( 1.96 ) 0.024997895148220484
A probabilidade de uma variável aleatória assumir um valor superior a 1,96 em uma distribuição normal padrão é de aproximadamente 0,025 .
Exemplo 2: Traçando o CDF Normal
O código a seguir mostra como plotar um CDF normal em Python:
import matplotlib. pyplot as plt import numpy as np import scipy. stats as ss #define x and y values to use for CDF x = np. linspace (-4, 4, 1000) y = ss. norm . cdf (x) #normal plot CDF plt. plot (x, y)
O eixo x mostra os valores de uma variável aleatória que segue uma distribuição normal padrão e o eixo y mostra a probabilidade de uma variável aleatória assumir um valor menor que o valor mostrado no eixo x.
Por exemplo, se olharmos para x = 1,96, veremos que a probabilidade cumulativa de x ser menor que 1,96 é de aproximadamente 0,975 .
Sinta-se à vontade para alterar também as cores e rótulos dos eixos do gráfico CDF normal:
import matplotlib. pyplot as plt import numpy as np import scipy. stats as ss #define x and y values to use for CDF x = np. linspace (-4, 4, 1000) y = ss. norm . cdf (x) #normal plot CDF plt. plot (x,y,color=' red ') plt. title (' Normal CDF ') plt. xlabel (' x ') plt. ylabel (' CDF ')
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em Python:
Como gerar uma distribuição normal em Python
Como traçar uma distribuição normal em Python