Como criar um gráfico qq em python


Um gráfico QQ , abreviação de “quantil-quantil”, é frequentemente usado para avaliar se um conjunto de dados potencialmente vem ou não de uma distribuição teórica.

Na maioria dos casos, esse tipo de gráfico é usado para determinar se um conjunto de dados segue ou não uma distribuição normal .

Este tutorial explica como criar um gráfico QQ para um conjunto de dados em Python.

Exemplo: gráfico QQ em Python

Suponha que temos o seguinte conjunto de dados de 100 valores:

 import numpy as np

#create dataset with 100 values that follows a normal distribution
np.random.seed(0)
data = np.random.normal(0,1, 1000)

#view first 10 values
data[:10] 

array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799,
       -0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ])

Para criar um gráfico QQ para este conjunto de dados, podemos usar a função qqplot() da biblioteca statsmodels:

 import statsmodels.api as sm
import matplotlib.pyplot as plt

#create QQ plot with 45-degree line added to plot
fig = sm.qqplot(data, line='45')
plt.show()

Gráfico QQ em Python

Em um gráfico QQ, o eixo x exibe os quantis teóricos . Isso significa que ele não mostra seus dados reais, mas representa onde seus dados estariam se fossem distribuídos normalmente.

O eixo Y exibe seus dados atuais . Isso significa que se os valores dos dados seguirem uma linha aproximadamente reta em um ângulo de 45 graus, os dados serão distribuídos normalmente.

Podemos ver em nosso gráfico QQ acima que os valores dos dados tendem a seguir de perto os 45 graus, o que significa que os dados provavelmente são distribuídos normalmente. Isso não deveria ser surpreendente, já que geramos os 100 valores de dados usando a função numpy.random.normal() .

Em vez disso, considere se gerássemos um conjunto de dados de 100 valores distribuídos uniformemente e criássemos um gráfico QQ para esse conjunto de dados:

 #create dataset of 100 uniformly distributed values
data = np.random.uniform(0,1, 1000)

#generate QQ plot for the dataset
fig = sm.qqplot(data, line='45')
plt.show()

Gráfico QQ com linha reta em Python usando matplotlib

Os valores dos dados claramente não seguem a linha vermelha de 45 graus, indicando que não seguem uma distribuição normal.

Notas sobre gráficos QQ

Tenha em mente as seguintes notas sobre gráficos QQ:

  • Embora um gráfico QQ não seja um teste estatístico formal, ele fornece uma maneira simples de verificar visualmente se um conjunto de dados é normalmente distribuído ou não.
  • Tenha cuidado para não confundir gráficos QQ com gráficos PP , que são menos comumente usados e menos úteis para analisar valores de dados que ficam nas caudas da distribuição.

Você pode encontrar mais tutoriais de Python aqui .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *