Cap 2
Cap 2
Quali sono i benefici della vaccinazione dei neonati contro il morbillo? In particolare, la vaccinazione salva
vite? Per rispondere a questa domanda puoi usare i dati sui tassi di vaccinazione e mortalità in vari paesi in
vari anni. Le organizzazioni internazionali raccolgono tali dati su molti paesi per molti anni. I dati sono
scaricabili gratuitamente, ma sono complessi. Come dovresti importare, archiviare, organizzare e usare i dati
per avere tutte le informazioni rilevanti in un formato accessibile che si presti a un'analisi significativa? E quali
problemi dovresti cercare nei dati, come puoi identificare quei problemi e come dovresti affrontarli?
Vuoi sapere chi sono i manager di maggior successo (come vengono anche chiamati gli allenatori nel calcio)
nella massima serie calcistica inglese. Per indagare su questa domanda, hai scaricato i dati su tutte le partite
giocate nel campionato, così come i dati sui manager, inclusa la squadra in cui hanno lavorato e quando.
Come combinare questi dati per rispondere alla domanda? Inoltre, come scoprire se ci sono problemi con i
dati che impediscono di collegarli e analizzarli, e come affrontere tali problemi?
Prima di analizzare i dati, gli analisti di dati dedicano molto tempo all'organizzazione, alla gestione e alla
pulizia per prepararli all'analisi. Questo è chiamato data wrangling o data munging. Si dice spesso che
l'80% del tempo di analisi dei dati viene dedicato a queste attività. Il data wrangling è un processo iterativo:
di solito iniziamo organizzando e pulendo i nostri dati, quindi iniziamo a fare l'analisi e poi torniamo al
processo di pulizia quando emergono problemi durante l'analisi.
Questo capitolo riguarda la preparazione dei dati per l'analisi: come iniziare a lavorare con i dati. Innanzitutto,
chiariamo alcuni concetti: tipi di variabili, tipi di osservazioni, tabelle di dati e set di dati. Passiamo quindi al
concetto di dati ordinati: tabelle di dati con dati sugli stessi tipi di osservazioni. Discutiamo potenziali
problemi con osservazioni e variabili e come affrontarli. Descriviamo le buone pratiche per il processo di
pulizia dei dati e discutiamo le ulteriori sfide del lavoro con i Big Data. Questo capitolo include tre casi di
studio. Il primo, Finding a good deal among hotels: data preparation, continua a lavorare per trovare hotel
che siano sottocosto rispetto alla loro posizione e qualità. In questo capitolo, il caso di studio illustra come
trovare problemi con osservazioni e variabili e come risolverli. Utilizza il set di dati hotels-vienna. Il secondo
caso di studio, Identifying successful football managers, combina informazioni su partite di calcio inglese e
manager, utilizzando il set di dati football. Utilizzeremo questi dati in un caso di studio nel Capitolo 24 per
scoprire se la sostituzione dei manager football migliora le prestazioni della squadra. Questo caso di studio
illustra il collegamento di tabelle di dati con diversi tipi di osservazioni, problemi che possono sorgere con tali
collegamenti e le loro soluzioni. Il terzo caso di studio, Displaying immunization rates across countries,
illustra come archiviare dati multidimensionali. Utilizza il set di dati world-bank-immunization. Utilizzeremo
questi dati in uno studio di caso per verificare se l'immunizzazione salva vite, nel capitolo 23.
Risultati di apprendimento
1
2.1 Types of Variables
I dati sono costituiti da osservazioni e variabili. Le osservazioni sono le unità per cui vengono raccolte le
informazioni (clienti, paesi, giorni in cui un asset viene scambiato). Le variabili contengono le informazioni
(reddito, dimensione, prezzo). Le variabili assumono valori specifici. Il nome variabile deriva dal fatto che
hanno più di un valore: i valori variano a seconda delle osservazioni.
Per prima cosa, discutiamo i vari tipi di variabili e le sezioni seguenti discuteranno i vari tipi di osservazioni.
Descriviamo i tipi di variabili in base al tipo di informazioni che catturano e come i valori della variabile
vengono archiviati nei dati. È utile comprendere i tipi di variabili in quanto aiutano a spiegare cosa possiamo
fare con le variabili. A volte il software statistico chiede anche agli analisti di dati di specificare il tipo di
ciascuna variabile.
Le variabili quantitative nascono come numeri e vengono archiviate come numeri, in formato numerico.
In genere, possono assumere molti valori. Esempi includono prezzi, numeri di paesi, costi, ricavi, età, distanza.
Data e ora sono casi speciali di variabile quantitativa. Spesso vengono misurate in scale specifiche e archiviate
in uno specifico formato data/ora.
Le variabili qualitative, chiamate anche variabili categoriali o variabili fattore, non nascono come numeri.
Invece, i loro valori hanno un'interpretazione specifica, che in genere denota che l'osservazione appartiene
a una categoria. Tipi o marche di prodotti, nomi di paesi, livelli di istruzione più elevati di individui sono
esempi. Molto spesso, le variabili qualitative hanno pochi valori, ma a volte ne hanno molti. Un tipo speciale
di variabile qualitativa ha il solo scopo di identificare le osservazioni: sono identificatori o variabili ID. Con
molte osservazioni, una variabile ID ha molti valori. (Abbiamo introdotto le variabili ID in precedenza nel
Capitolo 1, Sezione 1.1.)
Infine, le variabili quantitative sono anche chiamate variabili continue e le variabili qualitative sono anche
chiamate variabili discrete. Questi nomi derivano dalla matematica, dove una variabile continua ha valori
senza lacune, mentre una variabile discreta può avere solo valori specifici, con lacune intermedie. Queste
etichette sono un po' fuorvianti per i dati reali in cui poche variabili sono misurate in modo veramente
continuo a causa di unità di misura intere (dollari, migliaia di dollari, chilometri e così via). I valori delle
variabili qualitative sono talvolta memorizzati come testo, che descrive le categorie. Il testo nei dati è anche
chiamato stringa. La maggior parte degli analisti di dati preferisce memorizzare le variabili qualitative come
numeri. In tal caso, ogni numero dovrebbe corrispondere a una categoria e le etichette dei valori mostrano
questa corrispondenza, fornendo il significato di ogni valore numerico. Ad esempio, la marca di cioccolato
scelta da un cliente di cioccolato, una variabile qualitativa, può essere memorizzata come stringa con il nome
o l'abbreviazione della marca o come numero con etichette appropriate (ad esempio, 1 = Lindt, 2 = Godiva).
Le variabili binarie sono un caso speciale di variabile qualitativa: possono assumere due valori. Molto spesso
le informazioni rappresentate dalle variabili binarie sono una risposta sì/no al fatto che l'osservazione
appartenga a un gruppo. Esempi includono se il rispondente a un sondaggio è donna o meno, se un'azienda
è nel settore manifatturiero o meno. Ai fini dell'analisi dei dati è meglio che assumano valori 0 o 1: 0 per no,
1 per sì. Le variabili binarie con valori 0/1 sono anche chiamate variabili fittizie o variabili indicatrici. In termini
di scala di misurazione, gli analisti di dati spesso distinguono quattro tipi di dati: nominale, ordinale, intervallo
e rapporto. Questi possono essere considerati come perfezionamenti della classificazione
qualitativa/quantitativa.
Le variabili nominali sono variabili qualitative con valori che non possono essere ordinati in modo
univoco. Esempi includono i nomi dei marchi di cioccolato acquistati da un cliente o le città delle sedi
centrali dei produttori di cioccolato. I singoli decisori possono avere un certo ordinamento di queste
opzioni, ma non esiste una classificazione universalmente concordata di tutte le opzioni per questi
tipi di variabili.
Le variabili ordinali o ordinate assumono valori che sono ordinati in modo univoco. Tutte le variabili
quantitative possono essere ordinate; anche alcune variabili qualitative possono essere ordinate.
Esempi includono misure di salute soggettive (se qualcuno valuta la propria salute come scarsa,
discreta, buona, molto buona o eccellente) o la forza di un'opinione (ad esempio, se si è fortemente
d'accordo, d'accordo, in disaccordo o fortemente in disaccordo con un'affermazione).
2
Le variabili di intervallo hanno la proprietà che una differenza tra valori significa la stessa cosa
indipendentemente dalle grandezze. Tutte le variabili quantitative hanno questa proprietà, ma le
variabili qualitative non hanno questa proprietà. Una differenza di temperatura di un grado Celsius
è la stessa se 20 viene confrontato con 21 o 30 con 31. Una differenza di prezzo di un dollaro di 3 $
contro 4 $ è la stessa di 10 $ contro 11 $.
Le variabili di rapporto, note anche come variabili di scala, sono variabili di intervallo con la proprietà
aggiuntiva che i loro rapporti hanno lo stesso significato indipendentemente dalle grandezze. Questa
proprietà aggiuntiva implica anche uno zero significativo nella scala. Molte variabili quantitative, ma
non tutte, hanno questa proprietà. Le misure di lunghezza, tempo trascorso, età, valore o dimensione
sono in genere variabili di rapporto. La distanza zero è inequivocabile e una corsa di 10 km è lunga il
doppio di una di 5 km. Un'auto usata venduta a zero dollari non costa nulla in modo inequivocabile
e un'auto usata venduta a 8000 dollari è il doppio di una venduta a 4000 dollari. Un esempio di
variabile di intervallo che non è una variabile di rapporto è la temperatura: 20 gradi non sono il
doppio di 10 gradi, che siano Celsius o Fahrenheit.
Spesso, i dati grezzi hanno già variabili che rientrano nei gruppi descritti sopra e sono pronti per la pulizia e
quindi l'analisi. A volte, però, le variabili devono essere create dalle informazioni a cui abbiamo accesso. Ciò
può essere impegnativo. Tali casi difficili includono testi, immagini, voce e video. Ad esempio, le variabili che
potremmo voler creare dal testo sono la frequenza di parole specifiche o la proporzione di aggettivi positivi
o negativi. Lavorare con tali informazioni è un ramo in rapido sviluppo della scienza dei dati, ma va oltre lo
scopo del nostro libro di testo.
Le variabili qualitative (categoriali) hanno pochi valori, spesso denotando una categoria a cui
appartiene l'osservazione. Possono essere nominali o ordinate.
Le variabili binarie (fittizie) sono un caso speciale di variabile qualitativa, con solo due valori; è meglio
averli come 0 e 1.
Le variabili quantitative (numeriche) nascono come numeri e possono assumere molti valori che sono
significativi di per sé. Sono sempre variabili di intervallo con differenze significative e talvolta sono
variabili di rapporto.
Prima di passare alle osservazioni, prendiamo in considerazione un altro modo per distinguere le variabili
quantitative.
Nell'analisi aziendale, economica e politica lavoriamo spesso con quantità che potrebbero misurare un flusso
o catturare uno stock.
Le variabili di flusso sono il risultato di processi durante un certo periodo di tempo. In genere, sono il risultato
di attività nel tempo. L'esempio da manuale di una variabile di flusso è la quantità di acqua in un fiume che
ieri scorreva attraverso una chiusa di un bacino; esempi economici includono le vendite di cioccolato nel
mese scorso e il deficit governativo l'anno scorso.
Le variabili di stock si riferiscono a quantità in un dato momento. Spesso, sono un'istantanea di un'azienda,
un mercato, un'economia o una società. L'esempio da manuale è la quantità di acqua in un bacino alle 8 di
questa mattina. Esempi economici includono l'inventario di cioccolato in un negozio alla fine del mese scorso
o l'importo del debito pubblico alla fine dell'anno scorso.
L'importanza di distinguere le variabili di flusso e di stock deriva dal modo in cui in genere lavoriamo con
esse. Ad esempio, la loro aggregazione significativa differisce: spesso, le variabili di flusso vengono sommate
(vendite mensili a vendite annuali); le variabili di stock vengono mediate (inventario medio alla fine di ogni
mese dell'anno scorso). Ma le variabili di flusso e di stock possono essere correlate: la differenza tra stock in
diversi punti nel tempo è spesso correlata alle variabili di flusso. Ad esempio, la differenza tra gli inventari di
una fabbrica di cioccolato alla fine di questo mese e alla fine del mese scorso è la differenza tra la produzione
3
di cioccolato e le vendite di cioccolato durante il mese scorso, due variabili di flusso. Non tutte le variabili
quantitative sono flusso o stock: controesempi includono prezzo e distanza. Ma quando una variabile è un
flusso o uno stock, potrebbe essere importante tenerlo a mente.
Tipi di osservazioni
Così come è più facile distinguere vari tipi di variabili, ha senso introdurre concetti per i tipi di osservazioni.
Ricorda che le osservazioni sono le righe di una tabella dati (Capitolo 1, Sezione 1.1). Ma in tabelle dati diverse
le osservazioni possono significare cose molto diverse. Quelle "cose" sono correlate alle entità fisiche o legali
effettive, o dimensioni, di cui trattano i nostri dati, come aziende, individui, giorni o transazioni. Ci sono due
tipi principali di entità nell'analisi dei dati economici: entità trasversali ed entità di serie temporali. Queste
possono dare origine a dati con osservazioni trasversali, osservazioni di serie temporali o osservazioni che
hanno sia una dimensione trasversale che una di serie temporale (Tabella 2.1).
Nei dati trasversali (dati xsec), le osservazioni sono entità trasversali, come persone, aziende o paesi.
Tali entità sono anche chiamate unità trasversali. Nei dati xsec, ogni variabile si riferisce allo stesso tempo tra
le unità (stesso mese, stesso anno). Le unità trasversali sono indicate dall'indice i, in modo che xi si riferisca
alla variabile x per l'unità trasversale i. La variabile ID nelle tabelle di dati trasversali dovrebbe identificare
ciascuna unità trasversale.
Nei dati delle serie temporali (dati tseries), le osservazioni sono punti o intervalli di tempo diversi, come
l'orario di chiusura del mercato azionario o la durata di un anno solare. Queste entità delle serie temporali
sono anche chiamate periodi di tempo. Nei dati tseries, tutte le osservazioni si riferiscono alla stessa entità
(persona, azienda, paese) e sono diverse in termini di periodo di osservazione. Le osservazioni delle serie
temporali sono indicate dall'indice t. Le variabili ID nei dati delle serie temporali indicano il periodo di
osservazione. I periodi di tempo sono caratterizzati dalla loro frequenza delle serie temporali, detta anche
periodicità. La frequenza delle serie temporali è la differenza di tempo tra le osservazioni. La frequenza delle
serie temporali può essere annuale, mensile, settimanale, giornaliera, oraria e così via. La frequenza delle
serie temporali è inferiore se le osservazioni sono meno frequenti; la frequenza delle serie temporali è
superiore se le osservazioni sono più frequenti. Ad esempio, i dati annuali hanno una frequenza inferiore
rispetto ai dati mensili; i dati settimanali hanno una frequenza superiore rispetto ai dati mensili. La frequenza
delle serie temporali può anche essere irregolare. Ad esempio, le osservazioni adiacenti possono riferirsi a
tempi di transazioni, separati da un lasso di tempo pari a quello che intercorre tra le transazioni. In effetti, la
maggior parte delle frequenze presenta delle irregolarità: anni e mesi possono avere numeri di giorni diversi,
oppure il tempo effettivo rilevante per la variabile può essere diverso (ad esempio il numero di giorni
lavorativi in un anno per produrre PIL in un paese o il numero di ore lavorative in un mese per produrre
output in un'azienda). Se e come affrontare tali irregolarità deve essere deciso caso per caso. I dati
multidimensionali hanno osservazioni su più dimensioni. I dati multidimensionali più comuni sono i dati di
serie temporali trasversali, chiamati anche dati xt, dati longitudinali o dati panel. I dati xt includono più unità
trasversali osservate più volte. Esempi includono dati finanziari annuali su tutte le aziende in un paese,
vendite settimanali in vari negozi al dettaglio o dati macroeconomici trimestrali su vari paesi. Le osservazioni
nei dati xt sono un'unità osservata in un periodo di tempo. In genere, le osservazioni nei dati xt vengono
indicate utilizzando due indici, i per la sezione trasversale e t per la serie temporale, in modo che xit denoti
la variabile x per l'unità xsec i al tempo t.
4
time series (xt,longitudinal, units observed across cross-sectional weekly, countries observed
or panel) multiple time periods units; one ID identifies time yearly
periods
Dati ordinati
Dopo aver appreso i tipi di variabili e osservazioni, introduciamo alcuni concetti su come i dati sono, o
dovrebbero essere, organizzati. Una guida utile per organizzare e archiviare i dati è l'approccio dei dati
ordinati. In questa sezione introdurremo i principi dell'organizzazione dei dati ordinati.
I dati sono archiviati in una o più tabelle dati, ciascuna composta da righe di osservazioni e colonne di variabili.
Un set di dati può essere costituito da una singola tabella dati o da più tabelle dati correlate. In breve,
l'approccio dei dati ordinati prescrive che:
L'ultimo punto significa che quando il set di dati contiene informazioni su diversi tipi di osservazioni composte
da diversi tipi di entità, le informazioni su di esse devono essere archiviate in diverse tabelle dati. Ad esempio,
un set di dati sugli acquisti di vari prodotti da parte dei clienti può includere una tabella di dati sui clienti (la
loro età, reddito e così via), una tabella di dati sui prodotti (tipo, marca, prezzo, indicatori di qualità) e una
tabella di dati sugli eventi di acquisto (quale cliente ha acquistato quale prodotto e quando).
Abbiamo introdotto le variabili ID in precedenza, nella Sezione 2.1. Sono particolarmente importanti per i set
di dati con più tabelle di dati. Per tenere traccia delle entità all'interno e tra le tabelle di dati, ogni tipo di
entità dovrebbe avere la propria variabile ID, che dovrebbe essere archiviata in ogni tabella di dati con
informazioni su quel tipo di entità. Lo scopo di una variabile ID è identificare in modo univoco e inequivocabile
ogni entità nella tabella di dati e tra le tabelle di dati in un set di dati.
Si consideri il nostro esempio di un set di dati con tre tabelle di dati, la prima sui clienti e le loro caratteristiche,
la seconda sui prodotti e le loro caratteristiche e la terza sugli eventi di acquisto. I clienti devono avere il loro
ID che li identifica nella prima e nella terza tabella di dati; i prodotti devono avere il loro ID che li identifica
nella seconda e nella terza tabella di dati; la terza tabella dati dovrebbe avere ancora un'altra variabile ID che
identifica l'evento di acquisto.
L'approccio dei dati ordinati prescrive che le tabelle dati debbano avere un'osservazione in una e una sola
riga. È un principio semplice, ma nella pratica possono sorgere vari problemi. A volte ci sono righe non di
osservazione nella tabella dati. Queste dovrebbero essere cancellate. Se tali righe contengono informazioni
importanti, dovrebbero essere archiviate in qualche altro modo, ad esempio nella documentazione dei dati.
Una potenziale eccezione è la riga di intestazione che contiene i nomi delle variabili. Nel formato foglio di
calcolo e testo, l'intestazione occupa la prima riga nella tabella dati. Quando viene letta nel software
statistico, questa riga di intestazione diventa un oggetto separato in modo che quando guardiamo la tabella
dati, la prima riga è la prima osservazione.
L'approccio dei dati ordinati ha molti vantaggi. Offre un semplice principio guida per organizzare tutti i tipi di
dati, inclusi set di dati complicati con molte tabelle dati. Lavorare con i dati, come la codifica e la ricodifica di
tipi di variabili o in generale la risoluzione di problemi con osservazioni e variabili, è più facile con le tabelle
dati ordinate. Le tabelle di dati ordinate sono anche trasparenti, il che aiuta gli altri utenti a comprenderle e
a lavorarci. Inoltre, i dati ordinati possono essere estesi facilmente. Nuove osservazioni vengono aggiunte
come nuove righe; nuove variabili come nuove colonne. Le tabelle di dati sono un'unità fondamentale
dell'analisi dei dati. Tutti i processi di pulizia e analisi vengono eseguiti al meglio all'interno di tabelle di dati
ordinate. Per l'analisi effettiva, gli analisti di dati creano una nuova tabella di dati da quelle tabelle di dati
ordinate. Questa nuova tabella di dati è chiamata file di lavoro. Con un set di dati ordinato che include più
tabelle di dati, ciò richiede la combinazione di variabili da quelle più tabelle di dati, con l'aiuto di variabili ID
appropriate. Discuteremo i dettagli di questo processo nelle prossime sezioni.
5
2.A1 CASE STUDY – Finding a Good Deal among Hotels: Data
Preparation
I dati sono archiviati come dati ordinati. Le sue righe sono osservazioni, le sue colonne sono variabili e questa
tabella contiene un tipo di osservazioni, hotels. La tabella dati nella Tabella 2.3 mostra alcune righe e colonne
di una tabella dati, utilizzando il dataset hotels-vienna.
6
2.5 Tidy Approach for Multi-dimensional Data
I dati multidimensionali possono essere archiviati in più di un modo nelle tabelle dati. Concentriamoci sui
dati xt (dati di serie temporali di sezione trasversale).
L'approccio ordinato consiglia di archiviare i dati xt in una tabella dati con ogni riga che fa riferimento a
un'unità trasversale (i) osservata in un periodo di tempo (t). Quindi, una riga è un'osservazione (it). Questo è
chiamato il formato lungo per i dati xt. La prima riga è il primo periodo di tempo della prima unità trasversale.
La riga successiva è la stessa unità trasversale osservata nel periodo di tempo successivo. Dopo l'ultimo
periodo di tempo osservato per questa unità trasversale, la riga successiva nella tabella dati è il primo periodo
di tempo per la successiva unità trasversale. Di conseguenza, le osservazioni nei dati xt sono identificate da
due variabili ID, una per ogni unità trasversale e una per ogni periodo di tempo.
Un modo alternativo, ma non ordinato, di archiviare i dati multidimensionali è chiamato formato ampio per
i dati xt. Qui una riga farebbe riferimento a un'unità trasversale e diversi periodi di tempo sono rappresentati
in colonne diverse. Quindi, ci sono tante colonne per ogni variabile quanti sono i periodi di tempo nei dati.
Qui ogni osservazione è una diversa unità trasversale da identificare tramite l'identificatore trasversale i. Il
tempo dovrebbe essere "identificato" nei nomi delle variabili. A volte fare analisi è più facile con un formato
ampio, soprattutto se ci sono solo pochi periodi di tempo. Tuttavia, è buona norma non archiviare i dati in
formato ampio. Invece, l'approccio ordinato prescrive di archiviare i dati multidimensionali in formato lungo
e trasformarli per l'analisi quando necessario. I vantaggi del formato lungo per i dati xt sono la trasparenza e
la facilità di gestione. È semplice aggiungere nuove osservazioni alle tabelle in formato lungo, che si tratti di
nuove unità trasversali o nuovi periodi di tempo, ed è più facile trasformare e pulire le variabili.
Ad esempio, considera un pannello xt di paesi con osservazioni annuali, scaricato dal sito web di dati World
Development Indicators gestito dalla Banca Mondiale. Utilizzeremo questo set di dati di immunizzazione della
Banca Mondiale nel Capitolo 23, Sezione 23.B1, dove cercheremo di scoprire in che misura la vaccinazione
contro il morbillo salva la vita dei bambini. Qui illustriamo la struttura dei dati concentrandoci sulle due
variabili ID (paese e anno) e altre due variabili, tasso di immunizzazione e PIL pro capite. La Tabella 2.4 mostra
parti di questa tabella di dati del pannello xt in formato lungo. La Tabella 2.5 mostra la stessa parte di questa
tabella di dati del pannello xt, ma ora in formato ampio. Possiamo vedere la differenza principale: nel formato
lungo abbiamo più righe per un paese, poiché ogni paese viene mostrato tre volte per i tre anni che trattiamo.
Possiamo anche vedere il vantaggio del formato lungo e ordinato: se dovessimo aggiungere una nuova
variabile come la popolazione, aggiungeremmo semplicemente una nuova colonna.
7
2.6 Relational Data and Linking Data Tables
Dopo aver discusso su come organizzare e archiviare i dati in tabelle dati ordinate con variabili ID appropriate,
passiamo a come combinare tali tabelle in un file di lavoro. A volte, con dati complessi, può essere difficile.
Potremmo avere dati macroeconomici su molti paesi in molti anni, informazioni geografiche sugli stessi paesi
per continenti con molti paesi che sono le stesse nel tempo e variabili che descrivono l'economia globale in
ogni anno che sono le stesse per tutti i paesi. Come altro esempio, potremmo avere dati su aziende e i loro
manager, con alcune variabili che descrivono aziende che possono cambiare nel tempo, altre variabili che
descrivono le caratteristiche dei manager che non cambiano e dati che ci dicono quale manager ha lavorato
per quale azienda e quando. Dati relazionali (o database relazionale) è il termine spesso utilizzato per tali set
di dati: hanno vari tipi di osservazioni che sono collegate tra loro tramite varie relazioni.
Gli analisti di dati puliscono e descrivono le tabelle dati una per una in un set di dati relazionale ordinato.
Quindi, per lavorare effettivamente con tali dati, combinano le variabili di cui hanno bisogno dalle varie
tabelle dati per formare un'unica tabella dati, il loro file di lavoro. A volte usano tutte le variabili da tutte le
tabelle dati per creare il file di lavoro. Più spesso, selezionano determinate variabili da ogni tabella dati e
lavorano solo con quelle. In entrambi i casi, gli analisti di dati hanno bisogno di variabili ID appropriate per
trovare le stesse entità nelle tabelle dati. Il processo di estrazione di variabili diverse da tabelle dati diverse
per entità ben identificate per creare una nuova tabella dati è chiamato collegamento, unione, fusione o
abbinamento di tabelle dati. Per farlo, gli analisti di dati iniziano con una tabella dati e uniscono ad essa le
osservazioni da un'altra tabella dati. Il collegamento più semplice è l'abbinamento uno a uno (1:1): unione di
tabelle con lo stesso tipo di osservazioni. Ad esempio, una tabella dati con clienti come osservazioni con la
loro età e reddito come variabili può essere unita a un'altra tabella dati sui clienti con una variabile che
descrive come hanno valutato la loro ultima visita al negozio al dettaglio. Come altro esempio, una tabella
dati paese-anno con popolazione come variabile può essere unita a un'altra tabella dati paese-anno con PIL
pro capite come variabile. Altre volte potremmo voler fare un abbinamento molti-a-uno (m:1). Ad esempio,
potremmo voler collegare il reddito familiare medio al codice postale, una tabella dati con osservazioni sui
codici postali, a una tabella dati con clienti come osservazioni il cui codice postale di residenza è una variabile.
Nella tabella dati a livello di cliente, più clienti possono vivere nella stessa area avente lo stesso codice
postale, quindi le stesse informazioni sul codice postale possono essere unite con molti clienti. Come altro
8
esempio, una tabella dati con osservazioni paese-anno con dati macro può essere unita a una tabella dati
con paesi come osservazioni e area come variabile. Qui molte osservazioni paese-anno sullo stesso paese
vengono unite con la stessa osservazione paese. Un'alternativa è l'abbinamento uno-a-molti (1:m). Il
matching uno-a-molti può essere considerato uguale al matching molti-a-uno (m:1), ma cambiando l'ordine
delle tabelle dati: iniziando dalla tabella dati con le osservazioni più aggregate (codici postali, paesi) e unendo
ad essa le osservazioni dall'altro set di dati (clienti, osservazioni paese-anno). Il caso più complesso è il
matching molti-a-molti (m:m): un'osservazione nella prima tabella può essere abbinata a molte osservazioni
nella seconda tabella e un'osservazione nella seconda tabella dati può essere abbinata a molte osservazioni
nella prima tabella dati. In un caso del genere, potremmo aver bisogno di una tabella separata che colleghi
gli ID. Ad esempio, potremmo voler collegare le informazioni sulle aziende e le informazioni sui manager.
Ogni azienda potrebbe aver avuto più di un manager durante l'arco di tempo dei nostri dati; ogni manager
potrebbe aver lavorato per più di un'azienda. In casi così complicati, spesso dobbiamo riflettere un po' e
riformulare il problema come un insieme di problemi di matching 1:m e m:1. Quando si uniscono due tabelle
di dati, che siano corrispondenti 1:1, 1:m, m:1 o m:m, gli analisti di dati possono essere in grado di collegare
tutte le osservazioni o solo alcune di esse. Quest'ultimo può avvenire in due modi: le osservazioni nella prima
tabella di dati non hanno osservazioni corrispondenti nella seconda tabella di dati, oppure le osservazioni
nella seconda tabella di dati non hanno osservazioni corrispondenti nella prima tabella di dati. A seconda dei
loro obiettivi, gli analisti di dati possono mantenere tutte le osservazioni, siano esse corrispondenti o meno,
oppure possono mantenere solo le osservazioni corrispondenti.
1. Nelle tabelle di dati ordinate, ogni osservazione è una riga e ogni colonna è una variabile.
2. I dati multidimensionali potrebbero dover essere riformattati in una versione di dati ordinata, con
variabili ID per ogni dimensione (come paese e anno).
3. Nei set di dati relazionali, un set di tabelle di dati ordinate può essere collegato tramite variabili ID
appropriate.
Domanda e dati
In questo studio di caso, siamo interessati a identificare gli allenatori di calcio di maggior successo in
Inghilterra.
Allargheremo questo caso di studio per concentrarci sull'impatto della sostituzione degli allenatori più avanti,
nel Capitolo 24. Combiniamo dati da due fonti per questa analisi, una su squadre e partite e una sugli
allenatori.
In questo capitolo ci concentreremo su come combinare le due fonti di dati e quali problemi potrebbero
sorgere nel farlo.
Prima di iniziare, introduciamo alcuni concetti. Parleremo di calcio, chiamato soccer negli Stati Uniti e in
alcuni altri paesi. In Inghilterra e in alcuni altri paesi, gli allenatori sono chiamati manager, in quanto
assumono compiti manageriali oltre ad allenare. Ci concentreremo sulla Premier League inglese (EPL, in
breve), la massima divisione calcistica in Inghilterra. Una stagione dura circa 9 mesi, da metà agosto a metà
maggio, e il campionato è composto da 20 squadre ogni stagione. I nostri dati coprono 11 stagioni di partite
di Premier League, dal 2008/2009 al 2018/2019, e provengono dal sito web [Link], disponibile
al pubblico. Alla fine di ogni stagione, alcune squadre retrocedono in seconda divisione, mentre altre vengono
promosse dalla seconda divisione per entrare nella Premier League. In questo lungo periodo di 11 stagioni,
alcune squadre sono presenti in tutte le stagioni (come Arsenal, Chelsea o Manchester United), mentre altre
giocano in Premier League solo una volta (come Cardiff). Ogni osservazione nella tabella dei dati è una singola
partita. Le variabili chiave sono la data della partita, il nome della squadra di casa, il nome della squadra
ospite, i gol segnati dalla squadra di casa e i gol segnati dalla squadra ospite. Ogni squadra è presente 19
volte come "squadra di casa" e 19 volte come "squadra ospite". Abbiamo 380 righe per ogni stagione. Con
9
11 stagioni, il numero totale di osservazioni è 4180. Un piccolo frammento dei dati è presentato nella Tabella
2.6.
Questa è una tabella dati ordinata? Lo è; ogni osservazione è una partita e ogni partita è una riga separata
nella tabella dati. Tre variabili ID identificano ogni osservazione: data, squadra di casa, squadra ospite. Le
altre variabili descrivono il risultato della partita. Dai due punteggi sappiamo chi ha vinto, con quale margine,
quanti gol ha segnato e quanti gol ha subito.
Ma c'è un modo alternativo per strutturare la stessa tabella dati, che servirà meglio alla nostra analisi: in
questa tabella dati, ogni riga è una partita giocata da una squadra. Include variabili dal punto di vista di quella
squadra: quando ha giocato, chi era l'avversario e qual era il punteggio.
Anche questa è una tabella dati ordinata, anche se diversa. Ha il doppio delle righe della tabella dati originale:
38 settimane x 20 squadre = 760 osservazioni a stagione, 8360 osservazioni in totale. La Tabella 2.7 mostra
una piccola parte di questa ordinata tabella di dati. Ogni partita appare due volte in questa tabella di dati,
una volta per ciascuna delle prospettive della squadra in gioco. Per ogni riga qui abbiamo dovuto introdurre
una nuova variabile per indicare se la squadra in quella partita era la squadra di casa o quella in trasferta. Ora
abbiamo due variabili ID, una che indica la squadra e una che indica la data della partita. L'identità della
squadra avversaria è una variabile qualitativa.
La nostra seconda tabella dati riguarda i manager. Abbiamo raccolto dati sui manager da Wikipedia. Una riga
è una relazione manager-team: un periodo di lavoro di un manager in un team. Quindi ogni manager può
comparire più di una volta in questa tabella dati se ha lavorato per più team. Per ogni osservazione, abbiamo
il nome del manager, la sua nazionalità, il nome del team (club), l'ora di inizio del lavoro del manager nel
team e l'ora di fine. La Tabella 2.8 elenca alcune righe.
10
Come possiamo vedere, alcuni manager hanno avuto un lungo periodo, altri un periodo più breve nelle
squadre. Alcuni manager hanno allenato più di una squadra: Alan Pardew, ad esempio, ha lavorato sia per il
Crystal Palace che per il Newcastle. Abbiamo 395 osservazioni per 241 manager.
Quindi abbiamo un set di dati relazionale. Ha una tabella dati con osservazioni squadra-partita e una tabella
dati con osservazioni manager-squadra. La prima tabella dati contiene le date delle partite; la seconda tabella
dati contiene le date di inizio e fine per il periodo in cui ogni manager ha lavorato per ogni squadra. Per
lavorare con le informazioni nelle due tabelle dati insieme, dobbiamo creare un file di lavoro, che è una
singola tabella dati che è a livello squadra-partita con la variabile aggiuntiva di chi era il manager al momento
di quella partita.
Abbiamo tutte le informazioni per collegare i manager alle partite di squadra: quale manager era in carica al
momento in cui una squadra ha giocato una partita. Ma creare quel collegamento non è semplice. Nella
prossima sezione discuteremo alcuni dei problemi e delle relative soluzioni, per poi tornare al nostro caso di
studio.
In molte tabelle dati con cui iniziamo a lavorare, potremmo osservare cose strane: la variabile ID non è
univoca quando dovrebbe esserlo, sembra che abbiamo più osservazioni con variabili ID diverse per entità
che dovrebbero essere le stesse, oppure potremmo avere righe che non sono per i tipi di entità che vogliamo.
Questi sono problemi con le entità nella tabella dati. Prima di effettuare qualsiasi analisi significativa, tali
problemi devono essere risolti, nella misura in cui è possibile. Tale processo è chiamato risoluzione delle
entità.
Un potenziale problema è avere osservazioni duplicate, o semplicemente duplicati, nella tabella dati.
I duplicati compaiono quando alcune entità che dovrebbero essere un'unica osservazione compaiono più di
una volta nella tabella dati. Mentre il nome suggerisce due apparizioni, può anche riferirsi a tre o più
apparizioni. I duplicati possono essere il risultato di un errore umano (quando i dati vengono inseriti
manualmente) o delle caratteristiche della fonte dati (ad esempio, dati estratti da annunci classificati con
alcuni elementi pubblicati più di una volta).
Quando possibile, i duplicati devono essere ridotti a un'unica osservazione.
Nel caso più semplice, i duplicati sono perfetti: il valore di tutte le variabili è lo stesso. In questi casi dobbiamo
eliminare i duplicati e lasciare una riga di dati per ogni sola osservazione. Nei casi più difficili, il valore di una
o più variabili è diverso nelle righe di dati che sembrano corrispondere alla stessa osservazione. Quindi,
dobbiamo decidere se mantenere tutte le osservazioni o selezionarne una, e in quest'ultimo caso, quale
valore mantenere, o magari creare un nuovo valore, come la media.
Un problema correlato, ma concettualmente diverso, è avere un'identificazione ambigua: la stessa entità con
ID diversi in tabelle di dati diverse. Il compito qui è assicurarsi che ogni entità abbia lo stesso ID nelle tabelle
di dati. Ciò è necessario per collegarle correttamente. Le entità sono spesso identificate tramite nomi.
11
Purtroppo, però, i nomi possono causare problemi per due motivi principali: non sono univoci (più di una
persona può chiamarsi John Smith) e diverse tabelle di dati possono avere diverse versioni dello stesso nome
(ad esempio, a volte vengono usati i secondi nomi, a volte no: Ronald Fisher, Ronald A. Fisher e Sir Ronald
Aylmer Fisher è la stessa persona, un famoso statistico). Questo compito è chiamato disambiguazione:
rendere l'identificazione delle entità non ambigua. Un altro problema è avere osservazioni non entità: righe
che non appartengono a un'entità che vogliamo nella tabella di dati. Esempi includono una riga di riepilogo
in una tabella che aggiunge variabili tra alcune entità. Ad esempio, una tabella di dati scaricata dalla Banca
Mondiale sui paesi spesso include osservazioni su regioni più grandi, come l'Africa subsahariana o l'intero
mondo, e sono incluse proprio come altre righe nella tabella di dati insieme alle righe per i singoli paesi. Prima
che possa essere eseguita qualsiasi analisi significativa, dobbiamo cancellare tali righe dalla tabella di dati. Il
messaggio importante è questo: assegnare ID univoci è importante. Come regola di base, dovremmo evitare
nomi come ID poiché i nomi di persone o aziende non sono univoci (ricorda, anche i due autori hanno lo
stesso nome) e possono essere spesso scritti in modo errato. Utilizzare variabili ID numeriche è una buona
pratica. Infine, nota che, molto spesso, non esiste una soluzione migliore per la risoluzione delle entità.
Potremmo non essere certi al 100% se righe diverse nella tabella dati appartengono o meno alla stessa
osservazione reale. Inoltre, spesso non è evidente cosa fare quando valori diversi di una variabile vengono
visualizzati per la stessa osservazione reale. Di conseguenza, la nostra tabella dati pulita potrebbe finire per
non essere davvero pulita al 100%. Ma questo va bene ai fini dell'analisi dei dati. Gli analisti di dati devono
imparare a convivere con tali imperfezioni. Quando l'entità del problema è piccola, è improbabile che abbia
un effetto sostanziale sui risultati della nostra analisi successiva. Quando l'entità del problema è grande,
potremmo dover provare diverse versioni per risolverlo e vedere se hanno un effetto sui risultati della nostra
analisi.
Diamo un'occhiata ai problemi di dati per il caso di studio del manager di calcio e vediamo se dobbiamo
risolvere le entità.
In effetti, i dati hanno entità ambigue con cui dobbiamo confrontarci. Ad esempio, prendiamo in
considerazione il Manchester City e il Manchester United, le due principali squadre di calcio della città di
Manchester.
Quando abbiamo esaminato siti ufficiali, notiziari e set di dati, abbiamo potuto trovare molte versioni diverse
di come venivano nominate le squadre, come riassunto nella Tabella 2.9.
La risoluzione delle entità qui sta definendo ID univoci e decidendo quali nomi appartengono effettivamente
alla stessa squadra. Per i nomi dei manager, a volte vediamo uno o più caratteri spazio nel nome, e a volte
non li vediamo. Un altro problema è se e come gli accenti sono inclusi nei nomi, come "Arsène Wenger", un
ex manager dell'Arsenal. In pochissime occasioni, il nome del manager potrebbe mancare. Un esempio è che
non ci sono registrazioni per la squadra Reading per metà marzo 2013. Nel nostro caso questo deriva da un
manager ad interim che in qualche modo non è stato registrato. In questi casi possiamo creare un ID separato,
con il nome mancante. Dopo aver apportato queste correzioni e aver combinato i set di dati, possiamo creare
variabili ID non ambigue per le squadre nella prima tabella dati e per i manager e le squadre nella seconda
12
tabella dati. Con queste variabili ID e le date delle partite e la data per i periodi di lavoro dei manager,
possiamo creare un file di lavoro unendo la tabella dati dei manager alla tabella dati delle partite di squadra
della data appropriata. Questa procedura non è semplice e può essere eseguita in più modi. Ti invitiamo a
controllare il nostro codice sul sito Web del libro di testo per vedere un modo per farlo. Con il file di lavoro a
portata di mano, possiamo descriverlo. Il file di lavoro ha 8360 osservazioni di partite di squadra: in ciascuna
delle 11 stagioni, 20 squadre hanno giocato 38 partite (19 squadre avversarie due volte; 11×20×19×2 = 8360).
Per queste 11 stagioni, abbiamo 124 manager nei dati. Da questo caso di studio, abbiamo imparato che la
risoluzione delle entità, la corretta strutturazione dei dati e l'avere variabili ID appropriate sono essenziali
quando si lavora con dati relazionali. Solo con team e manager chiaramente identificati possiamo sperare di
abbinare i manager ai team e ai giochi che giocano.
Con dati ordinati e nessun problema con le entità da risolvere, possiamo rivolgere la nostra attenzione al
contenuto effettivo delle variabili. E potrebbero esserci problemi anche lì. Un problema frequente e
importante con le variabili sono i valori mancanti. I valori mancanti indicano che il valore di una variabile non
è disponibile per alcune osservazioni. Rappresentano un problema importante, per tre motivi principali.
In primo luogo, i valori mancanti non sono sempre semplici da identificare e possono essere interpretati
erroneamente come un valore valido. Ciò non rappresenta un problema quando i valori mancanti sono
rappresentati da un carattere specifico nei dati, come "NA" (per "non disponibile"), un punto "." o uno spazio
vuoto "". Il software statistico riconosce i valori mancanti se archiviati in modo appropriato. A volte, tuttavia,
i valori mancanti vengono registrati con valori numerici, al di fuori dell'intervallo (ad esempio, 0 per no, 1 per
sì, 9 per mancante). Tali valori devono essere sostituiti con un valore che il software riconosce come
mancante. Identificare i valori mancanti e archiviarli in formati riconoscibili dal software statistico è sempre
un must. Dovrebbe essere il primo passo per gestire i valori mancanti e deve essere fatto anche se riguarda
una singola osservazione. Il secondo problema con i valori mancanti è che significano meno osservazioni nei
dati con informazioni valide. Come vedremo nei capitoli successivi, il numero di osservazioni è un fattore
determinante importante per quanto riguarda la sicurezza con cui possiamo generalizzare i nostri risultati dal
set di dati specifico alla situazione che ci interessa veramente. Quando una grande frazione delle osservazioni
manca per una variabile importante nell'analisi, abbiamo molte meno osservazioni con cui lavorare rispetto
alle dimensioni del set di dati originale. L'entità del problema è importante in due modi: quale frazione delle
osservazioni è interessata e quante variabili sono interessate. Il problema è piccolo se mancano valori per
una o due variabili e solo una piccola percentuale delle osservazioni per ciascuna variabile. Il problema è più
grande quanto più grande è la frazione mancante e/o quante più variabili sono interessate. Ad esempio una
piccola frazione di osservazioni mancanti di molte variabili, considera un set di dati su 1000 persone con 50
variabili che mirano a catturare le caratteristiche della personalità. Per ciascuna di queste variabili, il 2% delle
osservazioni presenta valori mancanti, ovvero non abbiamo informazioni su una determinata caratteristica
per 20 delle 1000 persone. Supponiamo, inoltre, che per ciascuna variabile sulle caratteristiche personali, il
verificarsi di valori mancanti sia indipendente tra le variabili. In questo caso, ci ritroviamo con appena 360
persone con valori validi per tutte le 50 variabili, ovvero il 36% del numero originale di osservazioni (0,98
elevato alla potenza di 50 = 0,36). Si tratta di un calo notevole, anche se ogni tasso mancante è di per sé
minuscolo. Il terzo problema è il potenziale bias di selezione. Un modo per pensare ai valori mancanti è che
portano a un set di dati utilizzato per l'analisi che copre meno osservazioni rispetto all'intero set di dati.
Abbiamo discusso della copertura in precedenza nel Capitolo 1, Sezione 1.3. Come sempre, quando la
copertura è incompleta, una domanda importante è se questo campione più piccolo rappresenti il set di dati
più grande. Quando le osservazioni mancanti sono molto simili a quelle incluse, quindi non c'è distorsione di
selezione, diciamo che le osservazioni sono mancanti in modo casuale.
Come possiamo sapere se i valori sono mancanti in modo casuale o se c'è distorsione dovuta alla selezione?
I due approcci che funzionano per valutare se un campione rappresenta una popolazione funzionano anche
qui: benchmarking e comprensione del processo di selezione.
Il benchmarking significa confrontare la distribuzione delle variabili disponibili per tutte le osservazioni.
13
Pensa ai valori mancanti di una variabile y. Quindi il benchmarking implica il confronto di alcune statistiche,
come la media o la mediana (vedi di più nel Capitolo 3, Sezione 3.6) delle variabili x, z, …, ciascuna delle quali
si pensa sia correlata alla variabile y, in due gruppi: osservazioni con y mancante e osservazioni con y non
mancante. Se queste statistiche sono diverse, sappiamo che c'è un problema.
Per comprendere il processo di selezione è necessario sapere come sono nati i dati e una buona
comprensione del contenuto delle variabili. In altri casi, la mancanza è proprio questo: nessuna informazione.
Quindi dovremmo capire perché è così, ad esempio perché alcuni intervistati si sono rifiutati di rispondere
alla domanda del sondaggio o perché alcune aziende non hanno segnalato un valore. Tuttavia, in alcuni casi
mancante non significa realmente mancante ma zero, solo che il valore zero non è stato compilato per le
osservazioni pertinenti. Ad esempio, una variabile per i ricavi delle esportazioni nei dati a livello aziendale
potrebbe essere lasciata mancante per le aziende che non hanno tali ricavi. Ma significa zero. Quando i valori
mancanti possono essere sostituiti con valori significativi, dovremmo farlo. In altri casi, i valori mancanti
riducono la qualità dei dati, proprio come la copertura incompleta.
Avere valori mancanti per alcune variabili è un problema frequente. Qualunque sia la loro entità, dobbiamo
fare qualcosa al riguardo. Ma cosa possiamo fare?
Ci sono due opzioni principali. Innanzitutto, possiamo lavorare con osservazioni che hanno valori non
mancanti per tutte le variabili utilizzate nell'analisi. Questo è l'approccio più naturale e più comune. Di solito
è una scelta ragionevole se la frazione di valori mancanti non è troppo alta, ci sono poche variabili interessate
e il bias di selezione non è troppo grave. Una versione di questo approccio è quella di lavorare con
osservazioni che costituiscono un sotto campione ben definito, in cui il problema dei dati mancanti è molto
meno grave. Ad esempio, se i valori mancanti sono molto più diffusi tra le piccole aziende nei dati
amministrativi sulle aziende, potremmo escludere tutte le piccole aziende dai dati. Il vantaggio di tale scelta
è la trasparenza: i risultati dell'analisi faranno riferimento alle aziende medie e grandi.
La seconda opzione è quella di inserire un valore per i valori mancanti, come il valore medio. Questo è
chiamato imputazione. L'imputazione può avere senso in alcuni casi, ma non in altri. In ogni caso,
l'imputazione non aggiunge informazioni ai dati. Per questo motivo, di solito non è consigliabile effettuare
l'imputazione per le variabili più importanti nell'analisi. Quando gli analisti di dati utilizzano molte variabili,
l'imputazione può avere senso per alcune di esse. Esistono metodi sofisticati di imputazione, ma questi
esulano dall'ambito di questo libro di testo. In parte per questo motivo, sconsigliamo di imputare valori
mancanti in generale.
Proponiamo tre consigli pratici sulla gestione delle osservazioni mancanti.
Innanzitutto, quando possibile, concentrati su variabili più complete. A volte la variabile che cattura meglio
le informazioni di cui abbiamo bisogno ha molti valori mancanti, ma è disponibile una variabile meno perfetta
con poche variabili mancanti. Ad esempio, lavorando con i dati sui clienti, potremmo avere una variabile che
descrive il reddito familiare per ciascun cliente, ma tali informazioni potrebbero mancare per la maggior parte
dei clienti. Invece, potremmo avere informazioni sul codice postale della loro residenza disponibili per
praticamente tutti i clienti. In questo caso ha senso non usare affatto la variabile reddito familiare, ma usare
invece una variabile sul reddito familiare medio nelle località con codice postale disponibile da un'altra fonte.
È importante notare che quando i valori mancanti vengono sostituiti con un altro valore, è buona norma
creare una variabile binaria che indichi che il valore originale era mancante. Tale variabile è chiamata flag.
In secondo luogo, l'imputazione per le variabili qualitative dovrebbe essere eseguita in modo diverso: queste
variabili non hanno un valore medio. Invece, dovremmo aggiungere una categoria aggiuntiva per i valori
mancanti. Ad esempio, considera il distretto di un hotel all'interno di una città. Dovremmo aggiungere
"mancante" come nuovo valore del distretto. Per le variabili ordinali, potremmo anche imputare la categoria
mediana e aggiungere una nuova variabile che denoti che il valore originale era mancante.
In terzo luogo, qualunque cosa scegliamo di fare con i valori mancanti, dovremmo fare una scelta
consapevole e documentare tale scelta. Alcune scelte sono più ragionevoli di altre, a seconda della situazione.
Ma tutte le scelte hanno conseguenze per l'analisi.
14
Come per altre fasi di pulizia dei dati, potrebbe non esserci una soluzione ovviamente migliore per gestire i
valori mancanti. Tali imperfezioni sono un fatto della vita per gli analisti di dati. Le grandezze contano: piccoli
problemi hanno probabilità di avere piccoli effetti sui risultati della nostra analisi; problemi che influenzano
molte osservazioni possono avere effetti sostanziali. In quest'ultimo caso, gli analisti di dati spesso provano
decisioni alternative durante il processo di pulizia e vedono se e come influenzano i loro risultati alla fine.
2.A2 CASE STUDY – Finding a Good Deal among Hotels: Data Preparation Duplicates and missing
values
Illustriamo i problemi di dati di cui sopra con il dataset raw hotels-vienna con osservazioni sugli hotel di
Vienna per un giorno feriale di novembre 2017.
Ricordiamo che abbiamo sostituito i nomi degli hotel con una variabile ID numerica per motivi di riservatezza.
Il modo in cui lo abbiamo fatto ha garantito che ogni nome di hotel corrispondesse a un singolo numero.
Pertanto, i duplicati con nomi di hotel verrebbero visualizzati come duplicati anche nella variabile ID. E ci
sono duplicati.
Ci sono 430 osservazioni nei dati raw, ma ci sono solo 428 valori ID diversi. Si scopre che il motivo di questa
differenza è che ci sono due hotel che sono presenti due volte nella tabella dei dati raw. Sono elencati nella
Tabella 2.10, insieme alle variabili più importanti.
La tabella mostra che questi duplicati sono di tipo semplice: tutte le variabili hanno lo stesso valore. Per
risolvere il problema dobbiamo eliminare uno di ciascuno dei duplicati. Il risultato è 428 hotel nella tabella
dati (questo è il numero di osservazioni che abbiamo descritto nel Capitolo 1, Sezione 1.A1). Passiamo ora ai
valori mancanti. Le variabili più importanti non hanno valori mancanti, fatta eccezione per la valutazione
media dei clienti, che manca per 35 delle 428 osservazioni. Si tratta di un tasso di mancata percentuale
dell'8%. Quando approfondiamo i dati, possiamo vedere che il tipo di sistemazione è fortemente correlato
alla mancata valutazione media dei clienti. In particolare, 34 delle 35 osservazioni con valori mancanti
riguardano appartamenti, pensioni o case vacanze. Dei 264 hotel normali nei dati, solo 1 ha un valore
mancante per la valutazione media dei clienti. È un hotel con 2.5 stelle, a 0.7 miglia dal centro città, che costa
15
106 dollari. In seguito, quando analizzeremo i dati per trovare una buona offerta, limiteremo i dati agli hotel
normali con 3 o 4 stelle; questo hotel non sarebbe in quei dati (vedere Capitolo 7, Sezione 7.A1).
16
2.11 Reproducible Workflow: Write Code and Document Your Steps
Il data wrangling dovrebbe essere eseguito in modo che sia facile da ripetere e riprodurre. Ciò significa
documentare ciò che facciamo e scrivere codice in modo che i passaggi possano essere ripetuti.
La documentazione è molto importante. È buona norma produrre un breve documento, denominato
README, che descriva le informazioni più importanti sui dati utilizzati in qualsiasi analisi. Questo documento
può essere utile durante l'analisi per richiamare le caratteristiche importanti dei dati.
Un altro documento, spesso più lungo, può descrivere tutti i passaggi di gestione e pulizia dei dati che
abbiamo eseguito. È inoltre essenziale consentire ad altri analisti di controllare il tuo lavoro, replicare la tua
analisi o basarsi sulla tua analisi in futuro (inclusa la versione futura di te stesso). Tale documento dovrebbe
consentire di richiamare i passaggi e di comunicarli. È importante citare anche la fonte dei dati.
La Tabella 2.11 offre una checklist per guidare la descrizione dei set di dati.
È anche utile scrivere codice per tutti i passaggi di data wrangling. Sì, scrivere codice richiede più tempo che
apportare modifiche in un foglio di calcolo o cliccare sui comandi nel software. Tuttavia, investire un po' di
tempo può essere gratificante. Nella maggior parte dei casi, dobbiamo rifare la pulizia dei dati dopo che
emergono nuovi problemi o i dati grezzi cambiano. In questo caso i vantaggi del codice tendono a superare
di gran lunga i costi:
1. Rende facile modificare parte della procedura di data wrangling e di pulizia e rifare l'intera procedura
dall'inizio alla fine.
2. Un processo automatizzato può essere ripetuto quando necessario, forse a causa di una leggera
modifica nei dati grezzi sottostanti.
3. Rende facile per chiunque altro riprodurre la procedura, aumentando così la credibilità dell'analisi
successiva.
4. Il codice diventa lo scheletro della documentazione: mostra i passaggi nella procedura stessa.
5. Molte piattaforme esistenti, come GitHub, assistono e promuovono la collaborazione.
Naturalmente, ci sono dei compromessi tra tutti questi vantaggi e il lavoro necessario per scrivere il codice,
specialmente per attività brevi, piccoli set di dati e per analisti di dati alle prime armi. Sì, va bene usare un
foglio di calcolo per apportare delle modifiche rapide per risparmiare tempo. Tuttavia, pensiamo che abbia
senso scrivere codice tutto il tempo, o molto frequentemente, anche se a prima vista sembra uno sforzo
eccessivo. In genere non sappiamo in anticipo quali decisioni di pulizia dei dati dovremo prendere e quali
saranno le loro conseguenze. Quindi, è abbastanza plausibile che dovremo rifare l'intero processo quando le
cose cambiano, o per un controllo di robustezza, anche per un processo di pulizia dei dati apparentemente
semplice. Inoltre, scrivere codice tutto il tempo aiuta a padroneggiare la codifica richiesta per la pulizia dei
dati e quindi aiuta nei progetti futuri.
Come abbiamo sottolineato molte volte, la pulizia dei dati è un processo iterativo. Iniziamo pulendo e
creando una versione ordinata dei dati e quindi un file di lavoro. Quindi, mentre si descrivono i dati e si lavora
sull'analisi, è molto comune scoprire ulteriori problemi che richiedono di tornare alla fase di pulizia dei dati.
17
Questo è un motivo in più per lavorare con il codice: ripetere tutto e aggiungere nuovi elementi alla pulizia
dei dati è molto più semplice e richiede molto meno tempo se scritto in codice.
5. Risolvere le entità: trovare e gestire duplicati, entità ambigue, righe non entità.
6. Ottenere ogni variabile in un formato appropriato; assegnare etichette di variabili e valori quando
necessario.
7. Assicurarsi che i valori siano in intervalli significativi; correggere i valori non ammissibili o impostarli come
mancanti.
18
L'ultimo dei tre livelli della struttura del file è il file di lavoro. Questo è il file su cui deve essere eseguita l'analisi. Le righe
dei file di lavoro sono osservazioni che costituiscono la base dell'analisi.
In genere, contengono solo un sottoinsieme di tutte le variabili disponibili e, con più di un file di dati ordinato, possono
utilizzare dati da tutti o solo da un sottoinsieme di quei file. I file di lavoro possono essere o meno in formato dati
ordinato.
Sottolineiamo il vantaggio di avere dati ordinati prima di trasformarli in un file di lavoro per l'analisi. I file di dati ordinati
tendono a essere più trasparenti. Quindi sono più adatti a identificare problemi nei dati, ad affrontare tali problemi e a
produrre dati puliti, nonché ad aggiungere o rimuovere osservazioni e variabili. Con dati ordinati possiamo aggiungere
nuove variabili da includere nell'analisi e possiamo produrre vari tipi di file di lavoro per vari tipi di analisi.
Considera l'organizzazione dei file per questo libro di testo. Per tutti i casi di studio, abbiamo archiviato i file grezzi così
come sono stati raccolti. La cartella pulita contiene tabelle di dati ordinati e puliti, nonché il codice che produce questi
file puliti da quelli grezzi. La cartella per ogni caso di studio include il codice che crea il file di lavoro ed esegue l'analisi
stessa. Potrebbe anche includere il file di lavoro. Abbiamo anche aggiunto una cartella di output per archiviare grafici e
tabelle.
Come sempre, abbiamo prodotto tre tipi di file durante il processo di pulizia dei dati dei manager di calcio:
file di dati, codice e file di documentazione. Abbiamo tre tipi di file di dati: file di dati grezzi (quelli originali
senza alcuna modifica), file di dati ordinati e un file di lavoro per la nostra analisi.
Abbiamo due file di dati grezzi qui, uno su ogni partita di 11 stagioni della Premier League inglese e uno sui
manager di calcio che hanno lavorato per una qualsiasi delle squadre apparse nella Premier League inglese
durante quegli 11 anni. Infatti, i dati sulle partite di quegli 11 anni sono 11 file di dati separati che abbiamo
scaricato. Abbiamo quindi combinato questi 11 file per formare un singolo file di dati.
Da questi file di dati grezzi, abbiamo creato tre file di dati ordinati, uno con le partite come osservazione
(epl_games), uno con una squadra che gioca una partita come osservazione (epl_teams_games) e uno con
un incantesimo per un manager che lavora per una squadra come osservazione (epl_managers). Quindi, per
la nostra analisi, abbiamo combinato la seconda e la terza tabella di dati ordinati per formare un file di lavoro,
con una squadra che gioca una partita come osservazione, insieme alle informazioni su chi era l'allenatore in
quel momento.
Questo è il nostro file di lavoro per questo capitolo (football_managers_workfile).
La Tabella 2.12 mostra questi file di dati insieme al nome del file del codice R, Python e Stata che li produce
(.R, .py e .do). Oltre ai dati e al codice, l'elenco dei file include un file README che contiene le informazioni
più importanti sui dati e sul nostro codice.
19
2.C4 CASE STUDY – Identifying Successful Football
Managers Finding the most successful managers
Dopo aver raccolto i dati di cui abbiamo bisogno, possiamo rispondere alla nostra domanda: quali allenatori
hanno avuto più successo nelle 11 stagioni di Premier League. Continuiamo a considerare i periodi di gestione
nelle squadre: se un allenatore ha lavorato per due squadre, consideriamo due casi. Innanzitutto, dobbiamo
definire il successo. Consideriamo la media dei punti a partita come misura del successo. Per calcolarlo,
sommiamo semplicemente sia i punti guadagnati in una carriera in una squadra sia il numero di partite che
ha gestito, e dividiamo i punti totali per il numero di partite. Li classifichiamo e diamo un'occhiata a quelli con
almeno 2 punti a partita: abbiamo undici di queste combinazioni allenatore-squadra. La figura 2.1 mostra i
migliori allenatori. Possiamo vedere alcuni nomi noti nel calcio europeo, come Alex Ferguson (Manchester
United), Pep Guardiola (Manchester City) o Carlo Ancelotti (Chelsea) tra i migliori allenatori. Un aspetto
interessante è la presenza di alcuni nomi meno noti, a partire da Michael Appleton in cima alla classifica con
un perfetto rapporto 3/3. Il motivo è che alcuni manager erano presenti solo per poche partite e, se fortunati,
potevano ottenere un alto rapporto vittorie. Per chiarire questo, abbiamo utilizzato un colore diverso per i
periodi manager-team che duravano meno di 18 partite, come nel caso dei custodi.
DOMANDE DI PRATICA
1. Qual è la differenza tra un set di dati e una tabella di dati e quale usiamo per l'analisi effettiva?
2. Cosa sono i dati panel (multidimensionali) e cosa sono i dati panel xt? Fornisci un esempio di dati
panel xt e uno di dati panel non xt.
3. Cos'è una variabile binaria? Fornisci due esempi.
4. Cosa sono le variabili qualitative nominali e ordinali? Fornisci due esempi per ciascuna.
5. Cosa sono le variabili quantitative di intervallo e rapporto? Fornisci due esempi per ciascuna.
20
6. Cosa sono le variabili di stock e flusso? Fornisci due esempi per ciascuna.
7. Qual è la differenza tra i dati panel xt in formato lungo e largo? Quale preferiresti e perché?
8. 8. Cosa sono i valori mancanti e come possiamo scoprirli? Quali opzioni abbiamo per lavorare con
variabili che hanno dati mancanti e quali dovremmo scegliere quando?
9. Cos'è la risoluzione dell'entità? Fornisci un esempio.
10. Elenca quattro argomenti che la documentazione sulla pulizia dei dati dovrebbe affrontare.
11. Quali sono i vantaggi della scrittura di codice per la pulizia dei dati?
12. Cosa significa unire due tabelle di dati e come lo facciamo? Fornisci un esempio.
13. Decidi quali tipi di variabili sono le seguenti. Sono qualitative o quantitative? Sono variabili binarie?
Pensa anche se sono misurate su una scala nominale, ordinale, di intervallo o di rapporto.
a) QI
b) Paese di origine
c) Numero di anni trascorsi nell'istruzione superiore
d) La risposta alla domanda in un sondaggio che dice: "Indica sulla scala sottostante quanto sei
d'accordo con la seguente affermazione: tutti devono imparare l'analisi dei dati per almeno due
semestri". con opzioni "5 – Pienamente d'accordo" "4 – Abbastanza d'accordo" "3 – Indifferente" "2
– Abbastanza in disaccordo" "1 – Completamente in disaccordo"
e) Una variabile che è 1 se un individuo ha acquistato un'auto in un dato mese
f) Colore degli occhi
14. Considera le seguenti tabelle di dati. La tabella di dati 1 include i paesi nelle sue righe; le sue colonne
sono il nome del paese, la sua area e se ha accesso al mare. La tabella di dati 2 include i paesi nelle
sue righe; le sue colonne sono il PIL e la popolazione per vari anni, ogni anno in un
21