Eterogeneità in statistica: indice di Gini

L’indice di eterogeneità di Gini è un indice statistico che misura la variabilità di una variabile qualitativa e che ci dà dunque l’idea di quanto il campione statistico sia omogeneo o eterogeneo in base ad una determinata condizione.

 

Perché usare l’indice di eterogeneità di Gini

Quando studiamo una variabile quantitativa siamo soliti calcolare un indice statistico di posizione centrale (come la media o la mediana) e un indice statistico di variabilità (come la deviazione standard o la differenza interquartile).

Per trovare questi indici dobbiamo effettuare operazioni matematiche che coinvolgono i valori della variabile, come somme, prodotti o divisioni. Tali operazioni non possono essere applicate ad una variabile qualitativa, poiché essa in generale non è descritta da numeri. Ma l’esigenza di sintetizzare le misurazioni con un indice di posizione e di variabilità rimane la stessa, avremo bisogno però di effettuare calcoli differenti. In questo contesto si inserisce allora il calcolo della moda come indice di posizione e dell’indice di eterogeneità di Gini come indice di variabilità.

 

Calcolo dell’indice di eterogeneità di Gini

Tabella delle frequenze relative

Il primo passo da effettuare è calcolare le frequenze relative di ogni possibile modalità assunta dalla variabile qualitativa oggetto di analisi. Ricordo che le frequenze relative si possono ottenere semplicemente dividendo le frequenze assolute per il numero di unità statistiche totali. Supponiamo ad esempio di aver riportato in una variabile il colore degli occhi dei cinque componenti di un nucleo famigliare: il padre e il figlio maggiore hanno gli occhi neri mentre la madre e i due figli minori hanno gli occhi verdi.

La tabelle delle frequenze relative della variabile “Colore occhi” sarà

ModalitàFrequenze assoluteFrequenze relative
Neri22/5 = 0,40
Verdi33/5 = 0,60

 

Calcolo dell’indice

L’indice di eterogeneità di Gini è pari al risultato della sottrazione tra:

  • il numero 1
  • la somma di tutte le frequenze relative elevate al quadrato

In questo caso, ad esempio, avremo: 1 – (0,402 + 0,602 ) = 1 – (0,16 + 0,36) = 0,48

In generale la formula dell’indice di eterogeneità di Gini è

formula indice eterogeneità di ginidove k è il numero di possibili valori distinti che la variabile qualitativa può assumere (nel nostro esempio due, neri e verdi).

 

Interpretazione dell’indice

L’indice di Gini può assumere solo valori maggiori o uguali a zero. In particolare, sarà zero solo nel caso in cui tutte le unità statistiche assumono sempre lo stesso valore costante, cioè nel caso di massima omogeneità o, equivalentemente, di minima eterogeneità. Infatti, quando è presente un solo valore ripetuto per tutti i casi, avremo un’unica frequenza relativa pari a 1 e quindi, applicando la formula precedente, otterremo 1 – 12 = 0.

Il valore massimo dell’eterogeneità non è fisso per tutte le variabili, ma dipende dal numero di valori distinti che essa può assumere. Si può dimostrare che se indichiamo con la lettera k questo numero, allora l’indice di Gini può valore al massimo (k-1)/k.

 

Indice di eterogeneità di Gini normalizzato

Per poter confrontare l’eterogeneità di variabili diverse, possiamo calcolare dunque l’indice di Gini normalizzato che assumerà sempre valori compresi tra 0 e 1. Per far ciò ci basterà dividere l’indice di Gini per il suo valore massimo possibile e quindi per (k-1)/k. In formule, avremo:formula dell'indice di eterogeneità di Gini normalizzato

 

Calcolo con T SQL

Vediamo come calcolare il coefficiente con il linguaggio SQL ipotizzando che i nostri dati siano all’interno di una tabella di un database SQL Server.

WITH Fr_assolute AS (
  SELECT IdFornitore,
      COUNT(*) AS FrequenzaAssoluta
   FROM Fatture
   GROUP BY IdFornitore),
Fr_relative AS (
  SELECT IdFornitore,
     1.0 * FrequenzaAssoluta
     /SUM(FrequenzaAssoluta) OVER()
       AS FrequenzaRelativa
   FROM Fr_assolute)
SELECT 1-SUM(POWER(FrequenzaRelativa,2))
   AS Indice_di_eterogeneità_di_Gini
FROM Fr_relative;

Per effettuare il calcolo abbiamo utilizzato due CTE:

  • la prima per calcolare le frequenze assolute tramite una GROUP BY;
  • la seconda per calcolare le frequenze relative tramite una window function.

Infine abbiamo usato la funzione POWER per elevare le frequenze al quadrato e, infine, calcolare l’indice.

 

Calcolo con Python

Supponiamo ora che i nostri dati siano presenti all’interno di un Dataframe della libreria pandas di Python. Iniziamo creando il dataset e importando le librerie necessarie per il calcolo.

import pandas as pd
import numpy as np
colore_occhi = ["Neri", "Neri", "Verdi", "Verdi", "Verdi"]
df = pd.DataFrame(data = colore_occhi, 
                  columns = ['colore'])

A questo punto possiamo calcolare le frequenze assolute tramite il metodo groupby di pandas:

fr_assolute = df.groupby(by="colore", 
                         dropna=False).\ 
    agg(conteggio = ('colore', np.size))

Convertiamo i dati in un array di numpy per poter eseguire più facilmente i calcoli matematici.

array = fr_assolute["conteggio"].values

Possiamo ora calcolare le frequenze relative e l’indice di eterogeneità di Gini

fr_relative = array / sum(array)
Indice_eter_Gini = 1 - sum(fr_relative*fr_relative)

 

Continua a imparare

Scroll to Top
Torna su