La curva di Lorenz è un grafico che mostra come è distribuita una variabile statistica, come il reddito o la ricchezza. In altre parole viene usata per rappresentare graficamente il grado di concentrazione di una variabile.
Vengono disposti i valori della variabile in ordine non decrescente;
La curva si ottiene ponendo su un piano cartesiano le frequenze.
La curva di Lorenz è la rappresentazione grafica della concentrazione. Essa si costruisce su un piano cartesiano in cui l’asse delle ascisse rappresenta le frazioni cumulate di unità () e l’asse delle ordinate rappresenta le proporzioni cumulate dell’ammontare del carattere (). I punti vengono congiunti da una spezzata.
•
La bisettrice (la retta ) rappresenta la perfetta equidistribuzione, dove per ogni .
•
Maggiore è l’area compresa tra la bisettrice e la curva di Lorenz, maggiore è la concentrazione. Questa area è direttamente proporzionale al rapporto di Gini.
•
In condizioni di massima concentrazione, la curva di Lorenz coincide con l’asse delle ascisse per le prime unità (poiché per ) e poi sale verticalmente al punto (l’ultima unità possiede l’intero ammontare).
Codice Python plot curva di Lorenz
data = sns.load_dataset("diamonds")af_price = data['price'].value_counts().sort_values() # Frequenza assoluta di 'price'# Frequenze relative e cumulaterel_freq = af_price / len(data)cum_rel_freq = rel_freq.cumsum()price_proportion = np.arange(1, len(af_price) + 1) / len(af_price) # Proporzione cumulata del prezzo# Indice di concentrazione di Ginix_lorenz = np.insert(price_proportion, 1, 0) # Aggiungo 0,0 come punto inizialey_lorenz = np.insert(cum_rel_freq.values, 0, 0)# Area sotto la curva di Lorenzarea_lorenz = np.trapezoid(y_lorenz, x_lorenz)# Area sotto la retta di equidistribuzionearea_equi = 0.5# Indice di Ginigini = (area_equi - area_lorenz) / area_equi# 4. Disegno della curva di Lorenzfig, ax = plt.subplots(figsize=(10, 8))ax.plot(x_lorenz, y_lorenz, 'b-', linewidth=2, label='Curva di Lorenz')plt.plot([0, 1], [0, 1], 'r--', linewidth=2, label='Equidistribuzione')plt.xlabel('Proporzione cumulata delle isole')plt.ylabel('Proporzione cumulata dei pinguini')plt.title(f'Curva di Lorenz per la distribuzione dei pinguini sulle isole\nIndice di Gini = {gini:.4f}')plt.grid(True)plt.legend()# Tabella riepilogativatable = pd.DataFrame({ 'Island': af_price.index, 'Frequenza assoluta': af_price.values, 'Frequenza relativa': rel_freq.values, 'Frequenza cumulata': cum_rel_freq.values})print("Tabella di distribuzione dei pinguini per isola:")print(table) print(f"\nIndice di concentrazione di Gini: {gini:.4f}")plt.show()
Esempio
La curva di Lorenz è spesso usata per misurare la disuguaglianza nella distribuzione del reddito o della ricchezza