Come creare un grafico qq in python
Un grafico QQ , abbreviazione di “quantile-quantile”, viene spesso utilizzato per valutare se un set di dati proviene potenzialmente o meno da una distribuzione teorica.
Nella maggior parte dei casi, questo tipo di grafico viene utilizzato per determinare se un set di dati segue o meno una distribuzione normale .
Questo tutorial spiega come creare un grafico QQ per un set di dati in Python.
Esempio: grafico QQ in Python
Supponiamo di avere il seguente set di dati di 100 valori:
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 ])
Per creare un grafico QQ per questo set di dati, possiamo utilizzare la funzione qqplot() dalla libreria 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()
In un grafico QQ, l’asse x mostra i quantili teorici . Ciò significa che non mostra i tuoi dati effettivi, ma rappresenta piuttosto dove si troverebbero i tuoi dati se fossero distribuiti normalmente.
L’asse Y mostra i dati attuali . Ciò significa che se i valori dei dati seguono una linea approssimativamente retta con un angolo di 45 gradi, i dati vengono distribuiti normalmente.
Possiamo vedere nel nostro grafico QQ sopra che i valori dei dati tendono a seguire da vicino i 45 gradi, il che significa che i dati sono probabilmente distribuiti normalmente. Ciò non dovrebbe sorprendere poiché abbiamo generato i 100 valori di dati utilizzando la funzione numpy.random.normal() .
Consideriamo invece se generassimo un set di dati di 100 valori distribuiti uniformemente e creassimo un grafico QQ per quel set di dati:
#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()
I valori dei dati chiaramente non seguono la linea rossa di 45 gradi, indicando che non seguono una distribuzione normale.
Note sui grafici QQ
Tieni presente le seguenti note sui grafici QQ:
- Sebbene un grafico QQ non sia un test statistico formale, fornisce un modo semplice per verificare visivamente se un set di dati è distribuito normalmente o meno.
- Fare attenzione a non confondere i grafici QQ con i grafici PP , che sono meno comunemente usati e meno utili per analizzare i valori dei dati che cadono alle code della distribuzione.
Puoi trovare altri tutorial su Python qui .