Il voto, quartiere per quartiere
Dalla singola sezione elettorale alle aree sub-comunali: come abbiamo costruito una base dati geografica del voto per leggere le differenze interne alle città.
L'idea di utilizzare i dati elettorali per analizzare i processi di segregazione e differenziazione interna delle città italiane è nata dalla lettura del lavoro di Gabriele Pinto, pubblicato nel 2023 con il titolo "Sezioni Elettorali Italiane (SEI): a new database of Italian electoral results geocoded at precinct level". Il lavoro raccoglie e geocodifica i risultati delle elezioni italiane a livello di singola sezione elettorale.
L'aspetto che ci ha maggiormente interessato di questa ampia raccolta di dati è la possibilità di osservare da vicino le differenze elettorali tra i quartieri e di utilizzare il voto come una delle chiavi di lettura delle trasformazioni sociali e territoriali delle città.
Dati elettorali
Il portale Eligendo del Ministero dell'Interno raccoglie i risultati delle elezioni svoltesi in Italia dall'Assemblea Costituente a oggi. Il principale limite di questa fonte rispetto agli obiettivi del nostro lavoro è rappresentato dal livello di aggregazione, poiché i risultati vengono generalmente forniti a livello comunale.
Scraping dei dati mancanti
Per garantire una maggiore omogeneità tra città diverse, abbiamo scelto di concentrare l'analisi sulle elezioni della Camera dei deputati.
I dati non disponibili in formato strutturato sono stati raccolti direttamente dai portali delle amministrazioni comunali mediante procedure di web scraping. Questo passaggio ha consentito di ottenere i risultati elettorali al livello delle singole sezioni.
Partiti che vanno, partiti che vengono
Durante l'integrazione dei dati provenienti da città e anni diversi è emerso che i nomi dei partiti non erano riportati in maniera uniforme. La prima fase di armonizzazione è quindi consistita nell'introduzione di un codice identificativo univoco per ciascun partito.
Lo stesso codice è stato mantenuto negli anni per i partiti che hanno modificato la propria denominazione senza alterare in modo sostanziale la struttura e l'area politica di appartenenza. Per ricostruire la storia di cambi di nome, scissioni e fusioni sono state consultate anche fonti documentali esterne. Nei casi in cui un nuovo partito fosse nato dall'unione di più formazioni politiche, è stato invece assegnato un nuovo codice.
I partiti sono stati successivamente raggruppati in correnti politiche più ampie. Come nel lavoro di riferimento, alcune formazioni spiccatamente apartitiche non sono state attribuite ad alcuna corrente. Considerata anche la loro limitata rilevanza in termini di voti, queste formazioni non sono state incluse nelle analisi successive.
| Corrente | Partiti |
|---|---|
| Centro-Sinistra | Partito Democratico, +Europa, Comunisti Italiani, Rifondazione Comunista, Italia dei Valori, Federazione dei Verdi, Partito Comunista dei Lavoratori, Partito Socialista Italiano, Sinistra Ecologia e Libertà, Centro Democratico, Rivoluzione Civile, Unione Popolare, Italia Europa Insieme, Civica Popolare Lorenzin, Liberi e Uguali, Potere al Popolo!, Partito Comunista, Lista del Popolo per la Costituzione, Per una Sinistra Rivoluzionaria, Partito Valore Umano, Alleanza Verdi e Sinistra, Impegno Civico Luigi Di Maio |
| Centro | Unione di Centro, Scelta Civica con Monti, Fare per Fermare il Declino, Partito Repubblicano Italiano, Il Popolo della Famiglia, Azione - Italia Viva, Noi di Centro Mastella |
| Centro-Destra | Forza Italia, Lega, Fiamma Tricolore, Partito Pensionati, Liberali per l'Italia - PLI, Forza Nuova, Grande Sud - MPA, Fratelli d'Italia, La Destra, MIR - Moderati in Rivoluzione, Intesa Popolare, Futuro e Libertà, CasaPound Italia, Io Amo l'Italia, Riformisti Italiani, Liberi per una Italia Equa, Rifondazione Missina Italiana, Italia agli Italiani, Blocco Nazionale per le Libertà, Ilalexit per l'Italia |
| Movimento 5 Stelle | Movimento 5 Stelle |
Sezioni che si muovono
I dati elettorali raccolti riportavano il numero identificativo della sezione, ma non sempre il nome dell'edificio nel quale era collocata o il relativo indirizzo. È stato quindi necessario verificare se una sezione identificata con lo stesso numero fosse rimasta nella medesima posizione nel corso delle diverse consultazioni elettorali.
L'analisi ha evidenziato numerosi cambiamenti nella localizzazione dei seggi tra un'elezione e l'altra. La ricostruzione è stata resa complessa dalla frammentarietà della documentazione disponibile e dalla varietà dei formati utilizzati dalle amministrazioni comunali. Alcuni Comuni pubblicano queste informazioni attraverso portali Open Data, mentre altri utilizzano documenti in formato PDF, Word o pagine web non strutturate.
Sulla base delle informazioni disponibili è stata quindi ricostruita una corrispondenza temporale tra numero della sezione, indirizzo del seggio e anno elettorale.
Coordinate
Gli indirizzi raccolti sono stati sottoposti a una fase di pulizia e standardizzazione. Abbreviazioni e varianti, come "V.le" e "Viale" oppure "A. Manzoni" e "Alessandro Manzoni", sono state ricondotte a una forma comune. A ogni indirizzo sono stati inoltre aggiunti il CAP e il nome della città.
Questa operazione è stata necessaria per procedere con il geocoding, ossia la conversione degli indirizzi in coordinate geografiche.
Le coordinate sono state ottenute tramite l'API di Nominatim, rispettando il limite di una richiesta al secondo previsto dal servizio. Gli indirizzi non riconosciuti automaticamente sono stati verificati e geolocalizzati manualmente attraverso Google Maps.
Le coordinate ottenute, insieme all'anno di validità della sezione e al relativo indirizzo, sono state quindi utilizzate per costruire un nuovo dataset geografico.
Le 360 sezioni elettorali di Firenze, distribuite in 85 edifici: ogni punto è un seggio e il raggio è proporzionale al numero di sezioni ospitate (fino a 12 nello stesso edificio). Passa sopra un punto per i numeri di sezione.
Aree subcomunali
Partizioni ISTAT a confini stabili, intermedie fra CAP e sezione di censimento.
L'Istat mette a disposizione i dati geografici relativi alle partizioni del territorio italiano e, in particolare, alle Aree subcomunali di secondo livello, indicate come ASC2, delle principali città.
Le ASC2 rappresentano una suddivisione del territorio comunale intermedia tra i CAP e le sezioni di censimento. La loro relativa stabilità temporale e il livello di dettaglio territoriale le rendono adatte agli obiettivi del nostro studio.
Una volta acquisiti gli shapefile delle aree, le coordinate delle sezioni elettorali sono state associate alle rispettive ASC2 mediante un'operazione di spatial join realizzata con la libreria GeoPandas. In questo modo è stato possibile aggregare i risultati elettorali delle singole sezioni al livello dei quartieri.
L'intensità cromatica è proporzionale alla quota di voti del vincitore: le tonalità più tenui corrispondono a vittorie di misura.
Sopra lo zero la corrente cresce rispetto alla tornata precedente, sotto arretra.
Gli indici
Indice di Gini
Per descrivere il grado di concentrazione o frammentazione dei risultati elettorali è stato utilizzato l'indice di Gini, una misura comunemente impiegata per quantificare la disuguaglianza di una distribuzione.
Sono state costruite due versioni dell'indice:
- una misura calcolata a livello di singolo quartiere, sulla distribuzione dei voti tra le diverse correnti politiche;
- una misura calcolata a livello cittadino, considerando congiuntamente i quartieri presenti in una determinata elezione.
Entrambe le versioni derivano dalla seguente formulazione generale:
Poiché il numero di correnti politiche varia tra gli anni, anche in seguito alla comparsa del Movimento 5 Stelle nel 2018, è stata utilizzata una versione normalizzata dell'indice, così da rendere maggiormente confrontabili i risultati delle diverse elezioni:
dove:
- \(a\) indica la zona ASC2;
- \(t\) indica l'anno elettorale;
- \(x_i\) rappresenta il numero di voti ricevuti dalla corrente politica \(i\);
- \(n_t\) rappresenta il numero di correnti politiche attive nell'anno \(t\).
| Gini | Interpretazione |
|---|---|
| 0 | I voti sono perfettamente bilanciati tra le correnti politiche |
| 1 | Una sola corrente politica raccoglie tutti i voti |
Valori bassi dell'indice indicano quindi una distribuzione più equilibrata dei voti, mentre valori elevati segnalano una maggiore concentrazione verso una o poche correnti politiche.
I di Moran globale
L'indice di Gini consente di descrivere se i risultati elettorali di un quartiere siano politicamente concentrati o frammentati, ma non fornisce informazioni sulla distribuzione spaziale di tali valori.
Per valutare se quartieri con caratteristiche simili tendano a essere geograficamente vicini, è stato calcolato l'indice I di Moran globale. Si tratta di una misura di autocorrelazione spaziale che assume valori positivi quando aree con valori simili risultano spazialmente raggruppate. Al contrario, valori negativi indicano che aree vicine tendono a presentare valori differenti.
La formula utilizzata è:
dove:
- \(c\) indica la città;
- \(t\) indica l'anno;
- \(x_{i,c,t}\) rappresenta il valore della variabile nell'area \(i\), nella città \(c\) e nell'anno \(t\), ad esempio
pol_giniowinner_share; - \(\bar{x}_{c,t}\) rappresenta la media della variabile nella città \(c\) e nell'anno \(t\);
- \(w_{ij,c,t}\) rappresenta il peso spaziale tra le aree \(i\) e \(j\) nella città \(c\) e nell'anno \(t\);
- \(S_{0,c,t} = \sum_i \sum_j w_{ij,c,t}\) rappresenta la somma complessiva dei pesi spaziali;
- \(n_{c,t}\) rappresenta il numero di aree considerate nella città \(c\) e nell'anno \(t\).
| I di Moran | Interpretazione |
|---|---|
| Positivo | Le aree con valori simili tendono a essere spazialmente raggruppate |
| Intorno a 0 | Non emerge un chiaro pattern di autocorrelazione spaziale |
| Negativo | Le aree confinanti tendono a presentare valori differenti |
| p-value significativo | Il pattern osservato è difficilmente attribuibile al caso |
Le 1.248 sezioni elettorali di Milano, ospitate in 203 seggi (il raggio conta le sezioni per edificio). Le 20 aree in ocra non ne contengono alcuna, e sono tali discontinuità a rendere necessario il criterio di vicinato KNN.
I pesi spaziali \(w_{ij,c,t}\) definiscono quali aree debbano essere considerate vicine. Riprendendo l'analogia con gli scacchi, la contiguità di tipo Rook considera vicine le aree che condividono un lato, come i movimenti della torre, mentre la contiguità di tipo Queen considera anche quelle che condividono soltanto un vertice, analogamente ai movimenti della regina.
Questi metodi sono implementati nella libreria libpysal, che mette a disposizione strumenti per la costruzione delle matrici dei pesi e per l'analisi spaziale.
Dopo aver sperimentato entrambi i criteri di contiguità, è emersa la presenza di aree isolate. In alcuni quartieri, infatti, non erano presenti sezioni elettorali e non risultavano quindi disponibili osservazioni. Per evitare che queste discontinuità producessero unità prive di vicini, è stato adottato il metodo K-Nearest Neighbors, o KNN, che associa a ogni area un numero prefissato di unità geograficamente più vicine, anche quando non direttamente confinanti.
I punti pieni indicano un risultato statisticamente significativo (p < 0,05); i punti vuoti un pattern non distinguibile dal caso.
I di Moran locale
Mentre l'indice di Moran globale consente di verificare l'esistenza complessiva di autocorrelazione spaziale all'interno di una città, l'indice di Moran locale permette di individuare le specifiche aree nelle quali si formano cluster o anomalie spaziali.
Per un'area \(a\), appartenente alla città \(c\) e osservata nell'anno \(t\), l'indice è definito come:
con:
dove:
- \(a\) indica l'area ASC2 analizzata;
- \(b\) indicizza le aree vicine;
- \(k\) indicizza tutte le aree appartenenti alla stessa combinazione città-anno ed è utilizzato per calcolarne la varianza;
- \(c\) indica la città;
- \(t\) indica l'anno;
- \(x_{a,c,t}\) rappresenta il valore della variabile nell'area \(a\), nella città \(c\) e nell'anno \(t\), ad esempio
pol_gini; - \(\bar{x}_{c,t}\) rappresenta il valore medio della variabile nella città \(c\) e nell'anno \(t\);
- \(w_{ab,c,t}\) rappresenta il peso spaziale tra l'area \(a\) e l'area vicina \(b\);
- \(n_{c,t}\) rappresenta il numero di aree presenti nella città \(c\) e nell'anno \(t\);
- \(m_{2,c,t}\) rappresenta il termine di normalizzazione basato sulla varianza della distribuzione città-anno.
Dopo il calcolo dell'indice di Moran locale, ogni quartiere è stato classificato mediante i Local Indicators of Spatial Association, o cluster LISA.
La classificazione considera congiuntamente:
- se il valore osservato nel quartiere è superiore o inferiore alla media della relativa combinazione città-anno;
- se i valori osservati nelle aree vicine sono, a loro volta, superiori o inferiori alla stessa media.
Nel caso della variabile pol_gini, i cluster possono essere interpretati come segue:
| Cluster LISA | Interpretazione |
|---|---|
| High-High | Alta concentrazione politica circondata da aree caratterizzate da alta concentrazione politica |
| Low-Low | Bassa concentrazione politica circondata da aree caratterizzate da bassa concentrazione politica |
| High-Low | Alta concentrazione politica circondata da aree caratterizzate da bassa concentrazione politica |
| Low-High | Bassa concentrazione politica circondata da aree caratterizzate da alta concentrazione politica |
| Not significant | Il cluster locale non risulta statisticamente significativo |
Le configurazioni High-High e Low-Low rappresentano cluster spaziali di valori simili, mentre High-Low e Low-High identificano potenziali anomalie spaziali, ossia quartieri che presentano valori differenti rispetto alle aree circostanti.
Indice di polarizzazione
La differenza tra l'80° e il 20° percentile è stata utilizzata come misura sintetica della distanza tra la parte alta e la parte bassa della distribuzione.
dove \(Q_{0.80}\) e \(Q_{0.20}\) rappresentano rispettivamente l'80° e il 20° percentile della distribuzione osservata.
Un valore elevato indica una maggiore distanza tra le due parti della distribuzione e può essere interpretato come un segnale di maggiore polarizzazione. Un valore contenuto indica invece una distribuzione più omogenea rispetto alla variabile analizzata.